From a5df684c6f5c868be947500014b0f7a7c177d999 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 25 Jun 2018 03:42:53 +0300 Subject: [PATCH 001/549] WIP: adding json-rpc support. --- .../quik/lua/rpc/events/api/QluaEvent.java | 69 +++++++++------ .../rpc/events/api/QluaEventSubscription.java | 15 ++-- .../events/api/QluaEventTypeConverter.java | 8 ++ .../api/json/JsonQluaEventTypeConverter.java | 67 ++++++++++++++ .../protobuf/ProtobufQluaEventConverter.java | 67 ++++++++++++++ .../events/impl/ZmqTcpQluaEventPoller.java | 88 +++++++++---------- .../events/impl/ZmqTcpQluaEventProcessor.java | 5 +- 7 files changed, 236 insertions(+), 83 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java index 24b7e5b..ebe2515 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java @@ -1,39 +1,28 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.google.common.base.MoreObjects; -import com.google.protobuf.ByteString; -import qlua.events.QluaEvents; import java.util.Objects; import static java.util.Objects.requireNonNull; -/** - * Событие терминала QUIK в рамках API QLua. - *

- * В QLua оповещения о событиях терминала QUIK приходят посредством функций обратного вызова (callbacks). Тип события и - * его данные сериализуются RPC-сервисом на стороне терминала QUIK с помощью Google Protocol Buffers и передаются - * клиентам. - */ -public class QluaEvent { +public final class QluaEvent { - private final QluaEvents.EventType type; - private final ByteString data; + private final EventType type; + private final byte[] data; /** - * Создаёт экземпляр события API QLua терминала QUIK с заданным типом и данными, - * сериализованными в байтовую строку с помощью Google Protocol Buffers. + * Создаёт экземпляр события API QLua терминала QUIK с заданным типом и данными. * * @param type тип события - * @param data данные события, сериализованные в байтовую строку с помощью Google Protocol Buffers - * @return экземпляр события API QLua терминала QUIK с заданным типом и данными, сериализованными в байтовую строку - * с помощью Google Protocol Buffers + * @param data данные события + * @return экземпляр события API QLua терминала QUIK с заданным типом и данными * @throws NullPointerException если заданный тип события является null */ - public static QluaEvent create(final QluaEvents.EventType type, final ByteString data) { + public static QluaEvent create(final EventType type, final byte[] data) { requireNonNull(type, "The argument 'type' must not be null."); - return new QluaEvent(type, data); + return new QluaEvent(type, data == null ? null : data.clone()); } /** @@ -42,11 +31,11 @@ public static QluaEvent create(final QluaEvents.EventType type, final ByteString * @param type тип события * @return экземпляр события API QLua терминала QUIK */ - public static QluaEvent create(final QluaEvents.EventType type) { + public static QluaEvent create(final EventType type) { return create(type, null); } - private QluaEvent(final QluaEvents.EventType type, final ByteString data) { + private QluaEvent(final EventType type, final byte[] data) { this.type = type; this.data = data; @@ -57,17 +46,17 @@ private QluaEvent(final QluaEvents.EventType type, final ByteString data) { * * @return тип события */ - public QluaEvents.EventType getType() { + public EventType getType() { return type; } /** - * Получает данные события, сериализованные в байтовую строку с помощью Google Protocol Buffers. + * Получает данные события. * - * @return данные события, сериализованные в байтовую строку с помощью Google Protocol Buffers + * @return данные события */ - public ByteString getData() { - return data; + public byte[] getData() { + return data.clone(); } @Override @@ -95,4 +84,32 @@ public String toString() { .add("data", data) .toString(); } + + public static enum EventType { + + ON_CLOSE, + ON_STOP, + ON_FIRM, + ON_ALL_TRADE, + ON_TRADE, + ON_ORDER, + ON_ACCOUNT_BALANCE, + ON_FUTURES_LIMIT_CHANGE, + ON_FUTURES_LIMIT_DELETE, + ON_FUTURES_CLIENT_HOLDING, + ON_MONEY_LIMIT, + ON_MONEY_LIMIT_DELETE, + ON_DEPO_LIMIT, + ON_DEPO_LIMIT_DELETE, + ON_ACCOUNT_POSITION, + ON_NEG_DEAL, + ON_NEG_TRADE, + ON_STOP_ORDER, + ON_TRANS_REPLY, + ON_PARAM, + ON_QUOTE, + ON_DISCONNECTED, + ON_CONNECTED, + ON_CLEAN_UP; + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventSubscription.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventSubscription.java index 710cd1b..8acc277 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventSubscription.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventSubscription.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.google.common.collect.ImmutableSet; -import qlua.events.QluaEvents; /** * Менеджер подписок на события API QLua терминала QUIK. @@ -13,21 +12,21 @@ public interface QluaEventSubscription { * * @param eventType тип события */ - void subscribe(QluaEvents.EventType eventType); + void subscribe(QluaEvent.EventType eventType); /** * Добавляет подписки на события заданных типов. * * @param eventTypes типы событий */ - void subscribe(Iterable eventTypes); + void subscribe(Iterable eventTypes); /** * Добавляет подписки на события заданных типов. * * @param eventTypes типы событий */ - void subscribe(QluaEvents.EventType... eventTypes); + void subscribe(QluaEvent.EventType... eventTypes); /** * Добавляет подписки на события всех типов. @@ -39,21 +38,21 @@ public interface QluaEventSubscription { * * @param eventType тип события */ - void unsubscribe(QluaEvents.EventType eventType); + void unsubscribe(QluaEvent.EventType eventType); /** * Удаляет подписки на события заданных типов. * * @param eventTypes типы событий */ - void unsubscribe(Iterable eventTypes); + void unsubscribe(Iterable eventTypes); /** * Удаляет подписки на события заданных типов. * * @param eventTypes типы событий */ - void unsubscribe(QluaEvents.EventType... eventTypes); + void unsubscribe(QluaEvent.EventType... eventTypes); /** * Удаляет подписки на событиях всех типов. @@ -65,6 +64,6 @@ public interface QluaEventSubscription { * * @return {@link ImmutableSet неизменяемый набор} типов событий, подписки на которые активны в данный момент */ - ImmutableSet getCurrentSubscription(); + ImmutableSet getCurrentSubscription(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java new file mode 100644 index 0000000..3fa1811 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java @@ -0,0 +1,8 @@ +package com.enfernuz.quik.lua.rpc.events.api; + +public interface QluaEventTypeConverter { + + QluaEvent.EventType convert(String type); + + String convert(QluaEvent.EventType eventType); +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java new file mode 100644 index 0000000..a417c25 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.events.api.json; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; + +public enum JsonQluaEventTypeConverter implements QluaEventTypeConverter { + + INSTANCE; + + private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = + createPbEventTypeToEventTypeMap(); + + @Override + public QluaEvent.EventType convert(final String type) { + + if (type == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(type); + } + + @Override + public String convert(final QluaEvent.EventType eventType) { + + if (eventType == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); + } + + + private static BiMap createPbEventTypeToEventTypeMap() { + + final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); + + result.put("OnClose", QluaEvent.EventType.ON_CLOSE); + result.put("OnStop", QluaEvent.EventType.ON_STOP); + result.put("OnFirm", QluaEvent.EventType.ON_FIRM); + result.put("OnAllTrade", QluaEvent.EventType.ON_ALL_TRADE); + result.put("OnTrade", QluaEvent.EventType.ON_TRADE); + result.put("OnOrder", QluaEvent.EventType.ON_ORDER); + result.put("OnAccountBalance", QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put("OnFuturesLimitChange", QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put("OnFuturesLimitDelete", QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put("OnFuturesClientHolding", QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put("OnMoneyLimit", QluaEvent.EventType.ON_MONEY_LIMIT); + result.put("OnMoneyLimitDelete", QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put("OnDepoLimit", QluaEvent.EventType.ON_DEPO_LIMIT); + result.put("OnDepoLimitDelete", QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put("OnAccountPosition", QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put("OnNegDeal", QluaEvent.EventType.ON_NEG_DEAL); + result.put("OnNegTrade", QluaEvent.EventType.ON_NEG_TRADE); + result.put("OnStopOrder", QluaEvent.EventType.ON_STOP_ORDER); + result.put("OnTransReply", QluaEvent.EventType.ON_TRANS_REPLY); + result.put("OnParam", QluaEvent.EventType.ON_PARAM); + result.put("OnQuote", QluaEvent.EventType.ON_QUOTE); + result.put("OnDisconnected", QluaEvent.EventType.ON_DISCONNECTED); + result.put("OnConnected", QluaEvent.EventType.ON_CONNECTED); + result.put("OnCleanUp", QluaEvent.EventType.ON_CLEAN_UP); + + return result; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java new file mode 100644 index 0000000..fb31f0e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.events.api.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import qlua.events.QluaEvents; + +public enum ProtobufQluaEventConverter implements QluaEventTypeConverter { + + INSTANCE; + + private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = + createPbEventTypeToEventTypeBiMap(); + + @Override + public QluaEvent.EventType convert(final String type) { + + if (type == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(type); + } + + @Override + public String convert(final QluaEvent.EventType eventType) { + + if (eventType == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); + } + + private static BiMap createPbEventTypeToEventTypeBiMap() { + + final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); + + result.put(String.valueOf(QluaEvents.EventType.ON_CLOSE.getNumber()), QluaEvent.EventType.ON_CLOSE); + result.put(String.valueOf(QluaEvents.EventType.ON_STOP.getNumber()), QluaEvent.EventType.ON_STOP); + result.put(String.valueOf(QluaEvents.EventType.ON_FIRM.getNumber()), QluaEvent.EventType.ON_FIRM); + result.put(String.valueOf(QluaEvents.EventType.ON_ALL_TRADE.getNumber()), QluaEvent.EventType.ON_ALL_TRADE); + result.put(String.valueOf(QluaEvents.EventType.ON_TRADE.getNumber()), QluaEvent.EventType.ON_TRADE); + result.put(String.valueOf(QluaEvents.EventType.ON_ORDER.getNumber()), QluaEvent.EventType.ON_ORDER); + result.put(String.valueOf(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber()), QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber()), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put(String.valueOf(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT); + result.put(String.valueOf(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put(String.valueOf(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT); + result.put(String.valueOf(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put(String.valueOf(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber()), QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put(String.valueOf(QluaEvents.EventType.ON_NEG_DEAL.getNumber()), QluaEvent.EventType.ON_NEG_DEAL); + result.put(String.valueOf(QluaEvents.EventType.ON_NEG_TRADE.getNumber()), QluaEvent.EventType.ON_NEG_TRADE); + result.put(String.valueOf(QluaEvents.EventType.ON_STOP_ORDER.getNumber()), QluaEvent.EventType.ON_STOP_ORDER); + result.put(String.valueOf(QluaEvents.EventType.ON_TRANS_REPLY.getNumber()), QluaEvent.EventType.ON_TRANS_REPLY); + result.put(String.valueOf(QluaEvents.EventType.ON_PARAM.getNumber()), QluaEvent.EventType.ON_PARAM); + result.put(String.valueOf(QluaEvents.EventType.ON_QUOTE.getNumber()), QluaEvent.EventType.ON_QUOTE); + result.put(String.valueOf(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); + result.put(String.valueOf(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); + result.put(String.valueOf(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); + + return result; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index be14ea7..0f72df0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -5,14 +5,13 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; import com.enfernuz.quik.lua.rpc.events.api.TcpQluaEventPoller; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.google.common.collect.ImmutableSet; -import com.google.protobuf.ByteString; import org.zeromq.ZFrame; import org.zeromq.ZMQ; import org.zeromq.ZMsg; -import qlua.events.QluaEvents; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -37,7 +36,8 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { private ZMQ.Socket subSocket; private final AuthContext authContext; private boolean isOpened; - private final EnumSet subscription; + private final EnumSet subscription; + private final QluaEventTypeConverter qluaEventTypeConverter; /** * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventPoller}, с точкой подключения RPC-сервиса на стороне @@ -47,16 +47,28 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { * @param authContext контекст защиты передачи данных * @return новый экземпляр компонента {@link ZmqTcpQluaEventPoller} */ - static ZmqTcpQluaEventPoller newInstance(final NetworkAddress networkAddress, final AuthContext authContext) { - return new ZmqTcpQluaEventPoller(requireNonNull(networkAddress), requireNonNull(authContext)); + static ZmqTcpQluaEventPoller newInstance( + final NetworkAddress networkAddress, + final AuthContext authContext, + final QluaEventTypeConverter qluaEventTypeConverter) { + + return new ZmqTcpQluaEventPoller( + requireNonNull(networkAddress), + requireNonNull(authContext), + requireNonNull(qluaEventTypeConverter) + ); } - private ZmqTcpQluaEventPoller(final NetworkAddress networkAddress, final AuthContext authContext) { + private ZmqTcpQluaEventPoller( + final NetworkAddress networkAddress, + final AuthContext authContext, + final QluaEventTypeConverter qluaEventTypeConverter) { this.networkAddress = networkAddress; this.authContext = authContext; + this.qluaEventTypeConverter = qluaEventTypeConverter; this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); - this.subscription = EnumSet.noneOf(QluaEvents.EventType.class); + this.subscription = EnumSet.noneOf(QluaEvent.EventType.class); } /** @@ -81,11 +93,10 @@ public QluaEvent poll() throws PollingException { } else { final String subscriptionKeyAsString = new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8); - final int subscriptionKey = Integer.parseInt(subscriptionKeyAsString); - final QluaEvents.EventType eventType = QluaEvents.EventType.forNumber(subscriptionKey); + final QluaEvent.EventType eventType = qluaEventTypeConverter.convert(subscriptionKeyAsString); if (eventType == null) { - throw new PollingException( String.format("Unknown subscription key: %d.", subscriptionKey) ); + throw new PollingException( String.format("Unknown subscription key: %s.", subscriptionKeyAsString) ); } final boolean hasReceiveMore = subSocket.hasReceiveMore(); @@ -99,8 +110,7 @@ public QluaEvent poll() throws PollingException { ); } - final ByteString eventData = convertZMsgToByteString(eventDataAsMsg); - result = QluaEvent.create(eventType, eventData); + result = QluaEvent.create(eventType, convertZMsgToByteArray(eventDataAsMsg)); } else { result = QluaEvent.create(eventType); } @@ -115,81 +125,69 @@ public QluaEvent poll() throws PollingException { } @Override - public void subscribe(final QluaEvents.EventType eventType) { - - switch (eventType) { - case UNRECOGNIZED: - case EVENT_TYPE_UNKNOWN: - return; - } + public void subscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.subscribe( eventTypeToTopic(eventType) ); + subSocket.subscribe( qluaEventTypeConverter.convert(eventType) ); } subscription.add(eventType); } @Override - public void subscribe(final Iterable eventTypes) { + public void subscribe(final Iterable eventTypes) { - for (final QluaEvents.EventType eventType : eventTypes) { + for (final QluaEvent.EventType eventType : eventTypes) { subscribe(eventType); } } @Override - public void subscribe(final QluaEvents.EventType... eventTypes) { + public void subscribe(final QluaEvent.EventType... eventTypes) { - for (final QluaEvents.EventType eventType : eventTypes) { + for (final QluaEvent.EventType eventType : eventTypes) { subscribe(eventType); } } @Override public void subscribeToEverything() { - subscribe( QluaEvents.EventType.values() ); + subscribe( QluaEvent.EventType.values() ); } @Override - public void unsubscribe(final QluaEvents.EventType eventType) { - - switch (eventType) { - case UNRECOGNIZED: - case EVENT_TYPE_UNKNOWN: - return; - } + public void unsubscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.unsubscribe( eventTypeToTopic(eventType) ); + subSocket.unsubscribe( qluaEventTypeConverter.convert(eventType) ); } subscription.remove(eventType); } @Override - public void unsubscribe(final Iterable eventTypes) { + public void unsubscribe(final Iterable eventTypes) { - for (final QluaEvents.EventType eventType : eventTypes) { + for (final QluaEvent.EventType eventType : eventTypes) { unsubscribe(eventType); } } @Override - public void unsubscribe(final QluaEvents.EventType... eventTypes) { + public void unsubscribe(final QluaEvent.EventType... eventTypes) { - for (final QluaEvents.EventType eventType : eventTypes) { + for (final QluaEvent.EventType eventType : eventTypes) { unsubscribe(eventType); } } @Override public void unsubscribeFromEverything() { - unsubscribe( QluaEvents.EventType.values() ); + unsubscribe( QluaEvent.EventType.values() ); } @Override - public ImmutableSet getCurrentSubscription() { + public ImmutableSet getCurrentSubscription() { return ImmutableSet.copyOf(subscription); } @@ -208,8 +206,8 @@ public void open() throws IOException { subSocket = zmqContext.socket(ZMQ.SUB); subSocket.setLinger(0); // no waiting before closing the socket - for (final QluaEvents.EventType eventType : subscription) { - subSocket.subscribe( String.valueOf(eventType.getNumber()) ); + for (final QluaEvent.EventType eventType : subscription) { + subSocket.subscribe( qluaEventTypeConverter.convert(eventType) ); } switch (authContext.getAuthMechanism()) { @@ -284,11 +282,7 @@ public void close() throws IOException { } } - private static String eventTypeToTopic(final QluaEvents.EventType eventType) { - return String.valueOf( eventType.getNumber() ); - } - - private static ByteString convertZMsgToByteString(final ZMsg message) throws IOException { + private static byte[] convertZMsgToByteArray(final ZMsg message) throws IOException { // our event data is small (at the moment, at least), so it's safe to cast the content size to a long final ByteArrayOutputStream output = new ByteArrayOutputStream( (int) message.contentSize() ); @@ -296,6 +290,6 @@ private static ByteString convertZMsgToByteString(final ZMsg message) throws IOE output.write( frame.getData() ); } - return ByteString.copyFrom( output.toByteArray() ); + return output.toByteArray(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 3a52d0f..38afc34 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.events.api.*; +import com.enfernuz.quik.lua.rpc.events.api.protobuf.ProtobufQluaEvent; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.google.common.collect.*; import qlua.events.QluaEvents; @@ -50,14 +51,14 @@ private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller) { public void process() throws QluaEventProcessingException { try { - final QluaEvent event = eventPoller.poll(); + final ProtobufQluaEvent event = eventPoller.poll(); if (event != null) { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { case PUBLISHER_ONLINE: eventHandler.onInit(); break; - case PUBLISHER_OFFLINE: + case ON_STOP: eventHandler.onStop(); break; case ON_CLOSE: From 147087f1ebdc5379c94f7c11725a79462e161a7a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 25 Jun 2018 03:44:13 +0300 Subject: [PATCH 002/549] Fixed proto files; added some new .proto definitions. --- src/main/proto/qlua/rpc/RPC.proto | 13 ++++++++----- src/main/proto/qlua/rpc/bit/btest.proto | 18 ++++++++++++++++++ src/main/proto/qlua/rpc/getOrderByNumber.proto | 2 +- src/main/proto/qlua/rpc/os/sysdate.proto | 14 ++++++++++++++ src/main/proto/qlua/rpc/qlua_events.proto | 4 ++-- src/main/proto/qlua/rpc/qlua_structures.proto | 5 +++++ 6 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 src/main/proto/qlua/rpc/bit/btest.proto create mode 100644 src/main/proto/qlua/rpc/os/sysdate.proto diff --git a/src/main/proto/qlua/rpc/RPC.proto b/src/main/proto/qlua/rpc/RPC.proto index af3d21d..a85a49a 100644 --- a/src/main/proto/qlua/rpc/RPC.proto +++ b/src/main/proto/qlua/rpc/RPC.proto @@ -18,7 +18,7 @@ enum ProcedureType { GET_WORKING_FOLDER = 6; PRINT_DBG_STR = 7; GET_ITEM = 8; - GET_ORDER_BY_NUMBER = 9; // NOT TESTED YET + GET_ORDER_BY_NUMBER = 9; GET_NUMBER_OF = 10; SEARCH_ITEMS = 11; GET_CLASSES_LIST = 12; @@ -51,7 +51,7 @@ enum ProcedureType { DS_SET_EMPTY_CALLBACK = 37; SEND_TRANSACTION = 38; - CALC_BUY_SELL = 39; // NOT TESTED YET + CALC_BUY_SELL = 39; GET_PARAM_EX = 40; GET_PARAM_EX_2 = 41; // NB: использовать структуры запроса и ответа от GET_PARAM_EX @@ -89,9 +89,9 @@ enum ProcedureType { GET_LABEL_PARAMS = 69; SET_LABEL_PARAMS = 70; - SUBSCRIBE_LEVEL_II_QUOTES = 71; // NOT IMPLEMENTED YET - UNSUBSCRIBE_LEVEL_II_QUOTES = 72; // NOT IMPLEMENTED YET - IS_SUBSCRIBED_LEVEL_II_QUOTES = 73; // NOT IMPLEMENTED YET + SUBSCRIBE_LEVEL_II_QUOTES = 71; + UNSUBSCRIBE_LEVEL_II_QUOTES = 72; + IS_SUBSCRIBED_LEVEL_II_QUOTES = 73; PARAM_REQUEST = 74; CANCEL_PARAM_REQUEST = 75; @@ -101,6 +101,9 @@ enum ProcedureType { BIT_BAND = 78; BIT_BOR = 79; BIT_BXOR = 80; + BIT_TEST = 81; + + OS_SYSDATE = 82; } message Request { diff --git a/src/main/proto/qlua/rpc/bit/btest.proto b/src/main/proto/qlua/rpc/bit/btest.proto new file mode 100644 index 0000000..5d58a53 --- /dev/null +++ b/src/main/proto/qlua/rpc/bit/btest.proto @@ -0,0 +1,18 @@ +// version: 1.0 + +syntax = "proto3"; + +package qlua.rpc.bit.test; + +option optimize_for = SPEED; +option java_package = "qlua.rpc.bit"; + +message Request { + + int32 x = 1; + int32 n = 2; +} + +message Result { + bool result = 1; +} \ No newline at end of file diff --git a/src/main/proto/qlua/rpc/getOrderByNumber.proto b/src/main/proto/qlua/rpc/getOrderByNumber.proto index bdae758..8ff6c27 100644 --- a/src/main/proto/qlua/rpc/getOrderByNumber.proto +++ b/src/main/proto/qlua/rpc/getOrderByNumber.proto @@ -12,7 +12,7 @@ option java_package = "qlua.rpc"; message Request { string class_code = 1; - uint32 order_id = 2; + int64 order_id = 2; } message Result { diff --git a/src/main/proto/qlua/rpc/os/sysdate.proto b/src/main/proto/qlua/rpc/os/sysdate.proto new file mode 100644 index 0000000..83aae62 --- /dev/null +++ b/src/main/proto/qlua/rpc/os/sysdate.proto @@ -0,0 +1,14 @@ +// version: 1.0 + +syntax = "proto3"; + +package qlua.rpc.os.sysdate; + +import "qlua/rpc/qlua_structures.proto"; + +option optimize_for = SPEED; +option java_package = "qlua.rpc.os"; + +message Result { + qlua.structs.DateTimeEntry result = 1; +} diff --git a/src/main/proto/qlua/rpc/qlua_events.proto b/src/main/proto/qlua/rpc/qlua_events.proto index 8bbdb7e..7affc8a 100644 --- a/src/main/proto/qlua/rpc/qlua_events.proto +++ b/src/main/proto/qlua/rpc/qlua_events.proto @@ -8,9 +8,9 @@ enum EventType { EVENT_TYPE_UNKNOWN = 0; PUBLISHER_ONLINE = 1; // no data attached - PUBLISHER_OFFLINE = 2; // no data attached + ON_STOP = 2; ON_CLOSE = 3; // no data attached - ON_CONNECTED = 4; // no data attached + ON_CONNECTED = 4; ON_DISCONNECTED = 5; // no data attached ON_FIRM = 6; ON_ALL_TRADE = 7; diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index aa269a4..36459dd 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -551,3 +551,8 @@ message QuoteEventInfo { message ConnectedEventInfo { bool flag = 1; } + +// Информация из функций обратного вызова OnClose и OnStop +message StopEventInfo { + int32 flag = 1; +} From 16af4977ea44dcb52a06f49b9b4ea52d811fb3bd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 3 Jul 2018 03:14:55 +0300 Subject: [PATCH 003/549] WIP: serialization/deserialization facility. --- .../lua/rpc/events/api/QluaEventHandler.java | 3 +- .../events/api/QluaEventTypeConverter.java | 8 -- .../api/json/JsonQluaEventTypeConverter.java | 67 ------------- .../protobuf/ProtobufQluaEventConverter.java | 67 ------------- .../lua/rpc/events/api/structures/Firm.java | 82 ++++++++++++++++ .../events/impl/ZmqTcpQluaEventPoller.java | 24 ++--- .../events/impl/ZmqTcpQluaEventProcessor.java | 39 ++++---- .../enfernuz/quik/lua/rpc/serde/Serde.java | 12 +++ .../quik/lua/rpc/serde/SerdeModule.java | 11 +++ .../rpc/serde/protobuf/ProtobufFirmSerde.java | 40 ++++++++ .../protobuf/ProtobufQluaEventTypeSerde.java | 94 ++++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 19 ++++ .../serde/protobuf/ProtobufSerdeUtils.java | 17 ++++ .../Utf8ReadableStringQluaEventTypeSerde.java | 95 +++++++++++++++++++ 14 files changed, 405 insertions(+), 173 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index fff002c..6aa02b3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import qlua.structs.QluaStructures; /** @@ -53,7 +54,7 @@ default void onInit() {} * * @param firm новая фирма */ - default void onFirm(final QluaStructures.Firm firm) {} + default void onFirm(final Firm firm) {} /** * Функция обратного вызова для события терминала OnAllTrade. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java deleted file mode 100644 index 3fa1811..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventTypeConverter.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.enfernuz.quik.lua.rpc.events.api; - -public interface QluaEventTypeConverter { - - QluaEvent.EventType convert(String type); - - String convert(QluaEvent.EventType eventType); -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java deleted file mode 100644 index a417c25..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/json/JsonQluaEventTypeConverter.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.enfernuz.quik.lua.rpc.events.api.json; - -import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -public enum JsonQluaEventTypeConverter implements QluaEventTypeConverter { - - INSTANCE; - - private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = - createPbEventTypeToEventTypeMap(); - - @Override - public QluaEvent.EventType convert(final String type) { - - if (type == null) { - return null; - } - - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(type); - } - - @Override - public String convert(final QluaEvent.EventType eventType) { - - if (eventType == null) { - return null; - } - - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); - } - - - private static BiMap createPbEventTypeToEventTypeMap() { - - final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); - - result.put("OnClose", QluaEvent.EventType.ON_CLOSE); - result.put("OnStop", QluaEvent.EventType.ON_STOP); - result.put("OnFirm", QluaEvent.EventType.ON_FIRM); - result.put("OnAllTrade", QluaEvent.EventType.ON_ALL_TRADE); - result.put("OnTrade", QluaEvent.EventType.ON_TRADE); - result.put("OnOrder", QluaEvent.EventType.ON_ORDER); - result.put("OnAccountBalance", QluaEvent.EventType.ON_ACCOUNT_BALANCE); - result.put("OnFuturesLimitChange", QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); - result.put("OnFuturesLimitDelete", QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); - result.put("OnFuturesClientHolding", QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); - result.put("OnMoneyLimit", QluaEvent.EventType.ON_MONEY_LIMIT); - result.put("OnMoneyLimitDelete", QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); - result.put("OnDepoLimit", QluaEvent.EventType.ON_DEPO_LIMIT); - result.put("OnDepoLimitDelete", QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); - result.put("OnAccountPosition", QluaEvent.EventType.ON_ACCOUNT_POSITION); - result.put("OnNegDeal", QluaEvent.EventType.ON_NEG_DEAL); - result.put("OnNegTrade", QluaEvent.EventType.ON_NEG_TRADE); - result.put("OnStopOrder", QluaEvent.EventType.ON_STOP_ORDER); - result.put("OnTransReply", QluaEvent.EventType.ON_TRANS_REPLY); - result.put("OnParam", QluaEvent.EventType.ON_PARAM); - result.put("OnQuote", QluaEvent.EventType.ON_QUOTE); - result.put("OnDisconnected", QluaEvent.EventType.ON_DISCONNECTED); - result.put("OnConnected", QluaEvent.EventType.ON_CONNECTED); - result.put("OnCleanUp", QluaEvent.EventType.ON_CLEAN_UP); - - return result; - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java deleted file mode 100644 index fb31f0e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/protobuf/ProtobufQluaEventConverter.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.enfernuz.quik.lua.rpc.events.api.protobuf; - -import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import qlua.events.QluaEvents; - -public enum ProtobufQluaEventConverter implements QluaEventTypeConverter { - - INSTANCE; - - private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = - createPbEventTypeToEventTypeBiMap(); - - @Override - public QluaEvent.EventType convert(final String type) { - - if (type == null) { - return null; - } - - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(type); - } - - @Override - public String convert(final QluaEvent.EventType eventType) { - - if (eventType == null) { - return null; - } - - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); - } - - private static BiMap createPbEventTypeToEventTypeBiMap() { - - final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); - - result.put(String.valueOf(QluaEvents.EventType.ON_CLOSE.getNumber()), QluaEvent.EventType.ON_CLOSE); - result.put(String.valueOf(QluaEvents.EventType.ON_STOP.getNumber()), QluaEvent.EventType.ON_STOP); - result.put(String.valueOf(QluaEvents.EventType.ON_FIRM.getNumber()), QluaEvent.EventType.ON_FIRM); - result.put(String.valueOf(QluaEvents.EventType.ON_ALL_TRADE.getNumber()), QluaEvent.EventType.ON_ALL_TRADE); - result.put(String.valueOf(QluaEvents.EventType.ON_TRADE.getNumber()), QluaEvent.EventType.ON_TRADE); - result.put(String.valueOf(QluaEvents.EventType.ON_ORDER.getNumber()), QluaEvent.EventType.ON_ORDER); - result.put(String.valueOf(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber()), QluaEvent.EventType.ON_ACCOUNT_BALANCE); - result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); - result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); - result.put(String.valueOf(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber()), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); - result.put(String.valueOf(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT); - result.put(String.valueOf(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); - result.put(String.valueOf(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT); - result.put(String.valueOf(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); - result.put(String.valueOf(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber()), QluaEvent.EventType.ON_ACCOUNT_POSITION); - result.put(String.valueOf(QluaEvents.EventType.ON_NEG_DEAL.getNumber()), QluaEvent.EventType.ON_NEG_DEAL); - result.put(String.valueOf(QluaEvents.EventType.ON_NEG_TRADE.getNumber()), QluaEvent.EventType.ON_NEG_TRADE); - result.put(String.valueOf(QluaEvents.EventType.ON_STOP_ORDER.getNumber()), QluaEvent.EventType.ON_STOP_ORDER); - result.put(String.valueOf(QluaEvents.EventType.ON_TRANS_REPLY.getNumber()), QluaEvent.EventType.ON_TRANS_REPLY); - result.put(String.valueOf(QluaEvents.EventType.ON_PARAM.getNumber()), QluaEvent.EventType.ON_PARAM); - result.put(String.valueOf(QluaEvents.EventType.ON_QUOTE.getNumber()), QluaEvent.EventType.ON_QUOTE); - result.put(String.valueOf(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); - result.put(String.valueOf(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); - result.put(String.valueOf(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); - - return result; - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java new file mode 100644 index 0000000..319fc62 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -0,0 +1,82 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; + +import java.util.Objects; + +import static java.util.Objects.requireNonNull; + +public final class Firm { + + private final String firmId; + private final String firmName; + private final int status; + private final String exchange; + + private transient int hashCode; + private transient String asString; + + public Firm(final String firmId, final String firmName, int status, final String exchange) { + this.firmId = requireNonNull(firmId, "Аргумент 'firmId' не должен быть null."); + this.firmName = firmName; + this.status = status; + this.exchange = exchange; + } + + public String getFirmId() { + return firmId; + } + + public String getFirmName() { + return firmName; + } + + public int getStatus() { + return status; + } + + public String getExchange() { + return exchange; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Firm) ) { + return false; + } else { + final Firm other = (Firm) o; + return Integer.compare(status, other.status) == 0 + && Objects.equals(firmId, other.firmId) + && Objects.equals(exchange, other.exchange) + && Objects.equals(firmName, other.firmName); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(firmId, firmName, status, exchange); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmId", firmId) + .add("firm_name", firmName) + .add("status", status) + .add("exchange", exchange) + .toString(); + } + + return asString; + } +} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index 0f72df0..1456c5c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -5,9 +5,9 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.QluaEventTypeConverter; import com.enfernuz.quik.lua.rpc.events.api.TcpQluaEventPoller; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.common.collect.ImmutableSet; import org.zeromq.ZFrame; import org.zeromq.ZMQ; @@ -37,7 +37,7 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { private final AuthContext authContext; private boolean isOpened; private final EnumSet subscription; - private final QluaEventTypeConverter qluaEventTypeConverter; + private final Serde qluaEventTypeSerde; /** * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventPoller}, с точкой подключения RPC-сервиса на стороне @@ -50,23 +50,23 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { static ZmqTcpQluaEventPoller newInstance( final NetworkAddress networkAddress, final AuthContext authContext, - final QluaEventTypeConverter qluaEventTypeConverter) { + final Serde qluaEventTypeSerde) { return new ZmqTcpQluaEventPoller( requireNonNull(networkAddress), requireNonNull(authContext), - requireNonNull(qluaEventTypeConverter) + requireNonNull(qluaEventTypeSerde) ); } private ZmqTcpQluaEventPoller( final NetworkAddress networkAddress, final AuthContext authContext, - final QluaEventTypeConverter qluaEventTypeConverter) { + final Serde qluaEventTypeSerde) { this.networkAddress = networkAddress; this.authContext = authContext; - this.qluaEventTypeConverter = qluaEventTypeConverter; + this.qluaEventTypeSerde = qluaEventTypeSerde; this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); this.subscription = EnumSet.noneOf(QluaEvent.EventType.class); } @@ -92,11 +92,11 @@ public QluaEvent poll() throws PollingException { result = null; } else { - final String subscriptionKeyAsString = new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8); + //final String subscriptionKeyAsString = new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8); - final QluaEvent.EventType eventType = qluaEventTypeConverter.convert(subscriptionKeyAsString); + final QluaEvent.EventType eventType = qluaEventTypeSerde.deserialize(subscriptionKeyAsBytes); if (eventType == null) { - throw new PollingException( String.format("Unknown subscription key: %s.", subscriptionKeyAsString) ); + throw new PollingException( String.format("Unknown subscription key: %s.", new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8)) ); } final boolean hasReceiveMore = subSocket.hasReceiveMore(); @@ -128,7 +128,7 @@ public QluaEvent poll() throws PollingException { public void subscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.subscribe( qluaEventTypeConverter.convert(eventType) ); + subSocket.subscribe( qluaEventTypeSerde.serialize(eventType) ); } subscription.add(eventType); @@ -159,7 +159,7 @@ public void subscribeToEverything() { public void unsubscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.unsubscribe( qluaEventTypeConverter.convert(eventType) ); + subSocket.unsubscribe( qluaEventTypeSerde.serialize(eventType) ); } subscription.remove(eventType); @@ -207,7 +207,7 @@ public void open() throws IOException { subSocket.setLinger(0); // no waiting before closing the socket for (final QluaEvent.EventType eventType : subscription) { - subSocket.subscribe( qluaEventTypeConverter.convert(eventType) ); + subSocket.subscribe( qluaEventTypeSerde.serialize(eventType) ); } switch (authContext.getAuthMechanism()) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 38afc34..7344193 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,10 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.events.api.*; -import com.enfernuz.quik.lua.rpc.events.api.protobuf.ProtobufQluaEvent; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.*; -import qlua.events.QluaEvents; import java.io.IOException; import java.util.ArrayList; @@ -25,6 +24,7 @@ public class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor { private ZmqTcpQluaEventPoller eventPoller; private final List eventHandlers; + private final SerdeModule serdeModule; /** * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventProcessor}, с точкой подключения RPC-сервиса на стороне @@ -32,18 +32,24 @@ public class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor { * * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK * @param authContext контекст защиты передачи данных + * @param serdeModule TODO * @return новый экземпляр компонента {@link ZmqTcpQluaEventProcessor} */ public static ZmqTcpQluaEventProcessor newInstance( final NetworkAddress networkAddress, - final AuthContext authContext) { + final AuthContext authContext, + final SerdeModule serdeModule) { - return new ZmqTcpQluaEventProcessor( ZmqTcpQluaEventPoller.newInstance(networkAddress, authContext) ); + return new ZmqTcpQluaEventProcessor( + ZmqTcpQluaEventPoller.newInstance(networkAddress, authContext, serdeModule.getQluaEventTypeSerde()), + serdeModule + ); } - private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller) { + private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final SerdeModule serdeModule) { - this.eventPoller = eventPoller; + this.eventPoller = requireNonNull(eventPoller, "Аргумент 'eventPoller' не должен быть null."); + this.serdeModule = requireNonNull(serdeModule, "Аргумент 'serdeModule' не должен быть null."); this.eventHandlers = new ArrayList<>(1); } @@ -51,13 +57,10 @@ private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller) { public void process() throws QluaEventProcessingException { try { - final ProtobufQluaEvent event = eventPoller.poll(); + final QluaEvent event = eventPoller.poll(); if (event != null) { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { - case PUBLISHER_ONLINE: - eventHandler.onInit(); - break; case ON_STOP: eventHandler.onStop(); break; @@ -71,7 +74,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onDisconnected(); break; case ON_FIRM: - eventHandler.onFirm( Firm.parseFrom(event.getData()) ); + eventHandler.onFirm( serdeModule.getFirmSerde().deserialize(event.getData()) ); break; case ON_ALL_TRADE: eventHandler.onAllTrade( AllTrade.parseFrom(event.getData()) ); @@ -184,17 +187,17 @@ public ImmutableList getRegisteredEventHandlers() { } @Override - public void subscribe(final QluaEvents.EventType eventType) { + public void subscribe(final QluaEvent.EventType eventType) { eventPoller.subscribe(eventType); } @Override - public void subscribe(final Iterable eventTypes) { + public void subscribe(final Iterable eventTypes) { eventPoller.subscribe(eventTypes); } @Override - public void subscribe(final QluaEvents.EventType... eventTypes) { + public void subscribe(final QluaEvent.EventType... eventTypes) { eventPoller.subscribe(eventTypes); } @@ -204,17 +207,17 @@ public void subscribeToEverything() { } @Override - public void unsubscribe(final QluaEvents.EventType eventType) { + public void unsubscribe(final QluaEvent.EventType eventType) { eventPoller.unsubscribe(eventType); } @Override - public void unsubscribe(final Iterable eventTypes) { + public void unsubscribe(final Iterable eventTypes) { eventPoller.unsubscribe(eventTypes); } @Override - public void unsubscribe(final QluaEvents.EventType... eventTypes) { + public void unsubscribe(final QluaEvent.EventType... eventTypes) { eventPoller.unsubscribe(eventTypes); } @@ -224,7 +227,7 @@ public void unsubscribeFromEverything() { } @Override - public ImmutableSet getCurrentSubscription() { + public ImmutableSet getCurrentSubscription() { return eventPoller.getCurrentSubscription(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java new file mode 100644 index 0000000..720f6a9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java @@ -0,0 +1,12 @@ +package com.enfernuz.quik.lua.rpc.serde; + +public interface Serde { + + byte[] serialize(T t); + + T deserialize(byte[] data); + + public static class SerdeException extends RuntimeException { + // TODO + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java new file mode 100644 index 0000000..576bca2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java @@ -0,0 +1,11 @@ +package com.enfernuz.quik.lua.rpc.serde; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; + +public interface SerdeModule { + + Serde getQluaEventTypeSerde(); + + Serde getFirmSerde(); +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java new file mode 100644 index 0000000..2aa0e67 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.asNonNullString; + +enum ProtobufFirmSerde implements Serde { + + INSTANCE; + + @Override + public byte[] serialize(final Firm firm) { + + try { + return QluaStructures.Firm + .newBuilder() + .setFirmid( firm.getFirmId() ) + .setFirmName( asNonNullString(firm.getFirmName()) ) + .setStatus( firm.getStatus() ) + .setExchange( asNonNullString(firm.getExchange()) ) + .build() + .toByteArray(); + } catch (final RuntimeException ex) { + throw new SerdeException(); // TODO + } + } + + @Override + public Firm deserialize(final byte[] data) { + + try { + final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); + return new Firm(firm.getFirmid(), firm.getFirmName(), firm.getStatus(), firm.getExchange()); + } catch (final Exception ex) { + throw new SerdeException(); // TODO + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java new file mode 100644 index 0000000..a94b99a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -0,0 +1,94 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import qlua.events.QluaEvents; + +/** + * Сериализатор в формат Protocol Buffers / десериализатор из формата Protocol Buffers событий API QLua терминала QUIK + * в рамках удалённого RPC-сервиса quik-lua-rpc. + *
+ * @see quik-lua-rpc + * @see Protocol Buffers + */ +enum ProtobufQluaEventTypeSerde implements Serde { + + INSTANCE; + + private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = + createPbEventTypeToEventTypeBiMap(); + + /** + * Сериализует тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc в бинарное представление в формате Protocol Buffers. + * + * @param eventType тип события API QLua терминала QUIK + * @return бинарное представление в формате Protocol Buffers, отвечающее данному типу события; + * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null + */ + @Override + public byte[] serialize(final QluaEvent.EventType eventType) { + + if (eventType == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); + } + + /** + * Десериализует бинарное представление в формате Protocol Buffers типа события API QLua терминала QUIK в рамках + * удалённого RPC-сервиса quik-lua-rpc. + * + * @param data бинарное представление типа события в формате Protocol Buffers + * @return экземпляр {@link QluaEvent.EventType}, отвечающий данному бинарному представлению; + * null в случае отсутствия соответствия, а также в случае когда аргумент {@code data} является null + */ + @Override + public QluaEvent.EventType deserialize(final byte[] data) { + + if (data == null) { + return null; + } + + return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(data); + } + + private static BiMap createPbEventTypeToEventTypeBiMap() { + + final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); + + result.put(asByteArray(QluaEvents.EventType.ON_CLOSE.getNumber()), QluaEvent.EventType.ON_CLOSE); + result.put(asByteArray(QluaEvents.EventType.ON_STOP.getNumber()), QluaEvent.EventType.ON_STOP); + result.put(asByteArray(QluaEvents.EventType.ON_FIRM.getNumber()), QluaEvent.EventType.ON_FIRM); + result.put(asByteArray(QluaEvents.EventType.ON_ALL_TRADE.getNumber()), QluaEvent.EventType.ON_ALL_TRADE); + result.put(asByteArray(QluaEvents.EventType.ON_TRADE.getNumber()), QluaEvent.EventType.ON_TRADE); + result.put(asByteArray(QluaEvents.EventType.ON_ORDER.getNumber()), QluaEvent.EventType.ON_ORDER); + result.put(asByteArray(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber()), QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber()), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put(asByteArray(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT); + result.put(asByteArray(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put(asByteArray(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT); + result.put(asByteArray(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put(asByteArray(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber()), QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put(asByteArray(QluaEvents.EventType.ON_NEG_DEAL.getNumber()), QluaEvent.EventType.ON_NEG_DEAL); + result.put(asByteArray(QluaEvents.EventType.ON_NEG_TRADE.getNumber()), QluaEvent.EventType.ON_NEG_TRADE); + result.put(asByteArray(QluaEvents.EventType.ON_STOP_ORDER.getNumber()), QluaEvent.EventType.ON_STOP_ORDER); + result.put(asByteArray(QluaEvents.EventType.ON_TRANS_REPLY.getNumber()), QluaEvent.EventType.ON_TRANS_REPLY); + result.put(asByteArray(QluaEvents.EventType.ON_PARAM.getNumber()), QluaEvent.EventType.ON_PARAM); + result.put(asByteArray(QluaEvents.EventType.ON_QUOTE.getNumber()), QluaEvent.EventType.ON_QUOTE); + result.put(asByteArray(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); + result.put(asByteArray(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); + result.put(asByteArray(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); + + return result; + } + + private static byte[] asByteArray(final int number) { + return String.valueOf(number).getBytes(ProtobufSerdeUtils.DEFAULT_PROTOBUF_CHARSET); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java new file mode 100644 index 0000000..e618556 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; + +public class ProtobufSerdeModule implements SerdeModule { + + @Override + public Serde getQluaEventTypeSerde() { + return ProtobufQluaEventTypeSerde.INSTANCE; + } + + @Override + public Serde getFirmSerde() { + return ProtobufFirmSerde.INSTANCE; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java new file mode 100644 index 0000000..d174084 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -0,0 +1,17 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +final class ProtobufSerdeUtils { + + static final Charset DEFAULT_PROTOBUF_CHARSET = StandardCharsets.UTF_8; + + private ProtobufSerdeUtils() { + throw new AssertionError("This should never be invoked."); + } + + static String asNonNullString(final String str) { + return (str == null) ? "" : str; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java new file mode 100644 index 0000000..64cd95a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java @@ -0,0 +1,95 @@ +package com.enfernuz.quik.lua.rpc.serde.simple; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; + +import java.nio.charset.StandardCharsets; + +/** + * Сериализатор в бинарное представление человекочитаемой строки в кодировке UTF-8 / десериализатор из бинарного + * представления человекочитаемой строки в кодировке UTF-8 типов событий API QLua терминала QUIK в рамках удалённого + * RPC-сервиса quik-lua-rpc. + *
+ * @see quik-lua-rpc + */ +public enum Utf8ReadableStringQluaEventTypeSerde implements Serde { + + INSTANCE; + + private static final BiMap READABLE_STRING_BYTES_TO_EVENT_TYPE_MAP = + createReadableStringBytesToEventTypeMap(); + + /** + * Десериализует бинарное представление человекочитаемой строки в кодировке UTF-8 в тип события API QLua терминала + * QUIK в рамках удалённого RPC-сервиса quik-lua-rpc. + * + * @param data бинарное представление человекочитаемой строки в кодировке UTF-8, представляющей тип события + * @return тип события, отвечающий данному бинарному представлению; + * null в случае отсутствия соответствия, а также в случае когда аргумент {@code data} является null + */ + @Override + public QluaEvent.EventType deserialize(final byte[] data) { + + if (data == null) { + return null; + } + + return READABLE_STRING_BYTES_TO_EVENT_TYPE_MAP.get(data); + } + + /** + * Сериализует тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса quik-lua-rpc в бинарное + * представление человекочитаемой строки в кодировке UTF-8. + * + * @param eventType тип события API QLua терминала QUIK + * @return бинарное представление человекочитаемой строки в кодировке UTF-8, отвечающей данному типу события; + * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null + */ + @Override + public byte[] serialize(final QluaEvent.EventType eventType) { + + if (eventType == null) { + return null; + } + + return READABLE_STRING_BYTES_TO_EVENT_TYPE_MAP.inverse().get(eventType); + } + + private static BiMap createReadableStringBytesToEventTypeMap() { + + final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); + + result.put(asByteArray("OnClose"), QluaEvent.EventType.ON_CLOSE); + result.put(asByteArray("OnStop"), QluaEvent.EventType.ON_STOP); + result.put(asByteArray("OnFirm"), QluaEvent.EventType.ON_FIRM); + result.put(asByteArray("OnAllTrade"), QluaEvent.EventType.ON_ALL_TRADE); + result.put(asByteArray("OnTrade"), QluaEvent.EventType.ON_TRADE); + result.put(asByteArray("OnOrder"), QluaEvent.EventType.ON_ORDER); + result.put(asByteArray("OnAccountBalance"), QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put(asByteArray("OnFuturesLimitChange"), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put(asByteArray("OnFuturesLimitDelete"), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put(asByteArray("OnFuturesClientHolding"), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put(asByteArray("OnMoneyLimit"), QluaEvent.EventType.ON_MONEY_LIMIT); + result.put(asByteArray("OnMoneyLimitDelete"), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put(asByteArray("OnDepoLimit"), QluaEvent.EventType.ON_DEPO_LIMIT); + result.put(asByteArray("OnDepoLimitDelete"), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put(asByteArray("OnAccountPosition"), QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put(asByteArray("OnNegDeal"), QluaEvent.EventType.ON_NEG_DEAL); + result.put(asByteArray("OnNegTrade"), QluaEvent.EventType.ON_NEG_TRADE); + result.put(asByteArray("OnStopOrder"), QluaEvent.EventType.ON_STOP_ORDER); + result.put(asByteArray("OnTransReply"), QluaEvent.EventType.ON_TRANS_REPLY); + result.put(asByteArray("OnParam"), QluaEvent.EventType.ON_PARAM); + result.put(asByteArray("OnQuote"), QluaEvent.EventType.ON_QUOTE); + result.put(asByteArray("OnDisconnected"), QluaEvent.EventType.ON_DISCONNECTED); + result.put(asByteArray("OnConnected"), QluaEvent.EventType.ON_CONNECTED); + result.put(asByteArray("OnCleanUp"), QluaEvent.EventType.ON_CLEAN_UP); + + return result; + } + + private static byte[] asByteArray(final String str) { + return str.getBytes(StandardCharsets.UTF_8); + } +} From 38275aac7764761b2c7fe0bbaab88c72d6f77910 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 3 Jul 2018 03:31:57 +0300 Subject: [PATCH 004/549] Added .gitignore. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4e63c73 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.iml +/.idea/ From e4616366fca7327fedac4e77496323a0df730e8b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 3 Jul 2018 03:32:35 +0300 Subject: [PATCH 005/549] * Improved javadoc. --- .../Utf8ReadableStringQluaEventTypeSerde.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java index 64cd95a..f221214 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/simple/Utf8ReadableStringQluaEventTypeSerde.java @@ -8,11 +8,11 @@ import java.nio.charset.StandardCharsets; /** - * Сериализатор в бинарное представление человекочитаемой строки в кодировке UTF-8 / десериализатор из бинарного - * представления человекочитаемой строки в кодировке UTF-8 типов событий API QLua терминала QUIK в рамках удалённого - * RPC-сервиса quik-lua-rpc. + * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого + * RPC-сервиса quik-lua-rpc, использующего представление данных в виде символьных строк в кодировке UTF-8. *
* @see quik-lua-rpc + * @see UTF-8 */ public enum Utf8ReadableStringQluaEventTypeSerde implements Serde { @@ -22,10 +22,10 @@ public enum Utf8ReadableStringQluaEventTypeSerde implements Serdequik-lua-rpc. + * Десериализует бинарное представление типа события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего представление данных в виде символьных строк в кодировке UTF-8. * - * @param data бинарное представление человекочитаемой строки в кодировке UTF-8, представляющей тип события + * @param data бинарное представление типа события * @return тип события, отвечающий данному бинарному представлению; * null в случае отсутствия соответствия, а также в случае когда аргумент {@code data} является null */ @@ -40,11 +40,11 @@ public QluaEvent.EventType deserialize(final byte[] data) { } /** - * Сериализует тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса quik-lua-rpc в бинарное - * представление человекочитаемой строки в кодировке UTF-8. + * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего представление данных в виде символьных строк в кодировке UTF-8. * * @param eventType тип события API QLua терминала QUIK - * @return бинарное представление человекочитаемой строки в кодировке UTF-8, отвечающей данному типу события; + * @return бинарное представление, отвечающей данному типу события; * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null */ @Override From a956caa06fbc0ab87c195383995293ebacb39589 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 3 Jul 2018 03:34:09 +0300 Subject: [PATCH 006/549] Improved javadoc; changed the byte array form of Event.EventType. --- .../protobuf/ProtobufQluaEventTypeSerde.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java index a94b99a..e6b4cf2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -4,11 +4,12 @@ import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import com.google.common.primitives.Ints; import qlua.events.QluaEvents; /** - * Сериализатор в формат Protocol Buffers / десериализатор из формата Protocol Buffers событий API QLua терминала QUIK - * в рамках удалённого RPC-сервиса quik-lua-rpc. + * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат Protocol Buffers. *
* @see quik-lua-rpc * @see Protocol Buffers @@ -21,11 +22,11 @@ enum ProtobufQluaEventTypeSerde implements Serde { createPbEventTypeToEventTypeBiMap(); /** - * Сериализует тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса - * quik-lua-rpc в бинарное представление в формате Protocol Buffers. + * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат Protocol Buffers. * * @param eventType тип события API QLua терминала QUIK - * @return бинарное представление в формате Protocol Buffers, отвечающее данному типу события; + * @return бинарное представление, отвечающее данному типу события; * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null */ @Override @@ -39,10 +40,10 @@ public byte[] serialize(final QluaEvent.EventType eventType) { } /** - * Десериализует бинарное представление в формате Protocol Buffers типа события API QLua терминала QUIK в рамках - * удалённого RPC-сервиса quik-lua-rpc. + * Десериализует бинарное представление типа события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат Protocol Buffers. * - * @param data бинарное представление типа события в формате Protocol Buffers + * @param data бинарное представление типа события * @return экземпляр {@link QluaEvent.EventType}, отвечающий данному бинарному представлению; * null в случае отсутствия соответствия, а также в случае когда аргумент {@code data} является null */ @@ -89,6 +90,6 @@ private static BiMap createPbEventTypeToEventTypeBi } private static byte[] asByteArray(final int number) { - return String.valueOf(number).getBytes(ProtobufSerdeUtils.DEFAULT_PROTOBUF_CHARSET); + return Ints.toByteArray(number); } } From 10ee190b72495b4d84057d87f39aa18183d8145a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 8 Jul 2018 23:09:59 +0300 Subject: [PATCH 007/549] WIP: adding json-rpc support. --- ...rotobufSubscriptionExampleApplication.java | 88 ++++++ .../SubscriptionExampleApplication.java | 2 +- .../rpc/events/api/LoggingEventHandler.java | 6 +- .../lua/rpc/events/api/QluaEventHandler.java | 3 +- .../lua/rpc/events/api/QluaEventPoller.java | 21 +- .../rpc/events/api/structures/MoneyLimit.java | 281 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventPoller.java | 19 +- .../events/impl/ZmqTcpQluaEventProcessor.java | 6 +- .../quik/lua/rpc/serde/Deserializer.java | 6 + .../enfernuz/quik/lua/rpc/serde/Serde.java | 10 +- .../quik/lua/rpc/serde/SerdeException.java | 6 + .../quik/lua/rpc/serde/SerdeModule.java | 5 +- .../quik/lua/rpc/serde/Serializer.java | 6 + .../protobuf/ProtobufFirmDeserializer.java | 22 ++ .../rpc/serde/protobuf/ProtobufFirmSerde.java | 40 --- .../ProtobufMoneyLimitDeserializer.java | 37 +++ .../protobuf/ProtobufQluaEventTypeSerde.java | 121 +++++--- .../serde/protobuf/ProtobufSerdeModule.java | 17 +- 18 files changed, 593 insertions(+), 103 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java new file mode 100644 index 0000000..f7f649a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java @@ -0,0 +1,88 @@ +package com.enfernuz.quik.lua.rpc.application; + +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; +import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; +import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; +import com.enfernuz.quik.lua.rpc.events.impl.ZmqTcpQluaEventProcessor; +import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; + +public class ProtobufSubscriptionExampleApplication { + + private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionExampleApplication.class); + + public static void main(final String[] args) { + + final String filePath = args[0]; + if (filePath == null) { + LOGGER.error("Не задан путь до файла конфигурации."); + return; + } + + File configFile; + try { + configFile = new File(filePath); + } catch (final Exception ex) { + LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + return; + } + + LOGGER.info("Чтение файла конфигурации..."); + ClientConfiguration config; + try { + config = JsonClientConfigurationReader.INSTANCE.read(configFile); + } catch (final Exception ex) { + LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + return; + } + + LOGGER.info("Инициализация клиента..."); + final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); + try (final ZmqTcpQluaEventProcessor eventProcessor = + ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), ProtobufSerdeModule.INSTANCE)) { + + LOGGER.info("Подписка на все события..."); + //eventProcessor.subscribeToEverything(); + eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); + eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); + + LOGGER.info("Регистрация обработчиков событий..."); + eventProcessor.register(LoggingEventHandler.INSTANCE); + + LOGGER.info("Соединение с RPC-сервисом..."); + eventProcessor.open(); + + // monitor the Enter key pressing + final AtomicBoolean enough = new AtomicBoolean(false); + stdinScannerExecutorService.execute(() -> { + + try { + enough.set(System.in.read() > 0); + } catch (final Exception ex) { + LOGGER.error("Ошибка при чтении стандартного потока ввода.", ex); + } + }); + + LOGGER.info("Начало обработки событий. Нажмите Enter для остановки..."); + while ( !enough.get() ) { + eventProcessor.process(1); + } + + LOGGER.info("Выход из программы..."); + } catch (final QluaEventProcessor.QluaEventProcessingException ex) { + LOGGER.error("Ошибка при обработке события.", ex); + } catch (final Exception ex) { + LOGGER.error("Не удалось начать обработку событий.", ex); + } finally { + stdinScannerExecutorService.shutdownNow(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java index 49b692d..ad8d94d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java @@ -45,7 +45,7 @@ public static void main(final String[] args) { LOGGER.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); try (final ZmqTcpQluaEventProcessor eventProcessor = - ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext())) { + ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), null)) { LOGGER.info("Подписка на все события..."); eventProcessor.subscribeToEverything(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 351c6d1..4a7ee41 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import org.slf4j.*; import qlua.structs.QluaStructures; @@ -41,7 +43,7 @@ public void onInit() { } @Override - public void onFirm(QluaStructures.Firm firm) { + public void onFirm(Firm firm) { LOGGER.info("onFirm:\n{}", firm); } @@ -81,7 +83,7 @@ public void onFuturesClientHolding(QluaStructures.FuturesClientHolding futuresCl } @Override - public void onMoneyLimit(QluaStructures.MoneyLimit moneyLimit) { + public void onMoneyLimit(MoneyLimit moneyLimit) { LOGGER.info("onMoneyLimit:\n{}", moneyLimit); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 6aa02b3..e2409df 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import qlua.structs.QluaStructures; /** @@ -126,7 +127,7 @@ default void onFuturesClientHolding(final QluaStructures.FuturesClientHolding fu * * @param moneyLimit текущие значения денежного лимита */ - default void onMoneyLimit(final QluaStructures.MoneyLimit moneyLimit) {} + default void onMoneyLimit(final MoneyLimit moneyLimit) {} /** * Функция обратного вызова для события терминала OnMoneyLimitDelete. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java index 9fbf062..eafdce4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java @@ -12,11 +12,30 @@ public interface QluaEventPoller extends QluaEventSubscription, Gateway { /** * Опрашивает удалённый RPC-сервис quik-lua-rpc на предмет появления нового события API QLua терминала QUIK. * + * @param mode режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала + * QUIK * @return {@link QluaEvent событие} API QLua терминала QUIK или null в случае отсутствия новых событий * @throws PollingException в случае ошибки при опросе удалённого RPC-сервиса quik-lua-rpc на предмет * появления нового события API QLua терминала QUIK */ - QluaEvent poll() throws PollingException; + QluaEvent poll(final PollingMode mode) throws PollingException; + + /** + * Режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала + * QUIK. + */ + enum PollingMode { + + /** + * Блокирующее чтение очереди событий. Читающий поток заблокируется до получения нового события. + */ + BLOCKING, + + /** + * Неблокирующее чтение очереди событий. Читающий поток не блокируется при отсутствии новых событий. + */ + NO_BLOCKING; + } /** * Исключение, возникающее в случае ошибки при опросе удалённого RPC-сервиса quik-lua-rpc на предмет diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java new file mode 100644 index 0000000..0aa9398 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java @@ -0,0 +1,281 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; + +import java.util.Objects; + +public class MoneyLimit { + + private final String currCode; + private final String tag; + private final String firmId; + private final String clientCode; + private final String openBal; + private final String openLimit; + private final String currentBal; + private final String currentLimit; + private final String locked; + private final String lockedValueCoef; + private final String lockedMarginValue; + private final String leverage; + private int limitKind; + + private transient int hashCode; + private transient String asString; + + private MoneyLimit( + String currCode, + String tag, + String firmId, + String clientCode, + String openBal, + String openLimit, + String currentBal, + String currentLimit, + String locked, + String lockedValueCoef, + String lockedMarginValue, + String leverage, + int limitKind) { + + this.currCode = currCode; + this.tag = tag; + this.firmId = firmId; + this.clientCode = clientCode; + this.openBal = openBal; + this.openLimit = openLimit; + this.currentBal = currentBal; + this.currentLimit = currentLimit; + this.locked = locked; + this.lockedValueCoef = lockedValueCoef; + this.lockedMarginValue = lockedMarginValue; + this.leverage = leverage; + this.limitKind = limitKind; + } + + public static Builder builder() { + return new Builder(); + } + + public String getCurrCode() { + return currCode; + } + + public String getTag() { + return tag; + } + + public String getFirmId() { + return firmId; + } + + public String getClientCode() { + return clientCode; + } + + public String getOpenBal() { + return openBal; + } + + public String getOpenLimit() { + return openLimit; + } + + public String getCurrentBal() { + return currentBal; + } + + public String getCurrentLimit() { + return currentLimit; + } + + public String getLocked() { + return locked; + } + + public String getLockedValueCoef() { + return lockedValueCoef; + } + + public String getLockedMarginValue() { + return lockedMarginValue; + } + + public String getLeverage() { + return leverage; + } + + public int getLimitKind() { + return limitKind; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MoneyLimit that = (MoneyLimit) o; + return Integer.compare(limitKind, that.limitKind) == 0 && + Objects.equals(currCode, that.currCode) && + Objects.equals(tag, that.tag) && + Objects.equals(firmId, that.firmId) && + Objects.equals(clientCode, that.clientCode) && + Objects.equals(openBal, that.openBal) && + Objects.equals(openLimit, that.openLimit) && + Objects.equals(currentBal, that.currentBal) && + Objects.equals(currentLimit, that.currentLimit) && + Objects.equals(locked, that.locked) && + Objects.equals(lockedValueCoef, that.lockedValueCoef) && + Objects.equals(lockedMarginValue, that.lockedMarginValue) && + Objects.equals(leverage, that.leverage); + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + currCode, + tag, + firmId, + clientCode, + openBal, + openLimit, + currentBal, + currentLimit, + locked, + lockedValueCoef, + lockedMarginValue, + leverage, + limitKind + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("currCode", currCode) + .add("tag", tag) + .add("firmId", firmId) + .add("clientCode", clientCode) + .add("openBal", openBal) + .add("openLimit", openLimit) + .add("currentBal", currentBal) + .add("currentLimit", currentLimit) + .add("locked", locked) + .add("lockedValueCoef", lockedValueCoef) + .add("lockedMarginValue", lockedMarginValue) + .add("leverage", leverage) + .add("limitKind", limitKind) + .toString(); + } + + return asString; + } + + public static class Builder { + + private String currCode; + private String tag; + private String firmId; + private String clientCode; + private String openBal; + private String openLimit; + private String currentBal; + private String currentLimit; + private String locked; + private String lockedValueCoef; + private String lockedMarginValue; + private String leverage; + private int limitKind; + + public Builder currCode(final String currCode) { + this.currCode = currCode; + return this; + } + + public Builder tag(final String tag) { + this.tag = tag; + return this; + } + + public Builder firmId(final String firmId) { + this.firmId = firmId; + return this; + } + + public Builder clientCode(final String clientCode) { + this.clientCode = clientCode; + return this; + } + + public Builder openBal(final String openBal) { + this.openBal = openBal; + return this; + } + + public Builder openLimit(final String openLimit) { + this.openLimit = openLimit; + return this; + } + + public Builder currentBal(final String currentBal) { + this.currentBal = currentBal; + return this; + } + + public Builder currentLimit(final String currentLimit) { + this.currentLimit = currentLimit; + return this; + } + + public Builder locked(final String locked) { + this.locked = locked; + return this; + } + + public Builder lockedValueCoef(final String lockedValueCoef) { + this.lockedValueCoef = lockedValueCoef; + return this; + } + + public Builder lockedMarginValue(final String lockedMarginValue) { + this.lockedMarginValue = lockedMarginValue; + return this; + } + + public Builder leverage(final String leverage) { + this.leverage = leverage; + return this; + } + + public Builder limitKind(final int limitKind) { + this.limitKind = limitKind; + return this; + } + + public MoneyLimit build() { + + return new MoneyLimit( + this.currCode, + this.tag, + this.firmId, + this.clientCode, + this.openBal, + this.openLimit, + this.currentBal, + this.currentLimit, + this.locked, + this.lockedValueCoef, + this.lockedMarginValue, + this.leverage, + this.limitKind + ); + } + } + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index 1456c5c..3a5c662 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -74,20 +74,33 @@ private ZmqTcpQluaEventPoller( /** * Получает следующее событие в очереди событий терминала API QLua терминала QUIK. *
- * Получение следующего события в очереди происходит в неблокирующем режиме. * + * @param mode режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала + * QUIK * @return следующее событие в очереди событий терминала API QLua терминала QUIK или null, если очередь пуста * @throws PollingException в случае ошибки при попытке получить следующее событие в очереди событий терминала API * QLua терминала QUIK */ @Override - public QluaEvent poll() throws PollingException { + public QluaEvent poll(final PollingMode mode) throws PollingException { try { final QluaEvent result; + final byte[] subscriptionKeyAsBytes; + switch (mode) { + case BLOCKING: + subscriptionKeyAsBytes = subSocket.recv(); + break; + case NO_BLOCKING: + subscriptionKeyAsBytes = subSocket.recv(ZMQ.NOBLOCK); + break; + default: + throw new IllegalArgumentException( + String.format("Неподдерживаемый режим опроса очереди событий: '%s'.", mode) + ); + } - final byte[] subscriptionKeyAsBytes = subSocket.recv(ZMQ.NOBLOCK); if (subscriptionKeyAsBytes == null) { result = null; } else { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 7344193..d321046 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -57,7 +57,7 @@ private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final public void process() throws QluaEventProcessingException { try { - final QluaEvent event = eventPoller.poll(); + final QluaEvent event = eventPoller.poll(QluaEventPoller.PollingMode.BLOCKING); if (event != null) { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { @@ -74,7 +74,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onDisconnected(); break; case ON_FIRM: - eventHandler.onFirm( serdeModule.getFirmSerde().deserialize(event.getData()) ); + eventHandler.onFirm( serdeModule.getFirmDeserializer().deserialize(event.getData()) ); break; case ON_ALL_TRADE: eventHandler.onAllTrade( AllTrade.parseFrom(event.getData()) ); @@ -98,7 +98,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onFuturesClientHolding( FuturesClientHolding.parseFrom(event.getData()) ); break; case ON_MONEY_LIMIT: - eventHandler.onMoneyLimit( MoneyLimit.parseFrom(event.getData()) ); + eventHandler.onMoneyLimit( serdeModule.getMoneyLimitDeserializer().deserialize(event.getData()) ); break; case ON_MONEY_LIMIT_DELETE: eventHandler.onMoneyLimitDelete( MoneyLimitDelete.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java new file mode 100644 index 0000000..1a5fc21 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java @@ -0,0 +1,6 @@ +package com.enfernuz.quik.lua.rpc.serde; + +public interface Deserializer { + + T deserialize(byte[] data); +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java index 720f6a9..7f9acd4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serde.java @@ -1,12 +1,4 @@ package com.enfernuz.quik.lua.rpc.serde; -public interface Serde { - - byte[] serialize(T t); - - T deserialize(byte[] data); - - public static class SerdeException extends RuntimeException { - // TODO - } +public interface Serde extends Serializer, Deserializer { } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java new file mode 100644 index 0000000..803fc6e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java @@ -0,0 +1,6 @@ +package com.enfernuz.quik.lua.rpc.serde; + +public class SerdeException extends RuntimeException { + + // TODO +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java index 576bca2..17e0436 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java @@ -2,10 +2,13 @@ import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; public interface SerdeModule { Serde getQluaEventTypeSerde(); - Serde getFirmSerde(); + Deserializer getFirmDeserializer(); + + Deserializer getMoneyLimitDeserializer(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java new file mode 100644 index 0000000..abb13f5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java @@ -0,0 +1,6 @@ +package com.enfernuz.quik.lua.rpc.serde; + +public interface Serializer { + + byte[] serialize(T t); +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java new file mode 100644 index 0000000..95a2fdd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import qlua.structs.QluaStructures; + +enum ProtobufFirmDeserializer implements Deserializer { + + INSTANCE; + + @Override + public Firm deserialize(final byte[] data) { + + try { + final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); + return new Firm(firm.getFirmid(), firm.getFirmName(), firm.getStatus(), firm.getExchange()); + } catch (final Exception ex) { + throw new SerdeException(); // TODO + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java deleted file mode 100644 index 2aa0e67..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.asNonNullString; - -enum ProtobufFirmSerde implements Serde { - - INSTANCE; - - @Override - public byte[] serialize(final Firm firm) { - - try { - return QluaStructures.Firm - .newBuilder() - .setFirmid( firm.getFirmId() ) - .setFirmName( asNonNullString(firm.getFirmName()) ) - .setStatus( firm.getStatus() ) - .setExchange( asNonNullString(firm.getExchange()) ) - .build() - .toByteArray(); - } catch (final RuntimeException ex) { - throw new SerdeException(); // TODO - } - } - - @Override - public Firm deserialize(final byte[] data) { - - try { - final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); - return new Firm(firm.getFirmid(), firm.getFirmName(), firm.getStatus(), firm.getExchange()); - } catch (final Exception ex) { - throw new SerdeException(); // TODO - } - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java new file mode 100644 index 0000000..29e9cf7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import qlua.structs.QluaStructures; + +public enum ProtobufMoneyLimitDeserializer implements Deserializer { + + INSTANCE; + + @Override + public MoneyLimit deserialize(final byte[] data) { + try { + final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); + + return MoneyLimit + .builder() + .currCode( moneyLimit.getCurrcode() ) + .tag( moneyLimit.getTag() ) + .firmId( moneyLimit.getFirmid() ) + .clientCode( moneyLimit.getClientCode() ) + .openBal( moneyLimit.getOpenbal() ) + .openLimit( moneyLimit.getOpenlimit() ) + .currentBal( moneyLimit.getCurrentbal() ) + .currentLimit( moneyLimit.getCurrentlimit() ) + .locked( moneyLimit.getLocked() ) + .lockedValueCoef( moneyLimit.getLockedValueCoef() ) + .lockedMarginValue( moneyLimit.getLockedMarginValue() ) + .leverage( moneyLimit.getLeverage() ) + .limitKind( moneyLimit.getLimitKind() ) + .build(); + } catch (final Exception ex) { + throw new SerdeException(); // TODO + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java index e6b4cf2..0bc70f0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -7,6 +7,11 @@ import com.google.common.primitives.Ints; import qlua.events.QluaEvents; +import java.util.Arrays; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; + /** * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса * quik-lua-rpc, использующего формат Protocol Buffers. @@ -18,8 +23,11 @@ enum ProtobufQluaEventTypeSerde implements Serde { INSTANCE; - private static final BiMap PB_EVENT_TYPE_TO_EVENT_TYPE_MAP = - createPbEventTypeToEventTypeBiMap(); + private static final Map PB_EVENT_TYPE_HASH_TO_EVENT_TYPE_MAP = + createPbEventTypeHashToEventTypeMap(); + + private static final EnumMap EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP = + createEventTypeToPbTypeBytesMap(); /** * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса @@ -31,12 +39,7 @@ enum ProtobufQluaEventTypeSerde implements Serde { */ @Override public byte[] serialize(final QluaEvent.EventType eventType) { - - if (eventType == null) { - return null; - } - - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.inverse().get(eventType); + return EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP.get(eventType); } /** @@ -54,42 +57,82 @@ public QluaEvent.EventType deserialize(final byte[] data) { return null; } - return PB_EVENT_TYPE_TO_EVENT_TYPE_MAP.get(data); + return PB_EVENT_TYPE_HASH_TO_EVENT_TYPE_MAP.get( Integer.valueOf(Arrays.hashCode(data)) ); + } + + private static Map createPbEventTypeHashToEventTypeMap() { + + final Map result = new HashMap<>(QluaEvent.EventType.values().length); + + result.put(hash(QluaEvents.EventType.ON_CLOSE.getNumber()), QluaEvent.EventType.ON_CLOSE); + result.put(hash(QluaEvents.EventType.ON_STOP.getNumber()), QluaEvent.EventType.ON_STOP); + result.put(hash(QluaEvents.EventType.ON_FIRM.getNumber()), QluaEvent.EventType.ON_FIRM); + result.put(hash(QluaEvents.EventType.ON_ALL_TRADE.getNumber()), QluaEvent.EventType.ON_ALL_TRADE); + result.put(hash(QluaEvents.EventType.ON_TRADE.getNumber()), QluaEvent.EventType.ON_TRADE); + result.put(hash(QluaEvents.EventType.ON_ORDER.getNumber()), QluaEvent.EventType.ON_ORDER); + result.put(hash(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber()), QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put(hash(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put(hash(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put(hash(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber()), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put(hash(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT); + result.put(hash(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put(hash(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT); + result.put(hash(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put(hash(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber()), QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put(hash(QluaEvents.EventType.ON_NEG_DEAL.getNumber()), QluaEvent.EventType.ON_NEG_DEAL); + result.put(hash(QluaEvents.EventType.ON_NEG_TRADE.getNumber()), QluaEvent.EventType.ON_NEG_TRADE); + result.put(hash(QluaEvents.EventType.ON_STOP_ORDER.getNumber()), QluaEvent.EventType.ON_STOP_ORDER); + result.put(hash(QluaEvents.EventType.ON_TRANS_REPLY.getNumber()), QluaEvent.EventType.ON_TRANS_REPLY); + result.put(hash(QluaEvents.EventType.ON_PARAM.getNumber()), QluaEvent.EventType.ON_PARAM); + result.put(hash(QluaEvents.EventType.ON_QUOTE.getNumber()), QluaEvent.EventType.ON_QUOTE); + result.put(hash(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); + result.put(hash(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); + result.put(hash(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); + + assert (result.size() == QluaEvent.EventType.values().length); + + return result; } - private static BiMap createPbEventTypeToEventTypeBiMap() { - - final BiMap result = HashBiMap.create(QluaEvent.EventType.values().length); - - result.put(asByteArray(QluaEvents.EventType.ON_CLOSE.getNumber()), QluaEvent.EventType.ON_CLOSE); - result.put(asByteArray(QluaEvents.EventType.ON_STOP.getNumber()), QluaEvent.EventType.ON_STOP); - result.put(asByteArray(QluaEvents.EventType.ON_FIRM.getNumber()), QluaEvent.EventType.ON_FIRM); - result.put(asByteArray(QluaEvents.EventType.ON_ALL_TRADE.getNumber()), QluaEvent.EventType.ON_ALL_TRADE); - result.put(asByteArray(QluaEvents.EventType.ON_TRADE.getNumber()), QluaEvent.EventType.ON_TRADE); - result.put(asByteArray(QluaEvents.EventType.ON_ORDER.getNumber()), QluaEvent.EventType.ON_ORDER); - result.put(asByteArray(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber()), QluaEvent.EventType.ON_ACCOUNT_BALANCE); - result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); - result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); - result.put(asByteArray(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber()), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); - result.put(asByteArray(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT); - result.put(asByteArray(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); - result.put(asByteArray(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT); - result.put(asByteArray(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber()), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); - result.put(asByteArray(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber()), QluaEvent.EventType.ON_ACCOUNT_POSITION); - result.put(asByteArray(QluaEvents.EventType.ON_NEG_DEAL.getNumber()), QluaEvent.EventType.ON_NEG_DEAL); - result.put(asByteArray(QluaEvents.EventType.ON_NEG_TRADE.getNumber()), QluaEvent.EventType.ON_NEG_TRADE); - result.put(asByteArray(QluaEvents.EventType.ON_STOP_ORDER.getNumber()), QluaEvent.EventType.ON_STOP_ORDER); - result.put(asByteArray(QluaEvents.EventType.ON_TRANS_REPLY.getNumber()), QluaEvent.EventType.ON_TRANS_REPLY); - result.put(asByteArray(QluaEvents.EventType.ON_PARAM.getNumber()), QluaEvent.EventType.ON_PARAM); - result.put(asByteArray(QluaEvents.EventType.ON_QUOTE.getNumber()), QluaEvent.EventType.ON_QUOTE); - result.put(asByteArray(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); - result.put(asByteArray(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); - result.put(asByteArray(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); + private static EnumMap createEventTypeToPbTypeBytesMap() { + + final EnumMap result = new EnumMap<>(QluaEvent.EventType.class); + + result.put(QluaEvent.EventType.ON_CLOSE, asStringBytes(QluaEvents.EventType.ON_CLOSE.getNumber())); + result.put(QluaEvent.EventType.ON_STOP, asStringBytes(QluaEvents.EventType.ON_STOP.getNumber())); + result.put(QluaEvent.EventType.ON_FIRM, asStringBytes(QluaEvents.EventType.ON_FIRM.getNumber())); + result.put(QluaEvent.EventType.ON_ALL_TRADE, asStringBytes(QluaEvents.EventType.ON_ALL_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_TRADE, asStringBytes(QluaEvents.EventType.ON_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_ORDER, asStringBytes(QluaEvents.EventType.ON_ORDER.getNumber())); + result.put(QluaEvent.EventType.ON_ACCOUNT_BALANCE, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING, asStringBytes(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber())); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber())); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber())); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_ACCOUNT_POSITION, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber())); + result.put(QluaEvent.EventType.ON_NEG_DEAL, asStringBytes(QluaEvents.EventType.ON_NEG_DEAL.getNumber())); + result.put(QluaEvent.EventType.ON_NEG_TRADE, asStringBytes(QluaEvents.EventType.ON_NEG_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_STOP_ORDER, asStringBytes(QluaEvents.EventType.ON_STOP_ORDER.getNumber())); + result.put(QluaEvent.EventType.ON_TRANS_REPLY, asStringBytes(QluaEvents.EventType.ON_TRANS_REPLY.getNumber())); + result.put(QluaEvent.EventType.ON_PARAM, asStringBytes(QluaEvents.EventType.ON_PARAM.getNumber())); + result.put(QluaEvent.EventType.ON_QUOTE, asStringBytes(QluaEvents.EventType.ON_QUOTE.getNumber())); + result.put(QluaEvent.EventType.ON_DISCONNECTED, asStringBytes(QluaEvents.EventType.ON_DISCONNECTED.getNumber())); + result.put(QluaEvent.EventType.ON_CONNECTED, asStringBytes(QluaEvents.EventType.ON_CONNECTED.getNumber())); + result.put(QluaEvent.EventType.ON_CLEAN_UP, asStringBytes(QluaEvents.EventType.ON_CLEAN_UP.getNumber())); + + assert (result.size() == QluaEvent.EventType.values().length); return result; } - private static byte[] asByteArray(final int number) { - return Ints.toByteArray(number); + private static byte[] asStringBytes(final int number) { + return Integer.toString(number).getBytes(ProtobufSerdeUtils.DEFAULT_PROTOBUF_CHARSET); + } + + private static int hash(final int number) { + return Arrays.hashCode( asStringBytes(number) ); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index e618556..7b8031e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -2,10 +2,14 @@ import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.Serde; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -public class ProtobufSerdeModule implements SerdeModule { +public enum ProtobufSerdeModule implements SerdeModule { + + INSTANCE; @Override public Serde getQluaEventTypeSerde() { @@ -13,7 +17,14 @@ public Serde getQluaEventTypeSerde() { } @Override - public Serde getFirmSerde() { - return ProtobufFirmSerde.INSTANCE; + public Deserializer getFirmDeserializer() { + return ProtobufFirmDeserializer.INSTANCE; + } + + @Override + public Deserializer getMoneyLimitDeserializer() { + return ProtobufMoneyLimitDeserializer.INSTANCE; } + + } From 11428d6c52c7ce2ed757dbecab29b721808b652c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 10 Jul 2018 04:31:02 +0300 Subject: [PATCH 008/549] WIP: adding json-rpc support. --- pom.xml | 7 + .../lua/rpc/events/api/structures/Firm.java | 42 +-- .../rpc/events/api/structures/MoneyLimit.java | 258 ++++-------------- .../json/JsonMoneyLimitDeserializer.java | 28 ++ .../serde/json/JsonQluaEventTypeSerde.java | 135 +++++++++ .../lua/rpc/serde/json/JsonSerdeModule.java | 40 +++ .../jackson/MoneyLimitJsonDeserializer.java | 36 +++ .../jackson/QluaJsonJacksonDeserializers.java | 14 + .../serde/json/jackson/QluaJsonModule.java | 14 + .../protobuf/ProtobufFirmDeserializer.java | 8 +- .../ProtobufMoneyLimitDeserializer.java | 2 +- .../protobuf/ProtobufQluaEventTypeSerde.java | 4 +- 12 files changed, 354 insertions(+), 234 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java diff --git a/pom.xml b/pom.xml index 301413f..622dc9c 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,13 @@ 21.0 + + org.projectlombok + lombok + 1.18.0 + provided + + com.fasterxml.jackson.core diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java index 319fc62..0a47e93 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -1,44 +1,32 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; import java.util.Objects; -import static java.util.Objects.requireNonNull; +@Value +@Builder +public class Firm { -public final class Firm { + String firmId; + String firmName; + int status; + String exchange; - private final String firmId; - private final String firmName; - private final int status; - private final String exchange; + private @NonFinal transient int hashCode; + private @NonFinal transient String asString; - private transient int hashCode; - private transient String asString; - - public Firm(final String firmId, final String firmName, int status, final String exchange) { - this.firmId = requireNonNull(firmId, "Аргумент 'firmId' не должен быть null."); + private Firm(@NonNull final String firmId, final String firmName, int status, final String exchange) { + this.firmId = firmId; this.firmName = firmName; this.status = status; this.exchange = exchange; } - public String getFirmId() { - return firmId; - } - - public String getFirmName() { - return firmName; - } - - public int getStatus() { - return status; - } - - public String getExchange() { - return exchange; - } - @Override public boolean equals(final Object o) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java index 0aa9398..b397916 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java @@ -1,42 +1,47 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; import java.util.Objects; +@Value +@Builder public class MoneyLimit { - private final String currCode; - private final String tag; - private final String firmId; - private final String clientCode; - private final String openBal; - private final String openLimit; - private final String currentBal; - private final String currentLimit; - private final String locked; - private final String lockedValueCoef; - private final String lockedMarginValue; - private final String leverage; - private int limitKind; - - private transient int hashCode; - private transient String asString; + String currCode; + String tag; + String firmId; + String clientCode; + String openBal; + String openLimit; + String currentBal; + String currentLimit; + String locked; + String lockedValueCoef; + String lockedMarginValue; + String leverage; + int limitKind; + + private @NonFinal transient int hashCode; + private @NonFinal transient String asString; private MoneyLimit( - String currCode, - String tag, - String firmId, - String clientCode, - String openBal, - String openLimit, - String currentBal, - String currentLimit, - String locked, - String lockedValueCoef, - String lockedMarginValue, - String leverage, - int limitKind) { + final String currCode, + final String tag, + final String firmId, + final String clientCode, + final String openBal, + final String openLimit, + final String currentBal, + final String currentLimit, + final String locked, + final String lockedValueCoef, + final String lockedMarginValue, + final String leverage, + final int limitKind) { this.currCode = currCode; this.tag = tag; @@ -53,80 +58,29 @@ private MoneyLimit( this.limitKind = limitKind; } - public static Builder builder() { - return new Builder(); - } - - public String getCurrCode() { - return currCode; - } - - public String getTag() { - return tag; - } - - public String getFirmId() { - return firmId; - } - - public String getClientCode() { - return clientCode; - } - - public String getOpenBal() { - return openBal; - } - - public String getOpenLimit() { - return openLimit; - } - - public String getCurrentBal() { - return currentBal; - } - - public String getCurrentLimit() { - return currentLimit; - } - - public String getLocked() { - return locked; - } - - public String getLockedValueCoef() { - return lockedValueCoef; - } - - public String getLockedMarginValue() { - return lockedMarginValue; - } - - public String getLeverage() { - return leverage; - } - - public int getLimitKind() { - return limitKind; - } - @Override public boolean equals(final Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - MoneyLimit that = (MoneyLimit) o; - return Integer.compare(limitKind, that.limitKind) == 0 && - Objects.equals(currCode, that.currCode) && - Objects.equals(tag, that.tag) && - Objects.equals(firmId, that.firmId) && - Objects.equals(clientCode, that.clientCode) && - Objects.equals(openBal, that.openBal) && - Objects.equals(openLimit, that.openLimit) && - Objects.equals(currentBal, that.currentBal) && - Objects.equals(currentLimit, that.currentLimit) && - Objects.equals(locked, that.locked) && - Objects.equals(lockedValueCoef, that.lockedValueCoef) && - Objects.equals(lockedMarginValue, that.lockedMarginValue) && - Objects.equals(leverage, that.leverage); + + if (o == this) { + return true; + } else if ( !(o instanceof MoneyLimit) ) { + return false; + } else { + final MoneyLimit other = (MoneyLimit) o; + return Integer.compare(limitKind, other.limitKind) == 0 && + Objects.equals(currCode, other.currCode) && + Objects.equals(tag, other.tag) && + Objects.equals(firmId, other.firmId) && + Objects.equals(clientCode, other.clientCode) && + Objects.equals(openBal, other.openBal) && + Objects.equals(openLimit, other.openLimit) && + Objects.equals(currentBal, other.currentBal) && + Objects.equals(currentLimit, other.currentLimit) && + Objects.equals(locked, other.locked) && + Objects.equals(lockedValueCoef, other.lockedValueCoef) && + Objects.equals(lockedMarginValue, other.lockedMarginValue) && + Objects.equals(leverage, other.leverage); + } } @Override @@ -176,106 +130,4 @@ public String toString() { return asString; } - - public static class Builder { - - private String currCode; - private String tag; - private String firmId; - private String clientCode; - private String openBal; - private String openLimit; - private String currentBal; - private String currentLimit; - private String locked; - private String lockedValueCoef; - private String lockedMarginValue; - private String leverage; - private int limitKind; - - public Builder currCode(final String currCode) { - this.currCode = currCode; - return this; - } - - public Builder tag(final String tag) { - this.tag = tag; - return this; - } - - public Builder firmId(final String firmId) { - this.firmId = firmId; - return this; - } - - public Builder clientCode(final String clientCode) { - this.clientCode = clientCode; - return this; - } - - public Builder openBal(final String openBal) { - this.openBal = openBal; - return this; - } - - public Builder openLimit(final String openLimit) { - this.openLimit = openLimit; - return this; - } - - public Builder currentBal(final String currentBal) { - this.currentBal = currentBal; - return this; - } - - public Builder currentLimit(final String currentLimit) { - this.currentLimit = currentLimit; - return this; - } - - public Builder locked(final String locked) { - this.locked = locked; - return this; - } - - public Builder lockedValueCoef(final String lockedValueCoef) { - this.lockedValueCoef = lockedValueCoef; - return this; - } - - public Builder lockedMarginValue(final String lockedMarginValue) { - this.lockedMarginValue = lockedMarginValue; - return this; - } - - public Builder leverage(final String leverage) { - this.leverage = leverage; - return this; - } - - public Builder limitKind(final int limitKind) { - this.limitKind = limitKind; - return this; - } - - public MoneyLimit build() { - - return new MoneyLimit( - this.currCode, - this.tag, - this.firmId, - this.clientCode, - this.openBal, - this.openLimit, - this.currentBal, - this.currentLimit, - this.locked, - this.lockedValueCoef, - this.lockedMarginValue, - this.leverage, - this.limitKind - ); - } - } - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java new file mode 100644 index 0000000..e6a7b0e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.json; + +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Setter; +import lombok.Value; + +@Value +public class JsonMoneyLimitDeserializer implements Deserializer { + + @Getter(AccessLevel.NONE) + @Setter(AccessLevel.NONE) + ObjectMapper objectMapper; + + @Override + public MoneyLimit deserialize(final byte[] data) { + + try { + return objectMapper.readValue(data, MoneyLimit.class); + } catch (final Exception ex) { + throw new SerdeException(); //TODO + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java new file mode 100644 index 0000000..068caf9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java @@ -0,0 +1,135 @@ +package com.enfernuz.quik.lua.rpc.serde.json; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.serde.Serde; + +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; + +/** + * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат JSON. + *
+ * @see quik-lua-rpc + * @see JSON + */ +public enum JsonQluaEventTypeSerde implements Serde { + + INSTANCE; + + private static final Map EVENT_TYPE_NAME_HASH_TO_EVENT_TYPE_MAP = + createPbEventTypeNameHashToEventTypeMap(); + + private static final EnumMap EVENT_TYPE_TO_EVENT_TYPE_BYTES_MAP = + createEventTypeToEventTypeBytesMap(); + + /** + * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат JSON. + * + * @param eventType тип события API QLua терминала QUIK + * @return бинарное представление, отвечающее данному типу события; + * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null + */ + @Override + public byte[] serialize(final QluaEvent.EventType eventType) { + return EVENT_TYPE_TO_EVENT_TYPE_BYTES_MAP.get(eventType); + } + + /** + * Десериализует бинарное представление типа события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат JSON. + * + * @param data бинарное представление типа события + * @return экземпляр {@link QluaEvent.EventType}, отвечающий данному бинарному представлению; + * null в случае отсутствия соответствия, а также в случае когда аргумент {@code data} является null + */ + @Override + public QluaEvent.EventType deserialize(final byte[] data) { + + if (data == null) { + return null; + } + + return EVENT_TYPE_NAME_HASH_TO_EVENT_TYPE_MAP.get( Integer.valueOf(Arrays.hashCode(data)) ); + } + + private static Map createPbEventTypeNameHashToEventTypeMap() { + + final Map result = new HashMap<>(QluaEvent.EventType.values().length); + + result.put(hash("OnClose"), QluaEvent.EventType.ON_CLOSE); + result.put(hash("OnStop"), QluaEvent.EventType.ON_STOP); + result.put(hash("OnFirm"), QluaEvent.EventType.ON_FIRM); + result.put(hash("OnAllTrade"), QluaEvent.EventType.ON_ALL_TRADE); + result.put(hash("OnTrade"), QluaEvent.EventType.ON_TRADE); + result.put(hash("OnOrder"), QluaEvent.EventType.ON_ORDER); + result.put(hash("OnAccountBalance"), QluaEvent.EventType.ON_ACCOUNT_BALANCE); + result.put(hash("OnFuturesLimitChange"), QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE); + result.put(hash("OnFuturesLimitDelete"), QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE); + result.put(hash("OnFuturesClientHolding"), QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING); + result.put(hash("OnMoneyLimit"), QluaEvent.EventType.ON_MONEY_LIMIT); + result.put(hash("OnMoneyLimitDelete"), QluaEvent.EventType.ON_MONEY_LIMIT_DELETE); + result.put(hash("OnDepoLimit"), QluaEvent.EventType.ON_DEPO_LIMIT); + result.put(hash("OnDepoLimitDelete"), QluaEvent.EventType.ON_DEPO_LIMIT_DELETE); + result.put(hash("OnAccountPosition"), QluaEvent.EventType.ON_ACCOUNT_POSITION); + result.put(hash("OnNegDeal"), QluaEvent.EventType.ON_NEG_DEAL); + result.put(hash("OnNegTrade"), QluaEvent.EventType.ON_NEG_TRADE); + result.put(hash("OnStopOrder"), QluaEvent.EventType.ON_STOP_ORDER); + result.put(hash("OnTransReply"), QluaEvent.EventType.ON_TRANS_REPLY); + result.put(hash("OnParam"), QluaEvent.EventType.ON_PARAM); + result.put(hash("OnQuote"), QluaEvent.EventType.ON_QUOTE); + result.put(hash("OnDisconnected"), QluaEvent.EventType.ON_DISCONNECTED); + result.put(hash("OnConnected"), QluaEvent.EventType.ON_CONNECTED); + result.put(hash("OnCleanUp"), QluaEvent.EventType.ON_CLEAN_UP); + + assert (result.size() == QluaEvent.EventType.values().length); + + return result; + } + + private static EnumMap createEventTypeToEventTypeBytesMap() { + + final EnumMap result = new EnumMap<>(QluaEvent.EventType.class); + + result.put(QluaEvent.EventType.ON_CLOSE, asBytes("OnClose")); + result.put(QluaEvent.EventType.ON_STOP, asBytes("OnStop")); + result.put(QluaEvent.EventType.ON_FIRM, asBytes("OnFirm")); + result.put(QluaEvent.EventType.ON_ALL_TRADE, asBytes("OnAllTrade")); + result.put(QluaEvent.EventType.ON_TRADE, asBytes("OnTrade")); + result.put(QluaEvent.EventType.ON_ORDER, asBytes("OnOrder")); + result.put(QluaEvent.EventType.ON_ACCOUNT_BALANCE, asBytes("OnAccountBalance")); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE, asBytes("OnFuturesLimitChange")); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE, asBytes("OnFuturesLimitDelete")); + result.put(QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING, asBytes("OnFuturesClientHolding")); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT, asBytes("OnMoneyLimit")); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT_DELETE, asBytes("OnMoneyLimitDelete")); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT, asBytes("OnDepoLimit")); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT_DELETE, asBytes("OnDepoLimitDelete")); + result.put(QluaEvent.EventType.ON_ACCOUNT_POSITION, asBytes("OnAccountPosition")); + result.put(QluaEvent.EventType.ON_NEG_DEAL, asBytes("OnNegDeal")); + result.put(QluaEvent.EventType.ON_NEG_TRADE, asBytes("OnNegTrade")); + result.put(QluaEvent.EventType.ON_STOP_ORDER, asBytes("OnStopOrder")); + result.put(QluaEvent.EventType.ON_TRANS_REPLY, asBytes("OnTransReply")); + result.put(QluaEvent.EventType.ON_PARAM, asBytes("OnParam")); + result.put(QluaEvent.EventType.ON_QUOTE, asBytes("OnQuote")); + result.put(QluaEvent.EventType.ON_DISCONNECTED, asBytes("OnDisconnected")); + result.put(QluaEvent.EventType.ON_CONNECTED, asBytes("OnConnected")); + result.put(QluaEvent.EventType.ON_CLEAN_UP, asBytes("OnCleanUp")); + + assert (result.size() == QluaEvent.EventType.values().length); + + return result; + } + + private static byte[] asBytes(final String str) { + return str.getBytes(StandardCharsets.UTF_8); + } + + private static int hash(final String str) { + return Arrays.hashCode( asBytes(str) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java new file mode 100644 index 0000000..dd533c2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.json; + +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; + +public enum JsonSerdeModule implements SerdeModule { + + INSTANCE; + + private final Deserializer moneyLimitDeserializer; + + private JsonSerdeModule() { + + final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule( new QluaJsonModule() ); + + this.moneyLimitDeserializer = new JsonMoneyLimitDeserializer(objectMapper); + } + + @Override + public Serde getQluaEventTypeSerde() { + return JsonQluaEventTypeSerde.INSTANCE; + } + + @Override + public Deserializer getFirmDeserializer() { + return null; + } + + @Override + public Deserializer getMoneyLimitDeserializer() { + return moneyLimitDeserializer; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java new file mode 100644 index 0000000..10580fa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +public class MoneyLimitJsonDeserializer extends JsonDeserializer { + + @Override + public MoneyLimit deserialize( + final JsonParser jsonParser, + final DeserializationContext deserializationContext) throws IOException { + + final JsonNode node = jsonParser.getCodec().readTree(jsonParser); + + return MoneyLimit.builder() + .currCode( node.get("currcode").asText() ) + .tag( node.get("tag").asText() ) + .firmId( node.get("firmid").asText() ) + .clientCode( node.get("client_code").asText() ) + .openBal( node.get("openbal").asText() ) + .openLimit( node.get("openlimit").asText() ) + .currentBal( node.get("currentbal").asText() ) + .currentLimit( node.get("currentlimit").asText() ) + .locked( node.get("locked").asText() ) + .lockedValueCoef( node.get("locked_value_coef").asText() ) + .lockedMarginValue( node.get("locked_margin_value").asText() ) + .leverage( node.get("leverage").asText() ) + .limitKind( node.get("limit_kind").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java new file mode 100644 index 0000000..5f81eba --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -0,0 +1,14 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.fasterxml.jackson.databind.module.SimpleDeserializers; + +public class QluaJsonJacksonDeserializers extends SimpleDeserializers { + + public QluaJsonJacksonDeserializers() { + + super(); + + super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java new file mode 100644 index 0000000..8210d64 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java @@ -0,0 +1,14 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.fasterxml.jackson.databind.module.SimpleModule; + +public class QluaJsonModule extends SimpleModule { + + @Override + public void setupModule(SetupContext context) { + + super.setupModule(context); + + context.addDeserializers( new QluaJsonJacksonDeserializers() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index 95a2fdd..4d17c2d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -14,7 +14,13 @@ public Firm deserialize(final byte[] data) { try { final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); - return new Firm(firm.getFirmid(), firm.getFirmName(), firm.getStatus(), firm.getExchange()); + return Firm + .builder() + .firmId(firm.getFirmid()) + .firmName(firm.getFirmName()) + .status(firm.getStatus()) + .exchange(firm.getExchange()) + .build(); } catch (final Exception ex) { throw new SerdeException(); // TODO } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index 29e9cf7..1bb9a04 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -11,9 +11,9 @@ public enum ProtobufMoneyLimitDeserializer implements Deserializer { @Override public MoneyLimit deserialize(final byte[] data) { + try { final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); - return MoneyLimit .builder() .currCode( moneyLimit.getCurrcode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java index 0bc70f0..0a39f5c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -27,7 +27,7 @@ enum ProtobufQluaEventTypeSerde implements Serde { createPbEventTypeHashToEventTypeMap(); private static final EnumMap EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP = - createEventTypeToPbTypeBytesMap(); + createEventTypeToPbEventTypeBytesMap(); /** * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса @@ -94,7 +94,7 @@ private static Map createPbEventTypeHashToEventTyp return result; } - private static EnumMap createEventTypeToPbTypeBytesMap() { + private static EnumMap createEventTypeToPbEventTypeBytesMap() { final EnumMap result = new EnumMap<>(QluaEvent.EventType.class); From 7c8a54c01167bc12e22f504ca89954ed610d7d0e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 12 Jul 2018 02:14:38 +0300 Subject: [PATCH 009/549] WIP: adding json-rpc support. --- .../JsonSubscriptionExampleApplication.java | 88 +++++++++++++++++++ .../lua/rpc/events/api/structures/Firm.java | 2 +- .../rpc/events/api/structures/MoneyLimit.java | 2 +- .../events/impl/ZmqTcpQluaEventPoller.java | 22 ++--- .../events/impl/ZmqTcpQluaEventProcessor.java | 47 +++++----- .../quik/lua/rpc/serde/Deserializer.java | 1 + .../quik/lua/rpc/serde/SerdeModule.java | 6 +- .../quik/lua/rpc/serde/Serializer.java | 1 + .../lua/rpc/serde/json/JsonSerdeModule.java | 46 ++++++---- .../json/jackson/FirmJsonDeserializer.java | 26 ++++++ .../jackson/QluaJsonJacksonDeserializers.java | 2 + .../serde/protobuf/ProtobufSerdeModule.java | 57 ++++++++++-- 12 files changed, 237 insertions(+), 63 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java new file mode 100644 index 0000000..031bb2b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -0,0 +1,88 @@ +package com.enfernuz.quik.lua.rpc.application; + +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; +import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; +import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; +import com.enfernuz.quik.lua.rpc.events.impl.ZmqTcpQluaEventProcessor; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; + +public class JsonSubscriptionExampleApplication { + + private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionExampleApplication.class); + + public static void main(final String[] args) { + + final String filePath = args[0]; + if (filePath == null) { + LOGGER.error("Не задан путь до файла конфигурации."); + return; + } + + File configFile; + try { + configFile = new File(filePath); + } catch (final Exception ex) { + LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + return; + } + + LOGGER.info("Чтение файла конфигурации..."); + ClientConfiguration config; + try { + config = JsonClientConfigurationReader.INSTANCE.read(configFile); + } catch (final Exception ex) { + LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + return; + } + + LOGGER.info("Инициализация клиента..."); + final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); + try (final ZmqTcpQluaEventProcessor eventProcessor = + ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), JsonSerdeModule.INSTANCE)) { + + LOGGER.info("Подписка на все события..."); + //eventProcessor.subscribeToEverything(); + eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); + eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); + + LOGGER.info("Регистрация обработчиков событий..."); + eventProcessor.register(LoggingEventHandler.INSTANCE); + + LOGGER.info("Соединение с RPC-сервисом..."); + eventProcessor.open(); + + // monitor the Enter key pressing + final AtomicBoolean enough = new AtomicBoolean(false); + stdinScannerExecutorService.execute(() -> { + + try { + enough.set(System.in.read() > 0); + } catch (final Exception ex) { + LOGGER.error("Ошибка при чтении стандартного потока ввода.", ex); + } + }); + + LOGGER.info("Начало обработки событий. Нажмите Enter для остановки..."); + while ( !enough.get() ) { + eventProcessor.process(1); + } + + LOGGER.info("Выход из программы..."); + } catch (final QluaEventProcessor.QluaEventProcessingException ex) { + LOGGER.error("Ошибка при обработке события.", ex); + } catch (final Exception ex) { + LOGGER.error("Не удалось начать обработку событий.", ex); + } finally { + stdinScannerExecutorService.shutdownNow(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java index 0a47e93..2ea0e48 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -9,7 +9,6 @@ import java.util.Objects; @Value -@Builder public class Firm { String firmId; @@ -20,6 +19,7 @@ public class Firm { private @NonFinal transient int hashCode; private @NonFinal transient String asString; + @Builder private Firm(@NonNull final String firmId, final String firmName, int status, final String exchange) { this.firmId = firmId; this.firmName = firmName; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java index b397916..0efd6cc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java @@ -8,7 +8,6 @@ import java.util.Objects; @Value -@Builder public class MoneyLimit { String currCode; @@ -28,6 +27,7 @@ public class MoneyLimit { private @NonFinal transient int hashCode; private @NonFinal transient String asString; + @Builder private MoneyLimit( final String currCode, final String tag, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index 3a5c662..a83bf48 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -8,6 +8,7 @@ import com.enfernuz.quik.lua.rpc.events.api.TcpQluaEventPoller; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.ImmutableSet; import org.zeromq.ZFrame; import org.zeromq.ZMQ; @@ -37,7 +38,7 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { private final AuthContext authContext; private boolean isOpened; private final EnumSet subscription; - private final Serde qluaEventTypeSerde; + private final SerdeModule serdeModule; /** * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventPoller}, с точкой подключения RPC-сервиса на стороне @@ -45,28 +46,29 @@ class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { * * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK * @param authContext контекст защиты передачи данных + * @param serdeModule модуль сериализации/десериализации доменных объектов QLua * @return новый экземпляр компонента {@link ZmqTcpQluaEventPoller} */ static ZmqTcpQluaEventPoller newInstance( final NetworkAddress networkAddress, final AuthContext authContext, - final Serde qluaEventTypeSerde) { + final SerdeModule serdeModule) { return new ZmqTcpQluaEventPoller( requireNonNull(networkAddress), requireNonNull(authContext), - requireNonNull(qluaEventTypeSerde) + requireNonNull(serdeModule) ); } private ZmqTcpQluaEventPoller( final NetworkAddress networkAddress, final AuthContext authContext, - final Serde qluaEventTypeSerde) { + final SerdeModule serdeModule) { this.networkAddress = networkAddress; this.authContext = authContext; - this.qluaEventTypeSerde = qluaEventTypeSerde; + this.serdeModule = serdeModule; this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); this.subscription = EnumSet.noneOf(QluaEvent.EventType.class); } @@ -105,9 +107,7 @@ public QluaEvent poll(final PollingMode mode) throws PollingException { result = null; } else { - //final String subscriptionKeyAsString = new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8); - - final QluaEvent.EventType eventType = qluaEventTypeSerde.deserialize(subscriptionKeyAsBytes); + final QluaEvent.EventType eventType = serdeModule.deserialize(QluaEvent.EventType.class, subscriptionKeyAsBytes); if (eventType == null) { throw new PollingException( String.format("Unknown subscription key: %s.", new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8)) ); } @@ -141,7 +141,7 @@ public QluaEvent poll(final PollingMode mode) throws PollingException { public void subscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.subscribe( qluaEventTypeSerde.serialize(eventType) ); + subSocket.subscribe( serdeModule.serialize(eventType) ); } subscription.add(eventType); @@ -172,7 +172,7 @@ public void subscribeToEverything() { public void unsubscribe(final QluaEvent.EventType eventType) { if (isOpened) { - subSocket.unsubscribe( qluaEventTypeSerde.serialize(eventType) ); + subSocket.unsubscribe( serdeModule.serialize(eventType) ); } subscription.remove(eventType); @@ -220,7 +220,7 @@ public void open() throws IOException { subSocket.setLinger(0); // no waiting before closing the socket for (final QluaEvent.EventType eventType : subscription) { - subSocket.subscribe( qluaEventTypeSerde.serialize(eventType) ); + subSocket.subscribe( serdeModule.serialize(eventType) ); } switch (authContext.getAuthMechanism()) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index d321046..3e257ce 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,16 +2,18 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.events.api.*; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.*; +import qlua.structs.QluaStructures; import java.io.IOException; import java.util.ArrayList; import java.util.List; import static java.util.Objects.requireNonNull; -import static qlua.structs.QluaStructures.*; /** * Обработчик очереди событий API QLua терминала QUIK, полученных из удалённого RPC-сервиса quik-lua-rpc. @@ -32,7 +34,7 @@ public class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor { * * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK * @param authContext контекст защиты передачи данных - * @param serdeModule TODO + * @param serdeModule модуль сериализации/десериализации доменных объектов QLua * @return новый экземпляр компонента {@link ZmqTcpQluaEventProcessor} */ public static ZmqTcpQluaEventProcessor newInstance( @@ -41,7 +43,7 @@ public static ZmqTcpQluaEventProcessor newInstance( final SerdeModule serdeModule) { return new ZmqTcpQluaEventProcessor( - ZmqTcpQluaEventPoller.newInstance(networkAddress, authContext, serdeModule.getQluaEventTypeSerde()), + ZmqTcpQluaEventPoller.newInstance(networkAddress, authContext, serdeModule), serdeModule ); } @@ -58,6 +60,7 @@ public void process() throws QluaEventProcessingException { try { final QluaEvent event = eventPoller.poll(QluaEventPoller.PollingMode.BLOCKING); + final byte[] eventData = event.getData(); if (event != null) { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { @@ -74,61 +77,61 @@ public void process() throws QluaEventProcessingException { eventHandler.onDisconnected(); break; case ON_FIRM: - eventHandler.onFirm( serdeModule.getFirmDeserializer().deserialize(event.getData()) ); + eventHandler.onFirm( serdeModule.deserialize(Firm.class, eventData) ); break; case ON_ALL_TRADE: - eventHandler.onAllTrade( AllTrade.parseFrom(event.getData()) ); + eventHandler.onAllTrade( QluaStructures.AllTrade.parseFrom(event.getData()) ); break; case ON_TRADE: - eventHandler.onTrade( Trade.parseFrom(event.getData()) ); + eventHandler.onTrade( QluaStructures.Trade.parseFrom(event.getData()) ); break; case ON_ORDER: - eventHandler.onOrder( Order.parseFrom(event.getData()) ); + eventHandler.onOrder( QluaStructures.Order.parseFrom(event.getData()) ); break; case ON_ACCOUNT_BALANCE: - eventHandler.onAccountBalance( AccountBalance.parseFrom(event.getData()) ); + eventHandler.onAccountBalance( QluaStructures.AccountBalance.parseFrom(event.getData()) ); break; case ON_FUTURES_LIMIT_CHANGE: - eventHandler.onFuturesLimitChange( FuturesLimit.parseFrom(event.getData()) ); + eventHandler.onFuturesLimitChange( QluaStructures.FuturesLimit.parseFrom(event.getData()) ); break; case ON_FUTURES_LIMIT_DELETE: - eventHandler.onFuturesLimitDelete( FuturesLimitDelete.parseFrom(event.getData()) ); + eventHandler.onFuturesLimitDelete( QluaStructures.FuturesLimitDelete.parseFrom(event.getData()) ); break; case ON_FUTURES_CLIENT_HOLDING: - eventHandler.onFuturesClientHolding( FuturesClientHolding.parseFrom(event.getData()) ); + eventHandler.onFuturesClientHolding( QluaStructures.FuturesClientHolding.parseFrom(event.getData()) ); break; case ON_MONEY_LIMIT: - eventHandler.onMoneyLimit( serdeModule.getMoneyLimitDeserializer().deserialize(event.getData()) ); + eventHandler.onMoneyLimit( serdeModule.deserialize(MoneyLimit.class, eventData) ); break; case ON_MONEY_LIMIT_DELETE: - eventHandler.onMoneyLimitDelete( MoneyLimitDelete.parseFrom(event.getData()) ); + eventHandler.onMoneyLimitDelete( QluaStructures.MoneyLimitDelete.parseFrom(event.getData()) ); break; case ON_DEPO_LIMIT: - eventHandler.onDepoLimit( DepoLimit.parseFrom(event.getData()) ); + eventHandler.onDepoLimit( QluaStructures.DepoLimit.parseFrom(event.getData()) ); break; case ON_DEPO_LIMIT_DELETE: - eventHandler.onDepoLimitDelete( DepoLimitDelete.parseFrom(event.getData()) ); + eventHandler.onDepoLimitDelete( QluaStructures.DepoLimitDelete.parseFrom(event.getData()) ); break; case ON_ACCOUNT_POSITION: - eventHandler.onAccountPosition( AccountPosition.parseFrom(event.getData()) ); + eventHandler.onAccountPosition( QluaStructures.AccountPosition.parseFrom(event.getData()) ); break; case ON_NEG_DEAL: - eventHandler.onNegDeal( NegDeal.parseFrom(event.getData()) ); + eventHandler.onNegDeal( QluaStructures.NegDeal.parseFrom(event.getData()) ); break; case ON_NEG_TRADE: - eventHandler.onNegTrade( NegTrade.parseFrom(event.getData()) ); + eventHandler.onNegTrade( QluaStructures.NegTrade.parseFrom(event.getData()) ); break; case ON_STOP_ORDER: - eventHandler.onStopOrder( StopOrder.parseFrom(event.getData()) ); + eventHandler.onStopOrder( QluaStructures.StopOrder.parseFrom(event.getData()) ); break; case ON_TRANS_REPLY: - eventHandler.onTransReply( Transaction.parseFrom(event.getData()) ); + eventHandler.onTransReply( QluaStructures.Transaction.parseFrom(event.getData()) ); break; case ON_PARAM: - eventHandler.onParam( ParamEventInfo.parseFrom(event.getData()) ); + eventHandler.onParam( QluaStructures.ParamEventInfo.parseFrom(event.getData()) ); break; case ON_QUOTE: - eventHandler.onQuote( QuoteEventInfo.parseFrom(event.getData()) ); + eventHandler.onQuote( QluaStructures.QuoteEventInfo.parseFrom(event.getData()) ); break; case ON_CLEAN_UP: eventHandler.onCleanUp(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java index 1a5fc21..b69731c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Deserializer.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde; +@FunctionalInterface public interface Deserializer { T deserialize(byte[] data); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java index 17e0436..3b89b2c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java @@ -6,9 +6,7 @@ public interface SerdeModule { - Serde getQluaEventTypeSerde(); + byte[] serialize(T t); - Deserializer getFirmDeserializer(); - - Deserializer getMoneyLimitDeserializer(); + T deserialize(Class clazz, byte[] data); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java index abb13f5..51d04bb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/Serializer.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde; +@FunctionalInterface public interface Serializer { byte[] serialize(T t); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index dd533c2..10de8d6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -1,40 +1,54 @@ package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; +import static java.util.Objects.requireNonNull; + public enum JsonSerdeModule implements SerdeModule { INSTANCE; - private final Deserializer moneyLimitDeserializer; + private final ObjectMapper objectMapper; private JsonSerdeModule() { - final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper = new ObjectMapper(); objectMapper.registerModule( new QluaJsonModule() ); - - this.moneyLimitDeserializer = new JsonMoneyLimitDeserializer(objectMapper); } @Override - public Serde getQluaEventTypeSerde() { - return JsonQluaEventTypeSerde.INSTANCE; - } + public byte[] serialize(final T t) { - @Override - public Deserializer getFirmDeserializer() { - return null; + requireNonNull(t, "The argument must not be null."); + + if (t instanceof QluaEvent.EventType) { + return JsonQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); + } else { + throw new SerdeException(); // TODO + } } @Override - public Deserializer getMoneyLimitDeserializer() { - return moneyLimitDeserializer; + public T deserialize(final Class clazz, byte[] data) { + + try { + + if (QluaEvent.EventType.class == clazz) { + // This cast is safe because the JsonQluaEventTypeSerde returns an instance of QluaEvent.EventType + // and we obliged to return an instance of Class. + @SuppressWarnings("unchecked") + final T result = (T) JsonQluaEventTypeSerde.INSTANCE.deserialize(data); + return result; + } else { + return objectMapper.readValue(data, clazz); + } + } catch (final Exception ex) { + ex.printStackTrace(); + throw new SerdeException(); // TODO + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java new file mode 100644 index 0000000..45767cd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +public class FirmJsonDeserializer extends JsonDeserializer { + + @Override + public Firm deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) + throws IOException { + + final JsonNode node = jsonParser.getCodec().readTree(jsonParser); + return Firm + .builder() + .firmId( node.get("firmid").asText() ) + .firmName( node.get("firm_name").asText() ) + .status( node.get("status").asInt() ) + .exchange( node.get("exchange").asText() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 5f81eba..6c5aa43 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; +import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import com.fasterxml.jackson.databind.module.SimpleDeserializers; @@ -9,6 +10,7 @@ public QluaJsonJacksonDeserializers() { super(); + super.addDeserializer(Firm.class, new FirmJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 7b8031e..528a2db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -5,26 +5,67 @@ import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import java.util.HashMap; +import java.util.Map; + +import static java.util.Objects.requireNonNull; + public enum ProtobufSerdeModule implements SerdeModule { INSTANCE; - @Override - public Serde getQluaEventTypeSerde() { - return ProtobufQluaEventTypeSerde.INSTANCE; + private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = new HashMap<>(); + + static { + addDeserializer(QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); + addDeserializer(Firm.class, ProtobufFirmDeserializer.INSTANCE); + addDeserializer(MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); } - @Override - public Deserializer getFirmDeserializer() { - return ProtobufFirmDeserializer.INSTANCE; + private static void addDeserializer(Class clazz, Deserializer deserializer) { + CLASS_TO_DESERIALIZER_MAP.put(clazz, deserializer); } + @Override - public Deserializer getMoneyLimitDeserializer() { - return ProtobufMoneyLimitDeserializer.INSTANCE; + public byte[] serialize(final T t) { + + requireNonNull(t, "The argument must not be null."); + + if (t instanceof QluaEvent.EventType) { + return ProtobufQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); + } else { + throw new SerdeException(); // TODO + } } + @Override + public T deserialize(final Class clazz, final byte[] data) { + + // This cast is safe because we used the addDeserializer method to fill the map. + @SuppressWarnings("unchecked") + final Deserializer deserializer = (Deserializer) CLASS_TO_DESERIALIZER_MAP.get(clazz); + + if (deserializer == null) { + throw new SerdeException(); // TODO + } else { + try { + if (QluaEvent.EventType.class == clazz) { + // This cast is safe because the ProtobufQluaEventTypeSerde returns an instance of QluaEvent.EventType + // and we obliged to return an instance of Class. + @SuppressWarnings("unchecked") + final T result = (T) ProtobufQluaEventTypeSerde.INSTANCE.deserialize(data); + return result; + } else { + return deserializer.deserialize(data); + } + } catch (final RuntimeException ex) { + throw new SerdeException(); // TODO + } + } + } } From 2e6f782945d92c7bb4975709516d784439b069aa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 13 Jul 2018 03:39:54 +0300 Subject: [PATCH 010/549] WIP: adding json-rpc support. --- .../JsonSubscriptionExampleApplication.java | 5 +- .../rpc/events/api/LoggingEventHandler.java | 3 +- .../lua/rpc/events/api/QluaEventHandler.java | 3 +- .../rpc/events/api/structures/AllTrade.java | 163 ++++++++++++++++++ .../events/api/structures/DateTimeEntry.java | 99 +++++++++++ .../events/impl/ZmqTcpQluaEventPoller.java | 3 + .../events/impl/ZmqTcpQluaEventProcessor.java | 6 +- .../quik/lua/rpc/serde/SerdeException.java | 12 +- .../json/JsonMoneyLimitDeserializer.java | 28 --- .../serde/json/JsonQluaEventTypeSerde.java | 2 +- .../lua/rpc/serde/json/JsonSerdeModule.java | 10 +- .../jackson/AllTradeJsonDeserializer.java | 46 +++++ .../DateTimeEntryJsonDeserializer.java | 32 ++++ .../json/jackson/FirmJsonDeserializer.java | 8 +- .../jackson/MoneyLimitJsonDeserializer.java | 2 +- .../jackson/QluaJsonJacksonDeserializers.java | 6 +- .../json/jackson/QluaJsonJacksonUtils.java | 16 ++ .../serde/json/jackson/QluaJsonModule.java | 2 +- .../protobuf/ProtobufFirmDeserializer.java | 5 +- .../ProtobufMoneyLimitDeserializer.java | 7 +- .../serde/protobuf/ProtobufSerdeModule.java | 13 +- 21 files changed, 420 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java index 031bb2b..1dd37e3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -51,8 +51,9 @@ public static void main(final String[] args) { LOGGER.info("Подписка на все события..."); //eventProcessor.subscribeToEverything(); - eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); - eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); +// eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); +// eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); + eventProcessor.subscribe(QluaEvent.EventType.ON_ALL_TRADE); LOGGER.info("Регистрация обработчиков событий..."); eventProcessor.register(LoggingEventHandler.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 4a7ee41..730339e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import org.slf4j.*; @@ -48,7 +49,7 @@ public void onFirm(Firm firm) { } @Override - public void onAllTrade(QluaStructures.AllTrade allTrade) { + public void onAllTrade(AllTrade allTrade) { LOGGER.info("onAllTrade:\n{}", allTrade); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index e2409df..c1a01ad 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import qlua.structs.QluaStructures; @@ -64,7 +65,7 @@ default void onFirm(final Firm firm) {} * * @param allTrade обезличенная сделка */ - default void onAllTrade(final QluaStructures.AllTrade allTrade) {} + default void onAllTrade(final AllTrade allTrade) {} /** * Функция обратного вызова для события терминала OnTrade. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java new file mode 100644 index 0000000..670d7a6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java @@ -0,0 +1,163 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class AllTrade { + + long tradeNum; + int flags; + String price; + int qty; + String value; + String accruedInt; + String yield; + String settleCode; + String repoRate; + String repoValue; + String repo2Value; + String repoTerm; + String secCode; + String classCode; + DateTimeEntry dateTime; + int period; + String openInterest; + String exchangeCode; + + private @NonFinal transient int hashCode; + private @NonFinal transient String asString; + + @Builder + private AllTrade(final long tradeNum, + final int flags, + final String price, + final int qty, + final String value, + final String accruedInt, + final String yield, + final String settleCode, + final String repoRate, + final String repoValue, + final String repo2Value, + final String repoTerm, + final String secCode, + final String classCode, + final DateTimeEntry dateTime, + final int period, + final String openInterest, + final String exchangeCode) { + + this.tradeNum = tradeNum; + this.flags = flags; + this.price = price; + this.qty = qty; + this.value = value; + this.accruedInt = accruedInt; + this.yield = yield; + this.settleCode = settleCode; + this.repoRate = repoRate; + this.repoValue = repoValue; + this.repo2Value = repo2Value; + this.repoTerm = repoTerm; + this.secCode = secCode; + this.classCode = classCode; + this.dateTime = dateTime; + this.period = period; + this.openInterest = openInterest; + this.exchangeCode = exchangeCode; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof AllTrade) ) { + return false; + } else { + final AllTrade allTrade = (AllTrade) o; + return tradeNum == allTrade.tradeNum && + flags == allTrade.flags && + qty == allTrade.qty && + period == allTrade.period && + Objects.equals(price, allTrade.price) && + Objects.equals(value, allTrade.value) && + Objects.equals(accruedInt, allTrade.accruedInt) && + Objects.equals(yield, allTrade.yield) && + Objects.equals(settleCode, allTrade.settleCode) && + Objects.equals(repoRate, allTrade.repoRate) && + Objects.equals(repoValue, allTrade.repoValue) && + Objects.equals(repo2Value, allTrade.repo2Value) && + Objects.equals(repoTerm, allTrade.repoTerm) && + Objects.equals(secCode, allTrade.secCode) && + Objects.equals(classCode, allTrade.classCode) && + Objects.equals(dateTime, allTrade.dateTime) && + Objects.equals(openInterest, allTrade.openInterest) && + Objects.equals(exchangeCode, allTrade.exchangeCode); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = + Objects.hash( + tradeNum, + flags, + price, + qty, + value, + accruedInt, + yield, + settleCode, + repoRate, + repoValue, + repo2Value, + repoTerm, + secCode, + classCode, + dateTime, + period, + openInterest, + exchangeCode + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("tradeNum", tradeNum) + .add("flags", flags) + .add("price", price) + .add("qty", qty) + .add("value", value) + .add("accruedInt", accruedInt) + .add("yield", yield) + .add("settleCode", settleCode) + .add("repoRate", repoRate) + .add("repoValue", repoValue) + .add("repo2Value", repo2Value) + .add("repoTerm", repoTerm) + .add("secCode", secCode) + .add("classCode", classCode) + .add("dateTime", dateTime) + .add("period", period) + .add("openInterest", openInterest) + .add("exchangeCode", exchangeCode) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java new file mode 100644 index 0000000..915d0ec --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java @@ -0,0 +1,99 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class DateTimeEntry { + + int mcs; + int ms; + int sec; + int min; + int hour; + int day; + int weekDay; + int month; + int year; + + private @NonFinal transient int hashCode; + private @NonFinal transient String asString; + + @Builder + private DateTimeEntry( + final int mcs, + final int ms, + final int sec, + final int min, + final int hour, + final int day, + final int weekDay, + final int month, + final int year) { + + this.mcs = mcs; + this.ms = ms; + this.sec = sec; + this.min = min; + this.hour = hour; + this.day = day; + this.weekDay = weekDay; + this.month = month; + this.year = year; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof DateTimeEntry) ) { + return false; + } else { + final DateTimeEntry that = (DateTimeEntry) o; + return mcs == that.mcs && + ms == that.ms && + sec == that.sec && + min == that.min && + hour == that.hour && + day == that.day && + weekDay == that.weekDay && + month == that.month && + year == that.year; + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(super.hashCode(), mcs, ms, sec, min, hour, day, weekDay, month, year); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("mcs", mcs) + .add("ms", ms) + .add("sec", sec) + .add("min", min) + .add("hour", hour) + .add("day", day) + .add("weekDay", weekDay) + .add("month", month) + .add("year", year) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index a83bf48..48f485f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -26,6 +26,9 @@ * терминала QUIK. *
* Связь с quik-lua-rpc происходит по протоколу TCP с помощью ZeroMQ. + *
+ * Экземпляры класса не потокобезопасны. + * * @see quik-lua-rpc * @see ZeroMQ - Distributed Messaging */ diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 3e257ce..4e20ece 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.events.api.*; +import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; @@ -19,6 +20,9 @@ * Обработчик очереди событий API QLua терминала QUIK, полученных из удалённого RPC-сервиса quik-lua-rpc. *
* Связь с quik-lua-rpc происходит по протоколу TCP с помощью ZeroMQ. + *
+ * Экземпляры класса не потокобезопасны. + * * @see quik-lua-rpc * @see ZeroMQ - Distributed Messaging */ @@ -80,7 +84,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onFirm( serdeModule.deserialize(Firm.class, eventData) ); break; case ON_ALL_TRADE: - eventHandler.onAllTrade( QluaStructures.AllTrade.parseFrom(event.getData()) ); + eventHandler.onAllTrade( serdeModule.deserialize(AllTrade.class, eventData) ); break; case ON_TRADE: eventHandler.onTrade( QluaStructures.Trade.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java index 803fc6e..292c135 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeException.java @@ -2,5 +2,15 @@ public class SerdeException extends RuntimeException { - // TODO + public SerdeException(final String message) { + super(message); + } + + public SerdeException(final Throwable cause) { + super(cause); + } + + public SerdeException(final String message, final Throwable cause) { + super(message, cause); + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java deleted file mode 100644 index e6a7b0e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonMoneyLimitDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json; - -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.Setter; -import lombok.Value; - -@Value -public class JsonMoneyLimitDeserializer implements Deserializer { - - @Getter(AccessLevel.NONE) - @Setter(AccessLevel.NONE) - ObjectMapper objectMapper; - - @Override - public MoneyLimit deserialize(final byte[] data) { - - try { - return objectMapper.readValue(data, MoneyLimit.class); - } catch (final Exception ex) { - throw new SerdeException(); //TODO - } - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java index 068caf9..35d52e0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java @@ -16,7 +16,7 @@ * @see quik-lua-rpc * @see JSON */ -public enum JsonQluaEventTypeSerde implements Serde { +enum JsonQluaEventTypeSerde implements Serde { INSTANCE; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index 10de8d6..2df7975 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -28,7 +28,9 @@ public byte[] serialize(final T t) { if (t instanceof QluaEvent.EventType) { return JsonQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); } else { - throw new SerdeException(); // TODO + throw new SerdeException( + String.format("Неподдерживаемый класс для сериализации: %s.", t.getClass().getName()) + ); } } @@ -47,8 +49,10 @@ public T deserialize(final Class clazz, byte[] data) { return objectMapper.readValue(data, clazz); } } catch (final Exception ex) { - ex.printStackTrace(); - throw new SerdeException(); // TODO + throw new SerdeException( + String.format("Ошибка десериализации экземпляра %s из JSON-представления.", clazz.getName()), + ex + ); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java new file mode 100644 index 0000000..3a35d7d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +public final class AllTradeJsonDeserializer extends JsonDeserializer { + + @Override + public AllTrade deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) + throws IOException { + + final ObjectCodec objectCodec = jsonParser.getCodec(); + final JsonNode node = objectCodec.readTree(jsonParser); + + return AllTrade + .builder() + .tradeNum( node.get("trade_num").asLong() ) + .flags( node.get("flags").asInt() ) + .price( node.get("price").asText() ) + .qty( node.get("qty").asInt() ) + .value( asText(node, "value") ) + .accruedInt( asText(node, "accruedint") ) + .yield( asText(node, "yield") ) + .settleCode( asText(node, "settlecode") ) + .repoRate( asText(node, "reporate") ) + .repoValue( asText(node, "repovalue") ) + .repo2Value( asText(node, "repo2value") ) + .repoTerm( asText(node, "repoterm") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .dateTime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .period( node.get("period").asInt() ) + .openInterest( asText(node, "open_interest") ) + .exchangeCode( asText(node, "exchange_code") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java new file mode 100644 index 0000000..61cfc72 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +public final class DateTimeEntryJsonDeserializer extends JsonDeserializer { + + @Override + public DateTimeEntry deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) + throws IOException { + + final JsonNode node = jsonParser.getCodec().readTree(jsonParser); + + return DateTimeEntry + .builder() + .mcs( node.get("mcs").asInt() ) + .ms( node.get("ms").asInt() ) + .sec( node.get("sec").asInt() ) + .min( node.get("min").asInt() ) + .hour( node.get("hour").asInt() ) + .day( node.get("day").asInt() ) + .weekDay( node.get("week_day").asInt() ) + .month( node.get("month").asInt() ) + .year( node.get("year").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java index 45767cd..b440ecd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java @@ -8,7 +8,9 @@ import java.io.IOException; -public class FirmJsonDeserializer extends JsonDeserializer { +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +public final class FirmJsonDeserializer extends JsonDeserializer { @Override public Firm deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) @@ -18,9 +20,9 @@ public Firm deserialize(final JsonParser jsonParser, final DeserializationContex return Firm .builder() .firmId( node.get("firmid").asText() ) - .firmName( node.get("firm_name").asText() ) + .firmName( asText(node, "firm_name") ) .status( node.get("status").asInt() ) - .exchange( node.get("exchange").asText() ) + .exchange( asText(node, "exchange") ) .build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java index 10580fa..8e79fd4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java @@ -8,7 +8,7 @@ import java.io.IOException; -public class MoneyLimitJsonDeserializer extends JsonDeserializer { +public final class MoneyLimitJsonDeserializer extends JsonDeserializer { @Override public MoneyLimit deserialize( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 6c5aa43..ba1261a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -1,16 +1,20 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; +import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; import com.fasterxml.jackson.databind.module.SimpleDeserializers; -public class QluaJsonJacksonDeserializers extends SimpleDeserializers { +final class QluaJsonJacksonDeserializers extends SimpleDeserializers { public QluaJsonJacksonDeserializers() { super(); super.addDeserializer(Firm.class, new FirmJsonDeserializer()); + super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); + super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java new file mode 100644 index 0000000..b91deaa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java @@ -0,0 +1,16 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.fasterxml.jackson.databind.JsonNode; + +final class QluaJsonJacksonUtils { + + private QluaJsonJacksonUtils() { + throw new AssertionError("This should never be invoked."); + } + + static String asText(final JsonNode node, final String fieldName) { + + final JsonNode value = node.get(fieldName); + return value == null ? "" : value.asText(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java index 8210d64..6345bca 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.module.SimpleModule; -public class QluaJsonModule extends SimpleModule { +public final class QluaJsonModule extends SimpleModule { @Override public void setupModule(SetupContext context) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index 4d17c2d..003efeb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -22,7 +22,10 @@ public Firm deserialize(final byte[] data) { .exchange(firm.getExchange()) .build(); } catch (final Exception ex) { - throw new SerdeException(); // TODO + throw new SerdeException( + String.format("Ошибка при десериализации экземпляра %s из protobuf-представления.", Firm.class.getName()), + ex + ); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index 1bb9a04..ce12ab0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -5,7 +5,7 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeException; import qlua.structs.QluaStructures; -public enum ProtobufMoneyLimitDeserializer implements Deserializer { +enum ProtobufMoneyLimitDeserializer implements Deserializer { INSTANCE; @@ -31,7 +31,10 @@ public MoneyLimit deserialize(final byte[] data) { .limitKind( moneyLimit.getLimitKind() ) .build(); } catch (final Exception ex) { - throw new SerdeException(); // TODO + throw new SerdeException( + String.format("Ошибка при десериализации экземпляра %s из protobuf-представления.", MoneyLimit.class.getName()), + ex + ); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 528a2db..d04de43 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -33,12 +33,12 @@ private static void addDeserializer(Class clazz, Deserializer deserial @Override public byte[] serialize(final T t) { - requireNonNull(t, "The argument must not be null."); + requireNonNull(t, "Аргумент не должен быть null."); if (t instanceof QluaEvent.EventType) { return ProtobufQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); } else { - throw new SerdeException(); // TODO + throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс аргумента.") ); } } @@ -50,7 +50,7 @@ public T deserialize(final Class clazz, final byte[] data) { final Deserializer deserializer = (Deserializer) CLASS_TO_DESERIALIZER_MAP.get(clazz); if (deserializer == null) { - throw new SerdeException(); // TODO + throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс для десериализации.") ); } else { try { if (QluaEvent.EventType.class == clazz) { @@ -63,8 +63,13 @@ public T deserialize(final Class clazz, final byte[] data) { } else { return deserializer.deserialize(data); } + } catch (final SerdeException ex) { + throw ex; } catch (final RuntimeException ex) { - throw new SerdeException(); // TODO + throw new SerdeException( + String.format("Ошибка при десериализации экземпляра класса %s.", clazz.getName()), + ex + ); } } } From 76e4ba7454cb556a06cd5a90fa8e89fd981f459c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 13 Jul 2018 23:19:12 +0300 Subject: [PATCH 011/549] WIP: adding json-rpc support. --- .../rpc/events/api/LoggingEventHandler.java | 14 +- .../lua/rpc/events/api/QluaEventHandler.java | 13 +- .../rpc/events/api/structures/AllTrade.java | 34 +- .../api/structures/ConnectedEventInfo.java | 9 + .../lua/rpc/events/api/structures/Firm.java | 2 +- .../rpc/events/api/structures/MoneyLimit.java | 20 +- .../events/api/structures/StopEventInfo.java | 9 + .../lua/rpc/events/api/structures/Trade.java | 343 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 10 +- .../jackson/AllTradeJsonDeserializer.java | 2 +- .../ConnectedEventInfoJsonDeserializer.java | 19 + .../jackson/QluaJsonJacksonDeserializers.java | 8 +- .../StopEventInfoJsonDeserializer.java | 19 + .../json/jackson/TradeJsonDeserializer.java | 75 ++++ src/main/proto/qlua/rpc/qlua_structures.proto | 4 +- 15 files changed, 525 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 730339e..3fbdbbd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,8 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; -import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.events.api.structures.*; import org.slf4j.*; import qlua.structs.QluaStructures; @@ -24,13 +22,13 @@ public void onClose() { } @Override - public void onStop() { - LOGGER.info("onStop"); + public void onStop(final StopEventInfo stopEventInfo) { + LOGGER.info("onStop:\n{}", stopEventInfo); } @Override - public void onConnected() { - LOGGER.info("onConnected"); + public void onConnected(final ConnectedEventInfo connectedEventInfo) { + LOGGER.info("onConnected:\n{}", connectedEventInfo); } @Override @@ -54,7 +52,7 @@ public void onAllTrade(AllTrade allTrade) { } @Override - public void onTrade(QluaStructures.Trade trade) { + public void onTrade(Trade trade) { LOGGER.info("onTrade:\n{}", trade); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index c1a01ad..eff0fdf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,8 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; -import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.events.api.structures.*; import qlua.structs.QluaStructures; /** @@ -21,8 +19,10 @@ default void onClose() {} * Функция обратного вызова для события терминала OnStop. *
* Событие происходит при остановке скрипта из диалога управления и при закрытии терминала QUIK. + * + * @param stopEventInfo аргументы функции обратного вызова OnStop */ - default void onStop() {} + default void onStop(StopEventInfo stopEventInfo) {} /** * Функция обратного вызова для события терминала OnConnected. @@ -31,9 +31,8 @@ default void onStop() {} *
* Если в течение торгового дня терминал получает новый класс, то функция вызывается еще раз, при этом параметр * вызова flag принимает значение «false». - * //TODO: add the 'flag' parameter */ - default void onConnected() {} + default void onConnected(ConnectedEventInfo connectedEventInfo) {} /** * Функция обратного вызова для события терминала OnDisconnected. @@ -74,7 +73,7 @@ default void onAllTrade(final AllTrade allTrade) {} * * @param trade сделка */ - default void onTrade(final QluaStructures.Trade trade) {} + default void onTrade(final Trade trade) {} /** * Функция обратного вызова для события терминала OnOrder. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java index 670d7a6..1facd83 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java @@ -24,7 +24,7 @@ public class AllTrade { String repoTerm; String secCode; String classCode; - DateTimeEntry dateTime; + DateTimeEntry datetime; int period; String openInterest; String exchangeCode; @@ -47,7 +47,7 @@ private AllTrade(final long tradeNum, final String repoTerm, final String secCode, final String classCode, - final DateTimeEntry dateTime, + final DateTimeEntry datetime, final int period, final String openInterest, final String exchangeCode) { @@ -66,7 +66,7 @@ private AllTrade(final long tradeNum, this.repoTerm = repoTerm; this.secCode = secCode; this.classCode = classCode; - this.dateTime = dateTime; + this.datetime = datetime; this.period = period; this.openInterest = openInterest; this.exchangeCode = exchangeCode; @@ -96,7 +96,7 @@ public boolean equals(final Object o) { Objects.equals(repoTerm, allTrade.repoTerm) && Objects.equals(secCode, allTrade.secCode) && Objects.equals(classCode, allTrade.classCode) && - Objects.equals(dateTime, allTrade.dateTime) && + Objects.equals(datetime, allTrade.datetime) && Objects.equals(openInterest, allTrade.openInterest) && Objects.equals(exchangeCode, allTrade.exchangeCode); } @@ -122,7 +122,7 @@ public int hashCode() { repoTerm, secCode, classCode, - dateTime, + datetime, period, openInterest, exchangeCode @@ -137,24 +137,24 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("tradeNum", tradeNum) + .add("trade_num", tradeNum) .add("flags", flags) .add("price", price) .add("qty", qty) .add("value", value) - .add("accruedInt", accruedInt) + .add("accruedint", accruedInt) .add("yield", yield) - .add("settleCode", settleCode) - .add("repoRate", repoRate) - .add("repoValue", repoValue) - .add("repo2Value", repo2Value) - .add("repoTerm", repoTerm) - .add("secCode", secCode) - .add("classCode", classCode) - .add("dateTime", dateTime) + .add("settlecode", settleCode) + .add("reporate", repoRate) + .add("repovalue", repoValue) + .add("repo2value", repo2Value) + .add("repoterm", repoTerm) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("datetime", datetime) .add("period", period) - .add("openInterest", openInterest) - .add("exchangeCode", exchangeCode) + .add("open_interest", openInterest) + .add("exchange_code", exchangeCode) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java new file mode 100644 index 0000000..c607f3c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java @@ -0,0 +1,9 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import lombok.Value; + +@Value +public class ConnectedEventInfo { + + int flag; +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java index 2ea0e48..7510e93 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -58,7 +58,7 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmId", firmId) + .add("firmid", firmId) .add("firm_name", firmName) .add("status", status) .add("exchange", exchange) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java index 0efd6cc..4ea964f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java @@ -112,19 +112,19 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("currCode", currCode) + .add("currcode", currCode) .add("tag", tag) - .add("firmId", firmId) - .add("clientCode", clientCode) - .add("openBal", openBal) - .add("openLimit", openLimit) - .add("currentBal", currentBal) - .add("currentLimit", currentLimit) + .add("firmid", firmId) + .add("client_code", clientCode) + .add("openbal", openBal) + .add("openlimit", openLimit) + .add("currentbal", currentBal) + .add("currentlimit", currentLimit) .add("locked", locked) - .add("lockedValueCoef", lockedValueCoef) - .add("lockedMarginValue", lockedMarginValue) + .add("locked_value_coef", lockedValueCoef) + .add("locked_margin_value", lockedMarginValue) .add("leverage", leverage) - .add("limitKind", limitKind) + .add("limit_kind", limitKind) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java new file mode 100644 index 0000000..7985316 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java @@ -0,0 +1,9 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import lombok.Value; + +@Value +public class StopEventInfo { + + int signal; +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java new file mode 100644 index 0000000..aa99b4e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java @@ -0,0 +1,343 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class Trade { + + long tradeNum; + long orderNum; + String brokerRef; + String userId; + String firmId; + String canceledUid; + String account; + String price; + int qty; + String value; + String accruedInt; + String yield; + String settleCode; + String cpFirmId; + int flags; + String price2; + String repoRate; + String clientCode; + String accrued2; + String repoTerm; + String repoValue; + String repo2Value; + String startDiscount; + String lowerDiscount; + String upperDiscount; + String blockSecurities; + String clearingComission; + String exchangeComission; + String techCenterComission; + String settleDate; + String settleCurrency; + String tradeCurrency; + String exchangeCode; + String stationId; + String secCode; + String classCode; + DateTimeEntry datetime; + String bankAccId; + String brokerComission; + String linkedTrade; + int period; + String transId; + int kind; + String clearingBankAccId; + DateTimeEntry canceledDatetime; + String clearingFirmId; + String systemRef; + String uid; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + public Trade( + final long tradeNum, + final long orderNum, + final String brokerRef, + final String userId, + final String firmId, + final String canceledUid, + final String account, + final String price, + final int qty, + final String value, + final String accruedInt, + final String yield, + final String settleCode, + final String cpFirmId, + final int flags, + final String price2, + final String repoRate, + final String clientCode, + final String accrued2, + final String repoTerm, + final String repoValue, + final String repo2Value, + final String startDiscount, + final String lowerDiscount, + final String upperDiscount, + final String blockSecurities, + final String clearingComission, + final String exchangeComission, + final String techCenterComission, + final String settleDate, + final String settleCurrency, + final String tradeCurrency, + final String exchangeCode, + final String stationId, + final String secCode, + final String classCode, + final DateTimeEntry datetime, + final String bankAccId, + final String brokerComission, + final String linkedTrade, + final int period, + final String transId, + final int kind, + final String clearingBankAccId, + final DateTimeEntry canceledDatetime, + final String clearingFirmId, + final String systemRef, + final String uid) { + + this.tradeNum = tradeNum; + this.orderNum = orderNum; + this.brokerRef = brokerRef; + this.userId = userId; + this.firmId = firmId; + this.canceledUid = canceledUid; + this.account = account; + this.price = price; + this.qty = qty; + this.value = value; + this.accruedInt = accruedInt; + this.yield = yield; + this.settleCode = settleCode; + this.cpFirmId = cpFirmId; + this.flags = flags; + this.price2 = price2; + this.repoRate = repoRate; + this.clientCode = clientCode; + this.accrued2 = accrued2; + this.repoTerm = repoTerm; + this.repoValue = repoValue; + this.repo2Value = repo2Value; + this.startDiscount = startDiscount; + this.lowerDiscount = lowerDiscount; + this.upperDiscount = upperDiscount; + this.blockSecurities = blockSecurities; + this.clearingComission = clearingComission; + this.exchangeComission = exchangeComission; + this.techCenterComission = techCenterComission; + this.settleDate = settleDate; + this.settleCurrency = settleCurrency; + this.tradeCurrency = tradeCurrency; + this.exchangeCode = exchangeCode; + this.stationId = stationId; + this.secCode = secCode; + this.classCode = classCode; + this.datetime = datetime; + this.bankAccId = bankAccId; + this.brokerComission = brokerComission; + this.linkedTrade = linkedTrade; + this.period = period; + this.transId = transId; + this.kind = kind; + this.clearingBankAccId = clearingBankAccId; + this.canceledDatetime = canceledDatetime; + this.clearingFirmId = clearingFirmId; + this.systemRef = systemRef; + this.uid = uid; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Trade) ) { + return false; + } else { + final Trade trade = (Trade) o; + return tradeNum == trade.tradeNum && + orderNum == trade.orderNum && + qty == trade.qty && + flags == trade.flags && + period == trade.period && + kind == trade.kind && + Objects.equals(brokerRef, trade.brokerRef) && + Objects.equals(userId, trade.userId) && + Objects.equals(firmId, trade.firmId) && + Objects.equals(canceledUid, trade.canceledUid) && + Objects.equals(account, trade.account) && + Objects.equals(price, trade.price) && + Objects.equals(value, trade.value) && + Objects.equals(accruedInt, trade.accruedInt) && + Objects.equals(yield, trade.yield) && + Objects.equals(settleCode, trade.settleCode) && + Objects.equals(cpFirmId, trade.cpFirmId) && + Objects.equals(price2, trade.price2) && + Objects.equals(repoRate, trade.repoRate) && + Objects.equals(clientCode, trade.clientCode) && + Objects.equals(accrued2, trade.accrued2) && + Objects.equals(repoTerm, trade.repoTerm) && + Objects.equals(repoValue, trade.repoValue) && + Objects.equals(repo2Value, trade.repo2Value) && + Objects.equals(startDiscount, trade.startDiscount) && + Objects.equals(lowerDiscount, trade.lowerDiscount) && + Objects.equals(upperDiscount, trade.upperDiscount) && + Objects.equals(blockSecurities, trade.blockSecurities) && + Objects.equals(clearingComission, trade.clearingComission) && + Objects.equals(exchangeComission, trade.exchangeComission) && + Objects.equals(techCenterComission, trade.techCenterComission) && + Objects.equals(settleDate, trade.settleDate) && + Objects.equals(settleCurrency, trade.settleCurrency) && + Objects.equals(tradeCurrency, trade.tradeCurrency) && + Objects.equals(exchangeCode, trade.exchangeCode) && + Objects.equals(stationId, trade.stationId) && + Objects.equals(secCode, trade.secCode) && + Objects.equals(classCode, trade.classCode) && + Objects.equals(datetime, trade.datetime) && + Objects.equals(bankAccId, trade.bankAccId) && + Objects.equals(brokerComission, trade.brokerComission) && + Objects.equals(linkedTrade, trade.linkedTrade) && + Objects.equals(transId, trade.transId) && + Objects.equals(clearingBankAccId, trade.clearingBankAccId) && + Objects.equals(canceledDatetime, trade.canceledDatetime) && + Objects.equals(clearingFirmId, trade.clearingFirmId) && + Objects.equals(systemRef, trade.systemRef) && + Objects.equals(uid, trade.uid); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + tradeNum, + orderNum, + brokerRef, + userId, + firmId, + canceledUid, + account, + price, + qty, + value, + accruedInt, + yield, + settleCode, + cpFirmId, + flags, + price2, + repoRate, + clientCode, + accrued2, + repoTerm, + repoValue, + repo2Value, + startDiscount, + lowerDiscount, + upperDiscount, + blockSecurities, + clearingComission, + exchangeComission, + techCenterComission, + settleDate, + settleCurrency, + tradeCurrency, + exchangeCode, + stationId, + secCode, + classCode, + datetime, + bankAccId, + brokerComission, + linkedTrade, + period, + transId, + kind, + clearingBankAccId, + canceledDatetime, + clearingFirmId, + systemRef, + uid + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("trade_num", tradeNum) + .add("order_num", orderNum) + .add("brokerref", brokerRef) + .add("userid", userId) + .add("firmid", firmId) + .add("canceled_uid", canceledUid) + .add("account", account) + .add("price", price) + .add("qty", qty) + .add("value", value) + .add("accruedint", accruedInt) + .add("yield", yield) + .add("settlecode", settleCode) + .add("cpfirmid", cpFirmId) + .add("flags", flags) + .add("price2", price2) + .add("reporate", repoRate) + .add("client_code", clientCode) + .add("accrued2", accrued2) + .add("repoterm", repoTerm) + .add("repovalue", repoValue) + .add("repo2value", repo2Value) + .add("start_discount", startDiscount) + .add("lower_discount", lowerDiscount) + .add("upper_discount", upperDiscount) + .add("block_securities", blockSecurities) + .add("clearing_comission", clearingComission) + .add("exchange_comission", exchangeComission) + .add("tech_center_comission", techCenterComission) + .add("settle_date", settleDate) + .add("settle_currency", settleCurrency) + .add("trade_currency", tradeCurrency) + .add("exchange_code", exchangeCode) + .add("station_id", stationId) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("datetime", datetime) + .add("bank_acc_id", bankAccId) + .add("broker_comission", brokerComission) + .add("linked_trade", linkedTrade) + .add("period", period) + .add("trans_id", transId) + .add("kind", kind) + .add("clearing_bank_accid", clearingBankAccId) + .add("canceled_datetime", canceledDatetime) + .add("clearing_firmid", clearingFirmId) + .add("system_ref", systemRef) + .add("uid", uid) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 4e20ece..b43025a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,9 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.events.api.*; -import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.*; @@ -69,13 +67,13 @@ public void process() throws QluaEventProcessingException { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { case ON_STOP: - eventHandler.onStop(); + eventHandler.onStop( serdeModule.deserialize(StopEventInfo.class, eventData) ); break; case ON_CLOSE: eventHandler.onClose(); break; case ON_CONNECTED: - eventHandler.onConnected(); + eventHandler.onConnected( serdeModule.deserialize(ConnectedEventInfo.class, eventData) ); break; case ON_DISCONNECTED: eventHandler.onDisconnected(); @@ -87,7 +85,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onAllTrade( serdeModule.deserialize(AllTrade.class, eventData) ); break; case ON_TRADE: - eventHandler.onTrade( QluaStructures.Trade.parseFrom(event.getData()) ); + eventHandler.onTrade( serdeModule.deserialize(Trade.class, eventData) ); break; case ON_ORDER: eventHandler.onOrder( QluaStructures.Order.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java index 3a35d7d..008f5dc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java @@ -37,7 +37,7 @@ public AllTrade deserialize(final JsonParser jsonParser, final DeserializationCo .repoTerm( asText(node, "repoterm") ) .secCode( asText(node, "sec_code") ) .classCode( asText(node, "class_code") ) - .dateTime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) .period( node.get("period").asInt() ) .openInterest( asText(node, "open_interest") ) .exchangeCode( asText(node, "exchange_code") ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java new file mode 100644 index 0000000..7a1876d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.ConnectedEventInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +public final class ConnectedEventInfoJsonDeserializer extends JsonDeserializer { + + @Override + public ConnectedEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new ConnectedEventInfo( node.get("flag").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index ba1261a..4381e47 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -1,9 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.fasterxml.jackson.databind.module.SimpleDeserializers; final class QluaJsonJacksonDeserializers extends SimpleDeserializers { @@ -12,8 +9,11 @@ public QluaJsonJacksonDeserializers() { super(); + super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); + super.addDeserializer(ConnectedEventInfo.class, new ConnectedEventInfoJsonDeserializer()); super.addDeserializer(Firm.class, new FirmJsonDeserializer()); super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); + super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java new file mode 100644 index 0000000..470707b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.StopEventInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +public final class StopEventInfoJsonDeserializer extends JsonDeserializer { + + @Override + public StopEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new StopEventInfo( node.get("signal").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java new file mode 100644 index 0000000..e46530b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java @@ -0,0 +1,75 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.events.api.structures.Trade; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +public final class TradeJsonDeserializer extends JsonDeserializer { + + @Override + public Trade deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return Trade + .builder() + .tradeNum( node.get("trade_num").asLong() ) + .orderNum( node.get("order_num").asLong() ) + .brokerRef( asText(node, "brokerref") ) + .userId( asText(node, "userid") ) + .firmId( asText(node, "firmid") ) + .canceledUid( asText(node, "canceled_uid") ) + .account( asText(node, "account") ) + .price( node.get("price").asText() ) + .qty( node.get("qty").asInt() ) + .value( node.get("value").asText() ) + .accruedInt( asText(node, "accruedint") ) + .yield( asText(node, "yield") ) + .settleCode( asText(node, "settlecode") ) + .cpFirmId( asText(node, "cpfirmid") ) + .flags( node.get("flags").asInt() ) + .price2( asText(node, "price2") ) + .repoRate( asText(node, "reporate") ) + .clientCode( asText(node, "client_code") ) + .accrued2( asText(node, "accrued2") ) + .repoTerm( asText(node, "repoterm") ) + .repoValue( asText(node, "repovalue") ) + .repo2Value( asText(node, "repo2value") ) + .startDiscount( asText(node, "start_discount") ) + .lowerDiscount( asText(node, "lower_discount") ) + .upperDiscount( asText(node, "upper_discount") ) + .blockSecurities( asText(node, "block_securities") ) + .clearingComission( asText(node, "clearing_comission") ) + .exchangeComission( asText(node, "exchange_comission") ) + .techCenterComission( asText(node, "tech_center_comission") ) + .settleDate( asText(node, "settle_date") ) + .settleCurrency( asText(node, "settle_currency") ) + .tradeCurrency( asText(node, "trade_currency") ) + .exchangeCode( asText(node, "exchange_code") ) + .stationId( asText(node, "station_id") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .bankAccId( asText(node, "bank_acc_id") ) + .brokerComission( asText(node, "broker_comission") ) + .linkedTrade( asText(node, "linked_trade") ) + .period( node.get("period").asInt() ) + .transId( asText(node, "trans_id") ) + .kind( node.get("kind").asInt() ) + .clearingBankAccId( asText(node, "clearing_bank_accid") ) + .canceledDatetime(node.hasNonNull("canceled_datetime") ? node.get("canceled_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) : null) + .clearingFirmId( asText(node, "clearing_firmid") ) + .systemRef( asText(node, "system_ref") ) + .uid( asText(node, "uid") ) + .build(); + } +} diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index 36459dd..cec194e 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -552,7 +552,7 @@ message ConnectedEventInfo { bool flag = 1; } -// Информация из функций обратного вызова OnClose и OnStop +// Информация из функции обратного вызова OnStop message StopEventInfo { - int32 flag = 1; + int32 signal = 1; } From d2380147ed50511618f12a3178785d5cf25b23b4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 16:43:26 +0300 Subject: [PATCH 012/549] Started to treat empty string that came from the wire as null. --- .../json/jackson/QluaJsonJacksonUtils.java | 2 +- .../protobuf/ProtobufFirmDeserializer.java | 6 +++-- .../ProtobufMoneyLimitDeserializer.java | 26 ++++++++++--------- .../serde/protobuf/ProtobufSerdeUtils.java | 6 +++-- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java index b91deaa..ba1d93d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java @@ -11,6 +11,6 @@ private QluaJsonJacksonUtils() { static String asText(final JsonNode node, final String fieldName) { final JsonNode value = node.get(fieldName); - return value == null ? "" : value.asText(); + return value == null ? null : value.asText(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index 003efeb..c2d95a5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -5,6 +5,8 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeException; import qlua.structs.QluaStructures; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; + enum ProtobufFirmDeserializer implements Deserializer { INSTANCE; @@ -17,9 +19,9 @@ public Firm deserialize(final byte[] data) { return Firm .builder() .firmId(firm.getFirmid()) - .firmName(firm.getFirmName()) + .firmName( nullIfNullOrEmpty(firm.getFirmName()) ) .status(firm.getStatus()) - .exchange(firm.getExchange()) + .exchange( nullIfNullOrEmpty(firm.getExchange()) ) .build(); } catch (final Exception ex) { throw new SerdeException( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index ce12ab0..007864b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -5,6 +5,8 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeException; import qlua.structs.QluaStructures; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; + enum ProtobufMoneyLimitDeserializer implements Deserializer { INSTANCE; @@ -16,18 +18,18 @@ public MoneyLimit deserialize(final byte[] data) { final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); return MoneyLimit .builder() - .currCode( moneyLimit.getCurrcode() ) - .tag( moneyLimit.getTag() ) - .firmId( moneyLimit.getFirmid() ) - .clientCode( moneyLimit.getClientCode() ) - .openBal( moneyLimit.getOpenbal() ) - .openLimit( moneyLimit.getOpenlimit() ) - .currentBal( moneyLimit.getCurrentbal() ) - .currentLimit( moneyLimit.getCurrentlimit() ) - .locked( moneyLimit.getLocked() ) - .lockedValueCoef( moneyLimit.getLockedValueCoef() ) - .lockedMarginValue( moneyLimit.getLockedMarginValue() ) - .leverage( moneyLimit.getLeverage() ) + .currCode( nullIfNullOrEmpty(moneyLimit.getCurrcode()) ) + .tag( nullIfNullOrEmpty(moneyLimit.getTag()) ) + .firmId( nullIfNullOrEmpty(moneyLimit.getFirmid()) ) + .clientCode( nullIfNullOrEmpty(moneyLimit.getClientCode()) ) + .openBal( nullIfNullOrEmpty(moneyLimit.getOpenbal()) ) + .openLimit( nullIfNullOrEmpty(moneyLimit.getOpenlimit()) ) + .currentBal( nullIfNullOrEmpty(moneyLimit.getCurrentbal()) ) + .currentLimit( nullIfNullOrEmpty(moneyLimit.getCurrentlimit()) ) + .locked( nullIfNullOrEmpty(moneyLimit.getLocked()) ) + .lockedValueCoef( nullIfNullOrEmpty(moneyLimit.getLockedValueCoef()) ) + .lockedMarginValue( nullIfNullOrEmpty(moneyLimit.getLockedMarginValue()) ) + .leverage( nullIfNullOrEmpty(moneyLimit.getLeverage()) ) .limitKind( moneyLimit.getLimitKind() ) .build(); } catch (final Exception ex) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index d174084..51a57e8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.google.common.base.Strings; + import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -11,7 +13,7 @@ private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); } - static String asNonNullString(final String str) { - return (str == null) ? "" : str; + static String nullIfNullOrEmpty(final String str) { + return Strings.isNullOrEmpty(str) ? null : str; } } From 61938d4788fbcead23c078300aa8c551b6b6eeac Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 16:44:53 +0300 Subject: [PATCH 013/549] Added the Order domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../lua/rpc/events/api/structures/Order.java | 307 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../json/jackson/OrderJsonDeserializer.java | 69 ++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 380 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 3fbdbbd..5f85d91 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -57,7 +57,7 @@ public void onTrade(Trade trade) { } @Override - public void onOrder(QluaStructures.Order order) { + public void onOrder(Order order) { LOGGER.info("onOrder:\n{}", order); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index eff0fdf..4ba8b00 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -82,7 +82,7 @@ default void onTrade(final Trade trade) {} * * @param order заявка */ - default void onOrder(final QluaStructures.Order order) {} + default void onOrder(final Order order) {} /** * Функция обратного вызова для события терминала OnAccountBalance. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java new file mode 100644 index 0000000..6151e38 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java @@ -0,0 +1,307 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class Order { + + long orderNum; + int flags; + String brokerRef; + String userId; + String firmId; + String account; + String price; + int qty; + String balance; + String value; + String accruedInt; + String yield; + String transId; + String clientCode; + String price2; + String settleCode; + String uid; + String canceledUid; + String exchangeCode; + String activationTime; + String linkedOrder; + String expiry; + String secCode; + String classCode; + DateTimeEntry datetime; + DateTimeEntry withdrawDatetime; + String bankAccId; + int valueEntryType; + String repoTerm; + String repoValue; + String repo2Value; + String repoValueBalance; + String startDiscount; + String rejectReason; + String extOrderFlags; + int minQty; + int execType; + int sideQualifier; + int acntType; + int capacity; + int passiveOnlyOrder; + int visible; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private Order( + final long orderNum, + final int flags, + final String brokerRef, + final String userId, + final String firmId, + final String account, + final String price, + final int qty, + final String balance, + final String value, + final String accruedInt, + final String yield, + final String transId, + final String clientCode, + final String price2, + final String settleCode, + final String uid, + final String canceledUid, + final String exchangeCode, + final String activationTime, + final String linkedOrder, + final String expiry, + final String secCode, + final String classCode, + final DateTimeEntry datetime, + final DateTimeEntry withdrawDatetime, + final String bankAccId, + final int valueEntryType, + final String repoTerm, + final String repoValue, + final String repo2Value, + final String repoValueBalance, + final String startDiscount, + final String rejectReason, + final String extOrderFlags, + final int minQty, + final int execType, + final int sideQualifier, + final int acntType, + final int capacity, + final int passiveOnlyOrder, + final int visible) { + + this.orderNum = orderNum; + this.flags = flags; + this.brokerRef = brokerRef; + this.userId = userId; + this.firmId = firmId; + this.account = account; + this.price = price; + this.qty = qty; + this.balance = balance; + this.value = value; + this.accruedInt = accruedInt; + this.yield = yield; + this.transId = transId; + this.clientCode = clientCode; + this.price2 = price2; + this.settleCode = settleCode; + this.uid = uid; + this.canceledUid = canceledUid; + this.exchangeCode = exchangeCode; + this.activationTime = activationTime; + this.linkedOrder = linkedOrder; + this.expiry = expiry; + this.secCode = secCode; + this.classCode = classCode; + this.datetime = datetime; + this.withdrawDatetime = withdrawDatetime; + this.bankAccId = bankAccId; + this.valueEntryType = valueEntryType; + this.repoTerm = repoTerm; + this.repoValue = repoValue; + this.repo2Value = repo2Value; + this.repoValueBalance = repoValueBalance; + this.startDiscount = startDiscount; + this.rejectReason = rejectReason; + this.extOrderFlags = extOrderFlags; + this.minQty = minQty; + this.execType = execType; + this.sideQualifier = sideQualifier; + this.acntType = acntType; + this.capacity = capacity; + this.passiveOnlyOrder = passiveOnlyOrder; + this.visible = visible; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Order) ) { + return false; + } else { + final Order order = (Order) o; + return orderNum == order.orderNum && + flags == order.flags && + qty == order.qty && + valueEntryType == order.valueEntryType && + minQty == order.minQty && + execType == order.execType && + sideQualifier == order.sideQualifier && + acntType == order.acntType && + capacity == order.capacity && + passiveOnlyOrder == order.passiveOnlyOrder && + visible == order.visible && + Objects.equals(brokerRef, order.brokerRef) && + Objects.equals(userId, order.userId) && + Objects.equals(firmId, order.firmId) && + Objects.equals(account, order.account) && + Objects.equals(price, order.price) && + Objects.equals(balance, order.balance) && + Objects.equals(value, order.value) && + Objects.equals(accruedInt, order.accruedInt) && + Objects.equals(yield, order.yield) && + Objects.equals(transId, order.transId) && + Objects.equals(clientCode, order.clientCode) && + Objects.equals(price2, order.price2) && + Objects.equals(settleCode, order.settleCode) && + Objects.equals(uid, order.uid) && + Objects.equals(canceledUid, order.canceledUid) && + Objects.equals(exchangeCode, order.exchangeCode) && + Objects.equals(activationTime, order.activationTime) && + Objects.equals(linkedOrder, order.linkedOrder) && + Objects.equals(expiry, order.expiry) && + Objects.equals(secCode, order.secCode) && + Objects.equals(classCode, order.classCode) && + Objects.equals(datetime, order.datetime) && + Objects.equals(withdrawDatetime, order.withdrawDatetime) && + Objects.equals(bankAccId, order.bankAccId) && + Objects.equals(repoTerm, order.repoTerm) && + Objects.equals(repoValue, order.repoValue) && + Objects.equals(repo2Value, order.repo2Value) && + Objects.equals(repoValueBalance, order.repoValueBalance) && + Objects.equals(startDiscount, order.startDiscount) && + Objects.equals(rejectReason, order.rejectReason) && + Objects.equals(extOrderFlags, order.extOrderFlags); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + orderNum, + flags, + brokerRef, + userId, + firmId, + account, + price, + qty, + balance, + value, + accruedInt, + yield, + transId, + clientCode, + price2, + settleCode, + uid, + canceledUid, + exchangeCode, + activationTime, + linkedOrder, + expiry, + secCode, + classCode, + datetime, + withdrawDatetime, + bankAccId, + valueEntryType, + repoTerm, + repoValue, + repo2Value, + repoValueBalance, + startDiscount, + rejectReason, + extOrderFlags, + minQty, + execType, + sideQualifier, + acntType, + capacity, + passiveOnlyOrder, + visible + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("order_num", orderNum) + .add("flags", flags) + .add("brokerref", brokerRef) + .add("userid", userId) + .add("firmid", firmId) + .add("account", account) + .add("price", price) + .add("qty", qty) + .add("balance", balance) + .add("value", value) + .add("accruedint", accruedInt) + .add("yield", yield) + .add("trans_id", transId) + .add("client_code", clientCode) + .add("price2", price2) + .add("settlecode", settleCode) + .add("uid", uid) + .add("canceled_uid", canceledUid) + .add("exchange_code", exchangeCode) + .add("activation_time", activationTime) + .add("linkedorder", linkedOrder) + .add("expiry", expiry) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("datetime", datetime) + .add("withdraw_datetime", withdrawDatetime) + .add("bank_acc_id", bankAccId) + .add("value_entry_type", valueEntryType) + .add("repoterm", repoTerm) + .add("repovalue", repoValue) + .add("repo2value", repo2Value) + .add("repo_value_balance", repoValueBalance) + .add("start_discount", startDiscount) + .add("reject_reason", rejectReason) + .add("ext_order_flags", extOrderFlags) + .add("min_qty", minQty) + .add("exec_type", execType) + .add("side_qualifier", sideQualifier) + .add("acnt_type", acntType) + .add("capacity", capacity) + .add("passive_only_order", passiveOnlyOrder) + .add("visible", visible) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index b43025a..1f3566d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -88,7 +88,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onTrade( serdeModule.deserialize(Trade.class, eventData) ); break; case ON_ORDER: - eventHandler.onOrder( QluaStructures.Order.parseFrom(event.getData()) ); + eventHandler.onOrder( serdeModule.deserialize(Order.class, eventData) ); break; case ON_ACCOUNT_BALANCE: eventHandler.onAccountBalance( QluaStructures.AccountBalance.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java new file mode 100644 index 0000000..ca508a5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.events.api.structures.Order; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +public final class OrderJsonDeserializer extends JsonDeserializer { + + @Override + public Order deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return Order + .builder() + .orderNum( node.get("order_num").asLong() ) + .flags( node.get("flags").asInt() ) + .brokerRef( asText(node, "brokerref") ) + .userId( asText(node, "userid") ) + .firmId( asText(node, "firmid") ) + .account( asText(node, "account") ) + .price( asText(node, "price") ) + .qty( node.get("qty").asInt() ) + .balance( asText(node, "balance") ) + .value( asText(node, "value") ) + .accruedInt( asText(node, "accruedint") ) + .yield( asText(node, "yield") ) + .transId( asText(node, "trans_id") ) + .clientCode( asText(node, "client_code") ) + .price2( asText(node, "price2") ) + .settleCode( asText(node, "settlecode") ) + .uid( asText(node, "uid") ) + .canceledUid( asText(node, "canceled_uid") ) + .exchangeCode( asText(node, "exchange_code") ) + .activationTime( asText(node, "activation_time") ) + .linkedOrder( asText(node, "linkedorder") ) + .expiry( asText(node, "expiry") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .withdrawDatetime( node.get("withdraw_datetime") == null ? null : node.get("withdraw_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .bankAccId( asText(node, "bank_acc_id") ) + .valueEntryType( node.get("value_entry_type").asInt() ) + .repoTerm( asText(node, "repoterm") ) + .repoValue( asText(node, "repovalue") ) + .repo2Value( asText(node, "repo2value") ) + .repoValueBalance( asText(node, "repo_value_balance") ) + .startDiscount( asText(node, "start_discount") ) + .rejectReason( asText(node, "reject_reason") ) + .extOrderFlags( asText(node, "ext_order_flags") ) + .minQty( node.get("min_qty").asInt() ) + .execType( node.get("exec_type").asInt() ) + .sideQualifier( node.get("side_qualifier").asInt() ) + .acntType( node.get("acnt_type").asInt() ) + .capacity( node.get("capacity").asInt() ) + .passiveOnlyOrder( node.get("passive_only_order").asInt() ) + .visible( node.get("visible").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 4381e47..8067a79 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -14,6 +14,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(Firm.class, new FirmJsonDeserializer()); super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); + super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } From 3e57d018374d1ff442e65e8799e125171601100c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 16:50:15 +0300 Subject: [PATCH 014/549] Added wrappers for yielding the values of nullable strings. --- .../jackson/MoneyLimitJsonDeserializer.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java index 8e79fd4..4919772 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java @@ -8,6 +8,8 @@ import java.io.IOException; +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + public final class MoneyLimitJsonDeserializer extends JsonDeserializer { @Override @@ -18,18 +20,18 @@ public MoneyLimit deserialize( final JsonNode node = jsonParser.getCodec().readTree(jsonParser); return MoneyLimit.builder() - .currCode( node.get("currcode").asText() ) - .tag( node.get("tag").asText() ) - .firmId( node.get("firmid").asText() ) - .clientCode( node.get("client_code").asText() ) - .openBal( node.get("openbal").asText() ) - .openLimit( node.get("openlimit").asText() ) - .currentBal( node.get("currentbal").asText() ) - .currentLimit( node.get("currentlimit").asText() ) - .locked( node.get("locked").asText() ) - .lockedValueCoef( node.get("locked_value_coef").asText() ) - .lockedMarginValue( node.get("locked_margin_value").asText() ) - .leverage( node.get("leverage").asText() ) + .currCode( asText(node, "currcode") ) + .tag( asText(node, "tag") ) + .firmId( asText(node, "firmid") ) + .clientCode( asText(node, "client_code") ) + .openBal( asText(node, "openbal") ) + .openLimit( asText(node, "openlimit") ) + .currentBal( asText(node, "currentbal") ) + .currentLimit( asText(node, "currentlimit") ) + .locked( asText(node, "locked") ) + .lockedValueCoef( asText(node, "locked_value_coef") ) + .lockedMarginValue( asText(node, "locked_margin_value") ) + .leverage( asText(node, "leverage") ) .limitKind( node.get("limit_kind").asInt() ) .build(); } From f308f8e54f9fcd300484cdddbb123f0ccf7e6b08 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 17:06:03 +0300 Subject: [PATCH 015/549] Hide classes in the package. --- .../lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java | 2 +- .../serde/json/jackson/ConnectedEventInfoJsonDeserializer.java | 2 +- .../rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java | 2 +- .../quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java | 2 +- .../lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java | 2 +- .../quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java | 2 +- .../rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java | 2 +- .../quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java index 008f5dc..04b1bcc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java @@ -12,7 +12,7 @@ import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; -public final class AllTradeJsonDeserializer extends JsonDeserializer { +class AllTradeJsonDeserializer extends JsonDeserializer { @Override public AllTrade deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java index 7a1876d..8b835a4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java @@ -8,7 +8,7 @@ import java.io.IOException; -public final class ConnectedEventInfoJsonDeserializer extends JsonDeserializer { +final class ConnectedEventInfoJsonDeserializer extends JsonDeserializer { @Override public ConnectedEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java index 61cfc72..6cb9dd6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java @@ -8,7 +8,7 @@ import java.io.IOException; -public final class DateTimeEntryJsonDeserializer extends JsonDeserializer { +final class DateTimeEntryJsonDeserializer extends JsonDeserializer { @Override public DateTimeEntry deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java index b440ecd..fbf8cd5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java @@ -10,7 +10,7 @@ import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; -public final class FirmJsonDeserializer extends JsonDeserializer { +final class FirmJsonDeserializer extends JsonDeserializer { @Override public Firm deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java index 4919772..52d6bcd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java @@ -10,7 +10,7 @@ import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; -public final class MoneyLimitJsonDeserializer extends JsonDeserializer { +final class MoneyLimitJsonDeserializer extends JsonDeserializer { @Override public MoneyLimit deserialize( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java index ca508a5..7f9b331 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java @@ -12,7 +12,7 @@ import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; -public final class OrderJsonDeserializer extends JsonDeserializer { +final class OrderJsonDeserializer extends JsonDeserializer { @Override public Order deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java index 470707b..939fbc6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java @@ -8,7 +8,7 @@ import java.io.IOException; -public final class StopEventInfoJsonDeserializer extends JsonDeserializer { +final class StopEventInfoJsonDeserializer extends JsonDeserializer { @Override public StopEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java index e46530b..e45ee2f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java @@ -12,7 +12,7 @@ import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; -public final class TradeJsonDeserializer extends JsonDeserializer { +final class TradeJsonDeserializer extends JsonDeserializer { @Override public Trade deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { From ea16a0aaae13098b50423c630c0f040969c4a4c4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 17:06:34 +0300 Subject: [PATCH 016/549] Added the AccountBalance domain class. --- .../rpc/events/api/LoggingEventHandler.java | 38 ++--- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../events/api/structures/AccountBalance.java | 145 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../AccountBalanceJsonDeserializer.java | 37 +++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 204 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 5f85d91..4b876b9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -42,97 +42,97 @@ public void onInit() { } @Override - public void onFirm(Firm firm) { + public void onFirm(final Firm firm) { LOGGER.info("onFirm:\n{}", firm); } @Override - public void onAllTrade(AllTrade allTrade) { + public void onAllTrade(final AllTrade allTrade) { LOGGER.info("onAllTrade:\n{}", allTrade); } @Override - public void onTrade(Trade trade) { + public void onTrade(final Trade trade) { LOGGER.info("onTrade:\n{}", trade); } @Override - public void onOrder(Order order) { + public void onOrder(final Order order) { LOGGER.info("onOrder:\n{}", order); } @Override - public void onAccountBalance(QluaStructures.AccountBalance accountBalance) { + public void onAccountBalance(final AccountBalance accountBalance) { LOGGER.info("onAccountBalance:\n{}", accountBalance); } @Override - public void onFuturesLimitChange(QluaStructures.FuturesLimit futuresLimit) { + public void onFuturesLimitChange(final QluaStructures.FuturesLimit futuresLimit) { LOGGER.info("onFuturesLimitChange:\n{}", futuresLimit); } @Override - public void onFuturesLimitDelete(QluaStructures.FuturesLimitDelete futuresLimitDelete) { + public void onFuturesLimitDelete(final QluaStructures.FuturesLimitDelete futuresLimitDelete) { LOGGER.info("onFuturesLimitDelete:\n{}", futuresLimitDelete); } @Override - public void onFuturesClientHolding(QluaStructures.FuturesClientHolding futuresClientHolding) { + public void onFuturesClientHolding(final QluaStructures.FuturesClientHolding futuresClientHolding) { LOGGER.info("onFuturesClientHolding:\n{}", futuresClientHolding); } @Override - public void onMoneyLimit(MoneyLimit moneyLimit) { + public void onMoneyLimit(final MoneyLimit moneyLimit) { LOGGER.info("onMoneyLimit:\n{}", moneyLimit); } @Override - public void onMoneyLimitDelete(QluaStructures.MoneyLimitDelete moneyLimitDelete) { + public void onMoneyLimitDelete(final QluaStructures.MoneyLimitDelete moneyLimitDelete) { LOGGER.info("onMoneyLimitDelete:\n{}", moneyLimitDelete); } @Override - public void onDepoLimit(QluaStructures.DepoLimit depoLimit) { + public void onDepoLimit(final QluaStructures.DepoLimit depoLimit) { LOGGER.info("onDepoLimit:\n{}", depoLimit); } @Override - public void onDepoLimitDelete(QluaStructures.DepoLimitDelete depoLimitDelete) { + public void onDepoLimitDelete(final QluaStructures.DepoLimitDelete depoLimitDelete) { LOGGER.info("onDepoLimitDelete:\n{}", depoLimitDelete); } @Override - public void onAccountPosition(QluaStructures.AccountPosition accountPosition) { + public void onAccountPosition(final QluaStructures.AccountPosition accountPosition) { LOGGER.info("onAccountPosition:\n{}", accountPosition); } @Override - public void onNegDeal(QluaStructures.NegDeal negDeal) { + public void onNegDeal(final QluaStructures.NegDeal negDeal) { LOGGER.info("onNegDeal:\n{}", negDeal); } @Override - public void onNegTrade(QluaStructures.NegTrade negTrade) { + public void onNegTrade(final QluaStructures.NegTrade negTrade) { LOGGER.info("onNegTrade:\n{}", negTrade); } @Override - public void onStopOrder(QluaStructures.StopOrder stopOrder) { + public void onStopOrder(final QluaStructures.StopOrder stopOrder) { LOGGER.info("onStopOrder:\n{}", stopOrder); } @Override - public void onTransReply(QluaStructures.Transaction transaction) { + public void onTransReply(final QluaStructures.Transaction transaction) { LOGGER.info("onTransReply:\n{}", transaction); } @Override - public void onParam(QluaStructures.ParamEventInfo param) { + public void onParam(final QluaStructures.ParamEventInfo param) { LOGGER.info("onParam:\n{}", param); } @Override - public void onQuote(QluaStructures.QuoteEventInfo quote) { + public void onQuote(final QluaStructures.QuoteEventInfo quote) { LOGGER.info("onQuote:\n{}", quote); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 4ba8b00..5eb8922 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -91,7 +91,7 @@ default void onOrder(final Order order) {} * * @param accountBalance текущие позиции по счетам */ - default void onAccountBalance(final QluaStructures.AccountBalance accountBalance) {} + default void onAccountBalance(final AccountBalance accountBalance) {} /** * Функция обратного вызова для события терминала OnFuturesLimitChange. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java new file mode 100644 index 0000000..28587ec --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java @@ -0,0 +1,145 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class AccountBalance { + + String firmId; + String secCode; + String trdAccId; + String depAccId; + String openBal; + String currentPos; + String plannedPosSell; + String plannedPosBuy; + String planBal; + String usqtyb; + String usqtys; + String planned; + String settleBal; + String bankAccId; + int firmUse; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private AccountBalance( + final String firmId, + final String secCode, + final String trdAccId, + final String depAccId, + final String openBal, + final String currentPos, + final String plannedPosSell, + final String plannedPosBuy, + final String planBal, + final String usqtyb, + final String usqtys, + final String planned, + final String settleBal, + final String bankAccId, + final int firmUse) { + + this.firmId = firmId; + this.secCode = secCode; + this.trdAccId = trdAccId; + this.depAccId = depAccId; + this.openBal = openBal; + this.currentPos = currentPos; + this.plannedPosSell = plannedPosSell; + this.plannedPosBuy = plannedPosBuy; + this.planBal = planBal; + this.usqtyb = usqtyb; + this.usqtys = usqtys; + this.planned = planned; + this.settleBal = settleBal; + this.bankAccId = bankAccId; + this.firmUse = firmUse; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof AccountBalance)) { + return false; + } else { + final AccountBalance that = (AccountBalance) o; + return firmUse == that.firmUse && + Objects.equals(firmId, that.firmId) && + Objects.equals(secCode, that.secCode) && + Objects.equals(trdAccId, that.trdAccId) && + Objects.equals(depAccId, that.depAccId) && + Objects.equals(openBal, that.openBal) && + Objects.equals(currentPos, that.currentPos) && + Objects.equals(plannedPosSell, that.plannedPosSell) && + Objects.equals(plannedPosBuy, that.plannedPosBuy) && + Objects.equals(planBal, that.planBal) && + Objects.equals(usqtyb, that.usqtyb) && + Objects.equals(usqtys, that.usqtys) && + Objects.equals(planned, that.planned) && + Objects.equals(settleBal, that.settleBal) && + Objects.equals(bankAccId, that.bankAccId); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + firmId, + secCode, + trdAccId, + depAccId, + openBal, + currentPos, + plannedPosSell, + plannedPosBuy, + planBal, + usqtyb, + usqtys, + planned, + settleBal, + bankAccId, + firmUse + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmId", firmId) + .add("sec_code", secCode) + .add("trdaccid", trdAccId) + .add("depaccid", depAccId) + .add("openbal", openBal) + .add("currentpos", currentPos) + .add("plannedpossell", plannedPosSell) + .add("plannedposbuy", plannedPosBuy) + .add("planbal", planBal) + .add("usqtyb", usqtyb) + .add("usqtys", usqtys) + .add("planned", planned) + .add("settlebal", settleBal) + .add("bank_acc_id", bankAccId) + .add("firmuse", firmUse) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 1f3566d..449f36f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -91,7 +91,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onOrder( serdeModule.deserialize(Order.class, eventData) ); break; case ON_ACCOUNT_BALANCE: - eventHandler.onAccountBalance( QluaStructures.AccountBalance.parseFrom(event.getData()) ); + eventHandler.onAccountBalance( serdeModule.deserialize(AccountBalance.class, eventData) ); break; case ON_FUTURES_LIMIT_CHANGE: eventHandler.onFuturesLimitChange( QluaStructures.FuturesLimit.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java new file mode 100644 index 0000000..b1c2c75 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.AccountBalance; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class AccountBalanceJsonDeserializer extends JsonDeserializer { + + @Override + public AccountBalance deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return AccountBalance.builder() + .firmId( asText(node, "firmid") ) + .secCode( asText(node, "sec_code") ) + .trdAccId( asText(node, "trdaccid") ) + .depAccId( asText(node, "depaccid") ) + .openBal( asText(node, "openbal") ) + .currentPos( asText(node, "currentpos") ) + .plannedPosSell( asText(node, "plannedpossell") ) + .plannedPosBuy( asText(node, "plannedposbuy") ) + .planBal( asText(node, "planbal") ) + .usqtyb( asText(node, "usqtyb") ) + .usqtys( asText(node, "usqtys") ) + .planned( asText(node, "planned") ) + .settleBal( asText(node, "settlebal") ) + .bankAccId( asText(node, "bank_acc_id") ) + .firmUse( node.get("firmuse").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 8067a79..14848e5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -15,6 +15,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); + super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } From 5fc37cd38c06c7997a0a5e456f9b5962f49ca25b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 17:07:59 +0300 Subject: [PATCH 017/549] Localization. --- .../quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 449f36f..7c4f26e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -140,7 +140,7 @@ public void process() throws QluaEventProcessingException { break; default: throw new QluaEventProcessingException( - String.format("Unexpected event type \"%s\".", event.getType()) + String.format("Неподдерживаемый тип события: \"%s\".", event.getType()) ); } } @@ -148,7 +148,7 @@ public void process() throws QluaEventProcessingException { } catch (final QluaEventProcessingException ex) { throw ex; } catch (final Exception ex) { - throw new QluaEventProcessingException("An error has occurred while processing a QLua event.", ex); + throw new QluaEventProcessingException("Ошибка при обработке события QLua.", ex); } } From 15a80041d298beb62b5eab6d9c961d3d5015a8dd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 17:13:08 +0300 Subject: [PATCH 018/549] Localization. --- .../lua/rpc/events/impl/ZmqTcpQluaEventPoller.java | 12 ++++++------ .../rpc/events/impl/ZmqTcpQluaEventProcessor.java | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java index 48f485f..0ddb0f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java @@ -112,7 +112,7 @@ public QluaEvent poll(final PollingMode mode) throws PollingException { final QluaEvent.EventType eventType = serdeModule.deserialize(QluaEvent.EventType.class, subscriptionKeyAsBytes); if (eventType == null) { - throw new PollingException( String.format("Unknown subscription key: %s.", new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8)) ); + throw new PollingException( String.format("Неизвестный ключ подписки на QLua-события: \"%s\".", new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8)) ); } final boolean hasReceiveMore = subSocket.hasReceiveMore(); @@ -122,7 +122,7 @@ public QluaEvent poll(final PollingMode mode) throws PollingException { final ZMsg eventDataAsMsg = ZMsg.recvMsg(subSocket); if (eventDataAsMsg == null) { throw new PollingException( - String.format("No event data has been received for the event \"%s\".", eventType) + String.format("Для QLua-события \"%s\" не получено данных.", eventType) ); } @@ -136,7 +136,7 @@ public QluaEvent poll(final PollingMode mode) throws PollingException { } catch (final PollingException ex) { throw ex; } catch (final Exception ex) { - throw new PollingException("Error while polling for events.", ex); + throw new PollingException("Ошибка при чтении очереди QLua-событий.", ex); } } @@ -244,7 +244,7 @@ public void open() throws IOException { default: throw new IllegalStateException( String.format( - "Unsupported authentication mechanism: \"s\".", + "Неподдерживаемый механизм аутентификации: \"s\".", authContext.getAuthMechanism() ) ); @@ -256,7 +256,7 @@ public void open() throws IOException { } else { final String errorMessage = - String.format("Couldn't connect to '%s'. ZMQ socket errno:", uri, subSocket.errno()); + String.format("Не удалось соединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", uri, subSocket.errno()); subSocket.close(); zmqContext.term(); @@ -289,7 +289,7 @@ public void close() throws IOException { } else { throw new IOException( String.format( - "Couldn't disconnect from '%s'. ZMQ socket errno: %d", + "Не удалось разъединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", uri, subSocket.errno() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 7c4f26e..4e03e31 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -140,7 +140,7 @@ public void process() throws QluaEventProcessingException { break; default: throw new QluaEventProcessingException( - String.format("Неподдерживаемый тип события: \"%s\".", event.getType()) + String.format("Неподдерживаемый тип QLua-события: \"%s\".", event.getType()) ); } } @@ -148,7 +148,7 @@ public void process() throws QluaEventProcessingException { } catch (final QluaEventProcessingException ex) { throw ex; } catch (final Exception ex) { - throw new QluaEventProcessingException("Ошибка при обработке события QLua.", ex); + throw new QluaEventProcessingException("Ошибка при обработке QLua-события.", ex); } } From e055a6527d25783c1430c1be5f822fc92d4fdb4b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 20:01:06 +0300 Subject: [PATCH 019/549] Added the FuturesLimit domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../events/api/structures/FuturesLimit.java | 157 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/FuturesLimitJsonDeserializer.java | 40 +++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 201 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 4b876b9..6f08af4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -67,7 +67,7 @@ public void onAccountBalance(final AccountBalance accountBalance) { } @Override - public void onFuturesLimitChange(final QluaStructures.FuturesLimit futuresLimit) { + public void onFuturesLimitChange(final FuturesLimit futuresLimit) { LOGGER.info("onFuturesLimitChange:\n{}", futuresLimit); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 5eb8922..d9190d6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -100,7 +100,7 @@ default void onAccountBalance(final AccountBalance accountBalance) {} * * @param futuresLimit текущие значения лимита по срочному рынку */ - default void onFuturesLimitChange(final QluaStructures.FuturesLimit futuresLimit) {} + default void onFuturesLimitChange(final FuturesLimit futuresLimit) {} /** * Функция обратного вызова для события терминала OnFuturesLimitDelete. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java new file mode 100644 index 0000000..478a6ef --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java @@ -0,0 +1,157 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class FuturesLimit { + + String firmId; + String trdAccId; + int limitType; + String liquidityCoef; + String cbpPrevLimit; + String cbpLimit; + String cbpLUsed; + String cbpLPlanned; + String varMargin; + String accruedInt; + String cbpLUsedForOrders; + String cbpLUsedForPositions; + String optionsPremium; + String tsComission; + String kgo; + String currCode; + String realVarMargin; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private FuturesLimit( + final String firmId, + final String trdAccId, + final int limitType, + final String liquidityCoef, + final String cbpPrevLimit, + final String cbpLimit, + final String cbpLUsed, + final String cbpLPlanned, + final String varMargin, + final String accruedInt, + final String cbpLUsedForOrders, + final String cbpLUsedForPositions, + final String optionsPremium, + final String tsComission, + final String kgo, + final String currCode, + final String realVarMargin) { + + this.firmId = firmId; + this.trdAccId = trdAccId; + this.limitType = limitType; + this.liquidityCoef = liquidityCoef; + this.cbpPrevLimit = cbpPrevLimit; + this.cbpLimit = cbpLimit; + this.cbpLUsed = cbpLUsed; + this.cbpLPlanned = cbpLPlanned; + this.varMargin = varMargin; + this.accruedInt = accruedInt; + this.cbpLUsedForOrders = cbpLUsedForOrders; + this.cbpLUsedForPositions = cbpLUsedForPositions; + this.optionsPremium = optionsPremium; + this.tsComission = tsComission; + this.kgo = kgo; + this.currCode = currCode; + this.realVarMargin = realVarMargin; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof FuturesLimit) ) { + return false; + } else { + final FuturesLimit that = (FuturesLimit) o; + return limitType == that.limitType && + Objects.equals(firmId, that.firmId) && + Objects.equals(trdAccId, that.trdAccId) && + Objects.equals(liquidityCoef, that.liquidityCoef) && + Objects.equals(cbpPrevLimit, that.cbpPrevLimit) && + Objects.equals(cbpLimit, that.cbpLimit) && + Objects.equals(cbpLUsed, that.cbpLUsed) && + Objects.equals(cbpLPlanned, that.cbpLPlanned) && + Objects.equals(varMargin, that.varMargin) && + Objects.equals(accruedInt, that.accruedInt) && + Objects.equals(cbpLUsedForOrders, that.cbpLUsedForOrders) && + Objects.equals(cbpLUsedForPositions, that.cbpLUsedForPositions) && + Objects.equals(optionsPremium, that.optionsPremium) && + Objects.equals(tsComission, that.tsComission) && + Objects.equals(kgo, that.kgo) && + Objects.equals(currCode, that.currCode) && + Objects.equals(realVarMargin, that.realVarMargin); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + firmId, + trdAccId, + limitType, + liquidityCoef, + cbpPrevLimit, + cbpLimit, + cbpLUsed, + cbpLPlanned, + varMargin, + accruedInt, + cbpLUsedForOrders, + cbpLUsedForPositions, + optionsPremium, + tsComission, + kgo, + currCode, + realVarMargin + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("trdaccid", trdAccId) + .add("limit_type", limitType) + .add("liquidity_coef", liquidityCoef) + .add("cbp_prev_limit", cbpPrevLimit) + .add("cbplimit", cbpLimit) + .add("cbplused", cbpLUsed) + .add("cbplplanned", cbpLPlanned) + .add("varmargin", varMargin) + .add("accruedint", accruedInt) + .add("cbplused_for_orders", cbpLUsedForOrders) + .add("cbplused_for_positions", cbpLUsedForPositions) + .add("options_premium", optionsPremium) + .add("ts_comission", tsComission) + .add("kgo", kgo) + .add("currcode", currCode) + .add("real_varmargin", realVarMargin) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 4e03e31..1869d4a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -94,7 +94,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onAccountBalance( serdeModule.deserialize(AccountBalance.class, eventData) ); break; case ON_FUTURES_LIMIT_CHANGE: - eventHandler.onFuturesLimitChange( QluaStructures.FuturesLimit.parseFrom(event.getData()) ); + eventHandler.onFuturesLimitChange( serdeModule.deserialize(FuturesLimit.class, eventData) ); break; case ON_FUTURES_LIMIT_DELETE: eventHandler.onFuturesLimitDelete( QluaStructures.FuturesLimitDelete.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java new file mode 100644 index 0000000..84db677 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesLimit; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class FuturesLimitJsonDeserializer extends JsonDeserializer { + + @Override + public FuturesLimit deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return FuturesLimit + .builder() + .firmId( asText(node, "firmid") ) + .trdAccId( asText(node, "trdaccid") ) + .limitType( node.get("limit_type").asInt() ) + .liquidityCoef( asText(node, "liquidity_coef") ) + .cbpPrevLimit( asText(node, "cbp_prev_limit") ) + .cbpLimit( asText(node, "cbplimit") ) + .cbpLUsed( asText(node, "cbplused") ) + .cbpLPlanned( asText(node, "cbplplanned") ) + .varMargin( asText(node, "varmargin") ) + .accruedInt( asText(node, "accruedint") ) + .cbpLUsedForOrders( asText(node, "cbplused_for_orders") ) + .cbpLUsedForPositions( asText(node, "cbplused_for_positions") ) + .optionsPremium( asText(node, "options_premium") ) + .tsComission( asText(node, "ts_comission") ) + .kgo( asText(node, "kgo") ) + .currCode( asText(node, "currcode") ) + .realVarMargin( asText(node, "real_varmargin") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 14848e5..1475584 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -16,6 +16,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); + super.addDeserializer(FuturesLimit.class, new FuturesLimitJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } From 6ebd20c59b1788744b6d780895ecdd5643ab9515 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 20:07:34 +0300 Subject: [PATCH 020/549] Added the FuturesLimitDelete domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../api/structures/FuturesLimitDelete.java | 61 +++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../FuturesLimitDeleteJsonDeserializer.java | 25 ++++++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 6f08af4..6f70cee 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -72,7 +72,7 @@ public void onFuturesLimitChange(final FuturesLimit futuresLimit) { } @Override - public void onFuturesLimitDelete(final QluaStructures.FuturesLimitDelete futuresLimitDelete) { + public void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) { LOGGER.info("onFuturesLimitDelete:\n{}", futuresLimitDelete); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index d9190d6..9cccd15 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -109,7 +109,7 @@ default void onFuturesLimitChange(final FuturesLimit futuresLimit) {} * * @param futuresLimitDelete удаляемый лимит по срочному рынку */ - default void onFuturesLimitDelete(final QluaStructures.FuturesLimitDelete futuresLimitDelete) {} + default void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) {} /** * Функция обратного вызова для события терминала OnFuturesClientHolding. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java new file mode 100644 index 0000000..f936616 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class FuturesLimitDelete { + + String firmId; + int limitType; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private FuturesLimitDelete(final String firmId, final int limitType) { + this.firmId = firmId; + this.limitType = limitType; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof FuturesLimitDelete) ) { + return false; + } else { + final FuturesLimitDelete that = (FuturesLimitDelete) o; + return limitType == that.limitType && + Objects.equals(firmId, that.firmId); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(firmId, limitType); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("limit_type", limitType) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 1869d4a..430fe6a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -97,7 +97,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onFuturesLimitChange( serdeModule.deserialize(FuturesLimit.class, eventData) ); break; case ON_FUTURES_LIMIT_DELETE: - eventHandler.onFuturesLimitDelete( QluaStructures.FuturesLimitDelete.parseFrom(event.getData()) ); + eventHandler.onFuturesLimitDelete( serdeModule.deserialize(FuturesLimitDelete.class, eventData) ); break; case ON_FUTURES_CLIENT_HOLDING: eventHandler.onFuturesClientHolding( QluaStructures.FuturesClientHolding.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java new file mode 100644 index 0000000..ca0ce61 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesLimitDelete; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class FuturesLimitDeleteJsonDeserializer extends JsonDeserializer { + + @Override + public FuturesLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return FuturesLimitDelete + .builder() + .firmId( asText(node, "firmid") ) + .limitType( node.get("limit_type").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 1475584..ef258d8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -17,6 +17,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); super.addDeserializer(FuturesLimit.class, new FuturesLimitJsonDeserializer()); + super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } From 854708c2ac6ab6e2dd66c8e8fbafeda2071f599e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 20:20:51 +0300 Subject: [PATCH 021/549] Added the FuturesClientHolding domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../api/structures/FuturesClientHolding.java | 169 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../FuturesClientHoldingJsonDeserializer.java | 42 +++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 215 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 6f70cee..6303d2f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -77,7 +77,7 @@ public void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) { } @Override - public void onFuturesClientHolding(final QluaStructures.FuturesClientHolding futuresClientHolding) { + public void onFuturesClientHolding(final FuturesClientHolding futuresClientHolding) { LOGGER.info("onFuturesClientHolding:\n{}", futuresClientHolding); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 9cccd15..bc6613e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -118,7 +118,7 @@ default void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) { * * @param futuresClientHolding описание позиции по срочному рынку */ - default void onFuturesClientHolding(final QluaStructures.FuturesClientHolding futuresClientHolding) {} + default void onFuturesClientHolding(final FuturesClientHolding futuresClientHolding) {} /** * Функция обратного вызова для события терминала OnMoneyLimit. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java new file mode 100644 index 0000000..857eb95 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java @@ -0,0 +1,169 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class FuturesClientHolding { + + String firmId; + String trdAccId; + String secCode; + int type; + String startBuy; + String startSell; + String todayBuy; + String todaySell; + String totalNet; + int openBuys; + int openSells; + String cbpLUsed; + String cbpLPlanned; + String varMargin; + String avrPosnPrice; + String positionValue; + String realVarMargin; + String totalVarMargin; + int sessionStatus; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private FuturesClientHolding( + final String firmId, + final String trdAccId, + final String secCode, + final int type, + final String startBuy, + final String startSell, + final String todayBuy, + final String todaySell, + final String totalNet, + final int openBuys, + final int openSells, + final String cbpLUsed, + final String cbpLPlanned, + final String varMargin, + final String avrPosnPrice, + final String positionValue, + final String realVarMargin, + final String totalVarMargin, + final int sessionStatus) { + + this.firmId = firmId; + this.trdAccId = trdAccId; + this.secCode = secCode; + this.type = type; + this.startBuy = startBuy; + this.startSell = startSell; + this.todayBuy = todayBuy; + this.todaySell = todaySell; + this.totalNet = totalNet; + this.openBuys = openBuys; + this.openSells = openSells; + this.cbpLUsed = cbpLUsed; + this.cbpLPlanned = cbpLPlanned; + this.varMargin = varMargin; + this.avrPosnPrice = avrPosnPrice; + this.positionValue = positionValue; + this.realVarMargin = realVarMargin; + this.totalVarMargin = totalVarMargin; + this.sessionStatus = sessionStatus; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof FuturesClientHolding) ) { + return false; + } else { + final FuturesClientHolding that = (FuturesClientHolding) o; + return type == that.type && + openBuys == that.openBuys && + openSells == that.openSells && + sessionStatus == that.sessionStatus && + Objects.equals(firmId, that.firmId) && + Objects.equals(trdAccId, that.trdAccId) && + Objects.equals(secCode, that.secCode) && + Objects.equals(startBuy, that.startBuy) && + Objects.equals(startSell, that.startSell) && + Objects.equals(todayBuy, that.todayBuy) && + Objects.equals(todaySell, that.todaySell) && + Objects.equals(totalNet, that.totalNet) && + Objects.equals(cbpLUsed, that.cbpLUsed) && + Objects.equals(cbpLPlanned, that.cbpLPlanned) && + Objects.equals(varMargin, that.varMargin) && + Objects.equals(avrPosnPrice, that.avrPosnPrice) && + Objects.equals(positionValue, that.positionValue) && + Objects.equals(realVarMargin, that.realVarMargin) && + Objects.equals(totalVarMargin, that.totalVarMargin); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + return Objects.hash( + firmId, + trdAccId, + secCode, + type, + startBuy, + startSell, + todayBuy, + todaySell, + totalNet, + openBuys, + openSells, + cbpLUsed, + cbpLPlanned, + varMargin, + avrPosnPrice, + positionValue, + realVarMargin, + totalVarMargin, + sessionStatus + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("trdaccid", trdAccId) + .add("sec_code", secCode) + .add("type", type) + .add("startbuy", startBuy) + .add("startsell", startSell) + .add("todaybuy", todayBuy) + .add("todaysell", todaySell) + .add("totalnet", totalNet) + .add("openbuys", openBuys) + .add("opensells", openSells) + .add("cbplused", cbpLUsed) + .add("cbplplanned", cbpLPlanned) + .add("varmargin", varMargin) + .add("avrposnprice", avrPosnPrice) + .add("positionvalue", positionValue) + .add("real_varmargin", realVarMargin) + .add("total_varmargin", totalVarMargin) + .add("session_status", sessionStatus) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 430fe6a..c1a80f4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -100,7 +100,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onFuturesLimitDelete( serdeModule.deserialize(FuturesLimitDelete.class, eventData) ); break; case ON_FUTURES_CLIENT_HOLDING: - eventHandler.onFuturesClientHolding( QluaStructures.FuturesClientHolding.parseFrom(event.getData()) ); + eventHandler.onFuturesClientHolding( serdeModule.deserialize(FuturesClientHolding.class, eventData) ); break; case ON_MONEY_LIMIT: eventHandler.onMoneyLimit( serdeModule.deserialize(MoneyLimit.class, eventData) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java new file mode 100644 index 0000000..e32b63a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesClientHolding; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class FuturesClientHoldingJsonDeserializer extends JsonDeserializer { + + @Override + public FuturesClientHolding deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return FuturesClientHolding.builder() + .firmId( asText(node, "firmid") ) + .trdAccId( asText(node, "trdaccid") ) + .secCode( asText(node, "sec_code") ) + .type( node.get("type").asInt() ) + .startBuy( asText(node, "startbuy") ) + .startSell( asText(node, "startsell") ) + .todayBuy( asText(node, "todaybuy") ) + .todaySell( asText(node, "todaysell") ) + .totalNet( asText(node, "totalnet") ) + .openBuys( node.get("openbuys").asInt() ) + .openSells( node.get("opensells").asInt() ) + .cbpLUsed( asText(node, "cbplused") ) + .cbpLPlanned( asText(node, "cbplplanned") ) + .varMargin( asText(node, "varmargin") ) + .avrPosnPrice( asText(node, "avrposnprice") ) + .positionValue( asText(node, "positionvalue") ) + .realVarMargin( asText(node, "real_varmargin") ) + .totalVarMargin( asText(node, "total_varmargin") ) + .sessionStatus( node.get("session_status").asInt() ) + .build(); + + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index ef258d8..269b867 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -18,6 +18,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); super.addDeserializer(FuturesLimit.class, new FuturesLimitJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); + super.addDeserializer(FuturesClientHolding.class, new FuturesClientHoldingJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } From dd4d549010d2e82da5844ad4f14d4f2d0b2c9bca Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 23:09:41 +0300 Subject: [PATCH 022/549] Added the MoneyLimitDelete domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../api/structures/MoneyLimitDelete.java | 79 +++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../MoneyLimitDeleteJsonDeserializer.java | 28 +++++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 6303d2f..d0da93a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -87,7 +87,7 @@ public void onMoneyLimit(final MoneyLimit moneyLimit) { } @Override - public void onMoneyLimitDelete(final QluaStructures.MoneyLimitDelete moneyLimitDelete) { + public void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) { LOGGER.info("onMoneyLimitDelete:\n{}", moneyLimitDelete); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index bc6613e..5ea27b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -136,7 +136,7 @@ default void onMoneyLimit(final MoneyLimit moneyLimit) {} * * @param moneyLimitDelete удаляемый денежный лимит */ - default void onMoneyLimitDelete(final QluaStructures.MoneyLimitDelete moneyLimitDelete) {} + default void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) {} /** * Функция обратного вызова для события терминала OnDepoLimit. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java new file mode 100644 index 0000000..6fb7d7b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class MoneyLimitDelete { + + String currCode; + String tag; + String clientCode; + String firmId; + int limitKind; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private MoneyLimitDelete( + final String currCode, + final String tag, + final String clientCode, + final String firmId, + final int limitKind) { + + this.currCode = currCode; + this.tag = tag; + this.clientCode = clientCode; + this.firmId = firmId; + this.limitKind = limitKind; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof MoneyLimitDelete) ) { + return false; + } else { + final MoneyLimitDelete that = (MoneyLimitDelete) o; + return limitKind == that.limitKind && + Objects.equals(currCode, that.currCode) && + Objects.equals(tag, that.tag) && + Objects.equals(clientCode, that.clientCode) && + Objects.equals(firmId, that.firmId); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(currCode, tag, clientCode, firmId, limitKind); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("currcode", currCode) + .add("tag", tag) + .add("client_code", clientCode) + .add("firmid", firmId) + .add("limit_kind", limitKind) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index c1a80f4..5fd9057 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -106,7 +106,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onMoneyLimit( serdeModule.deserialize(MoneyLimit.class, eventData) ); break; case ON_MONEY_LIMIT_DELETE: - eventHandler.onMoneyLimitDelete( QluaStructures.MoneyLimitDelete.parseFrom(event.getData()) ); + eventHandler.onMoneyLimitDelete( serdeModule.deserialize(MoneyLimitDelete.class, eventData) ); break; case ON_DEPO_LIMIT: eventHandler.onDepoLimit( QluaStructures.DepoLimit.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java new file mode 100644 index 0000000..f49436f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimitDelete; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class MoneyLimitDeleteJsonDeserializer extends JsonDeserializer { + + @Override + public MoneyLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return MoneyLimitDelete + .builder() + .currCode( asText(node, "currcode") ) + .tag( asText(node, "tag") ) + .clientCode( asText(node, "client_code") ) + .firmId( asText(node, "firmid") ) + .limitKind( node.get("limit_kind").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 269b867..9263817 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -20,6 +20,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); super.addDeserializer(FuturesClientHolding.class, new FuturesClientHoldingJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); + super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From e084b24e460597ba6666a2ec57e37fbea6ed6b97 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 23:22:51 +0300 Subject: [PATCH 023/549] Added the DepoLimit domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../rpc/events/api/structures/DepoLimit.java | 139 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/DepoLimitJsonDeserializer.java | 36 +++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 179 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index d0da93a..d2c9c4c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -92,7 +92,7 @@ public void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) { } @Override - public void onDepoLimit(final QluaStructures.DepoLimit depoLimit) { + public void onDepoLimit(final DepoLimit depoLimit) { LOGGER.info("onDepoLimit:\n{}", depoLimit); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 5ea27b6..783231d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -145,7 +145,7 @@ default void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) {} * * @param depoLimit текущие значения лимитов по бумагам */ - default void onDepoLimit(final QluaStructures.DepoLimit depoLimit) {} + default void onDepoLimit(final DepoLimit depoLimit) {} /** * Функция обратного вызова для события терминала OnDepoLimitDelete. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java new file mode 100644 index 0000000..f584ae3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java @@ -0,0 +1,139 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class DepoLimit { + + String secCode; + String trdAccId; + String firmId; + String clientCode; + int openBal; + int openLimit; + int currentBal; + int currentLimit; + int lockedSell; + int lockedBuy; + String lockedBuyValue; + String lockedSellValue; + String awgPositionPrice; + int limitKind; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private DepoLimit( + final String secCode, + final String trdAccId, + final String firmId, + final String clientCode, + final int openBal, + final int openLimit, + final int currentBal, + final int currentLimit, + final int lockedSell, + final int lockedBuy, + final String lockedBuyValue, + final String lockedSellValue, + final String awgPositionPrice, + final int limitKind) { + + this.secCode = secCode; + this.trdAccId = trdAccId; + this.firmId = firmId; + this.clientCode = clientCode; + this.openBal = openBal; + this.openLimit = openLimit; + this.currentBal = currentBal; + this.currentLimit = currentLimit; + this.lockedSell = lockedSell; + this.lockedBuy = lockedBuy; + this.lockedBuyValue = lockedBuyValue; + this.lockedSellValue = lockedSellValue; + this.awgPositionPrice = awgPositionPrice; + this.limitKind = limitKind; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof DepoLimit) ) { + return false; + } else { + final DepoLimit depoLimit = (DepoLimit) o; + return openBal == depoLimit.openBal && + openLimit == depoLimit.openLimit && + currentBal == depoLimit.currentBal && + currentLimit == depoLimit.currentLimit && + lockedSell == depoLimit.lockedSell && + lockedBuy == depoLimit.lockedBuy && + limitKind == depoLimit.limitKind && + Objects.equals(secCode, depoLimit.secCode) && + Objects.equals(trdAccId, depoLimit.trdAccId) && + Objects.equals(firmId, depoLimit.firmId) && + Objects.equals(clientCode, depoLimit.clientCode) && + Objects.equals(lockedBuyValue, depoLimit.lockedBuyValue) && + Objects.equals(lockedSellValue, depoLimit.lockedSellValue) && + Objects.equals(awgPositionPrice, depoLimit.awgPositionPrice); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + secCode, + trdAccId, + firmId, + clientCode, + openBal, + openLimit, + currentBal, + currentLimit, + lockedSell, + lockedBuy, + lockedBuyValue, + lockedSellValue, + awgPositionPrice, + limitKind + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("sec_code", secCode) + .add("trdaccid", trdAccId) + .add("firmid", firmId) + .add("client_code", clientCode) + .add("openbal", openBal) + .add("openlimit", openLimit) + .add("currentbal", currentBal) + .add("currentlimit", currentLimit) + .add("locked_sell", lockedSell) + .add("locked_buy", lockedBuy) + .add("locked_buy_value", lockedBuyValue) + .add("locked_sell_value", lockedSellValue) + .add("awg_position_price", awgPositionPrice) + .add("limit_kind", limitKind) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 5fd9057..e287894 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -109,7 +109,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onMoneyLimitDelete( serdeModule.deserialize(MoneyLimitDelete.class, eventData) ); break; case ON_DEPO_LIMIT: - eventHandler.onDepoLimit( QluaStructures.DepoLimit.parseFrom(event.getData()) ); + eventHandler.onDepoLimit( serdeModule.deserialize(DepoLimit.class, eventData) ); break; case ON_DEPO_LIMIT_DELETE: eventHandler.onDepoLimitDelete( QluaStructures.DepoLimitDelete.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java new file mode 100644 index 0000000..dde463b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DepoLimit; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class DepoLimitJsonDeserializer extends JsonDeserializer { + + @Override + public DepoLimit deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return DepoLimit.builder() + .secCode( asText(node, "sec_code") ) + .trdAccId( asText(node, "trdaccid") ) + .firmId( asText(node, "firmid") ) + .clientCode( asText(node, "client_code") ) + .openBal( node.get("openbal").asInt() ) + .openLimit( node.get("openlimit").asInt() ) + .currentBal( node.get("currentbal").asInt() ) + .currentLimit( node.get("currentlimit").asInt() ) + .lockedSell( node.get("locked_sell").asInt() ) + .lockedBuy( node.get("locked_buy").asInt() ) + .lockedBuyValue( node.get("locked_buy_value").asText() ) + .lockedSellValue( node.get("locked_sell_value").asText() ) + .awgPositionPrice( node.get("awg_position_price").asText() ) + .limitKind( node.get("limit_kind").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 9263817..f85b3a6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -21,6 +21,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(FuturesClientHolding.class, new FuturesClientHoldingJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); + super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From ffc8355c6b825ac6f9c376dac393bbfb3cf8ec53 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 14 Jul 2018 23:30:00 +0300 Subject: [PATCH 024/549] Added the DepoLimitDelete domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../api/structures/DepoLimitDelete.java | 79 +++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../DepoLimitDeleteJsonDeserializer.java | 28 +++++++ .../jackson/DepoLimitJsonDeserializer.java | 3 +- .../jackson/QluaJsonJacksonDeserializers.java | 1 + 7 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index d2c9c4c..3440bd1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -97,7 +97,7 @@ public void onDepoLimit(final DepoLimit depoLimit) { } @Override - public void onDepoLimitDelete(final QluaStructures.DepoLimitDelete depoLimitDelete) { + public void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) { LOGGER.info("onDepoLimitDelete:\n{}", depoLimitDelete); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 783231d..cd4219b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -154,7 +154,7 @@ default void onDepoLimit(final DepoLimit depoLimit) {} * * @param depoLimitDelete удаляемый лимит по бумагам */ - default void onDepoLimitDelete(final QluaStructures.DepoLimitDelete depoLimitDelete) {} + default void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) {} /** * Функция обратного вызова для события терминала OnAccountPosition. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java new file mode 100644 index 0000000..f226f34 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class DepoLimitDelete { + + String secCode; + String trdAccId; + String firmId; + String clientCode; + int limitKind; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private DepoLimitDelete( + final String secCode, + final String trdAccId, + final String firmId, + final String clientCode, + final int limitKind) { + + this.secCode = secCode; + this.trdAccId = trdAccId; + this.firmId = firmId; + this.clientCode = clientCode; + this.limitKind = limitKind; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof DepoLimitDelete) ) { + return false; + } else { + final DepoLimitDelete that = (DepoLimitDelete) o; + return limitKind == that.limitKind && + Objects.equals(secCode, that.secCode) && + Objects.equals(trdAccId, that.trdAccId) && + Objects.equals(firmId, that.firmId) && + Objects.equals(clientCode, that.clientCode); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(secCode, trdAccId, firmId, clientCode, limitKind); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("sec_code", secCode) + .add("trdaccid", trdAccId) + .add("firmid", firmId) + .add("client_code", clientCode) + .add("limit_kind", limitKind) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index e287894..f533c32 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -112,7 +112,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onDepoLimit( serdeModule.deserialize(DepoLimit.class, eventData) ); break; case ON_DEPO_LIMIT_DELETE: - eventHandler.onDepoLimitDelete( QluaStructures.DepoLimitDelete.parseFrom(event.getData()) ); + eventHandler.onDepoLimitDelete( serdeModule.deserialize(DepoLimitDelete.class, eventData) ); break; case ON_ACCOUNT_POSITION: eventHandler.onAccountPosition( QluaStructures.AccountPosition.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java new file mode 100644 index 0000000..afa2bb6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DepoLimitDelete; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class DepoLimitDeleteJsonDeserializer extends JsonDeserializer { + + @Override + public DepoLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return DepoLimitDelete + .builder() + .secCode( asText(node, "sec_code") ) + .trdAccId( asText(node, "trdaccid") ) + .firmId( asText(node, "firmid") ) + .clientCode( asText(node, "client_code") ) + .limitKind( node.get("limit_kind").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java index dde463b..5f12040 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java @@ -16,7 +16,8 @@ final class DepoLimitJsonDeserializer extends JsonDeserializer { public DepoLimit deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { final JsonNode node = p.getCodec().readTree(p); - return DepoLimit.builder() + return DepoLimit + .builder() .secCode( asText(node, "sec_code") ) .trdAccId( asText(node, "trdaccid") ) .firmId( asText(node, "firmid") ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index f85b3a6..9fd8816 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -22,6 +22,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); + super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From dd408cdf34a9eae9c6cc056a4f1c29a890e5d53f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 01:51:10 +0300 Subject: [PATCH 025/549] Added the AccountPosition domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../api/structures/AccountPosition.java | 183 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../AccountPositionJsonDeserializer.java | 42 ++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 229 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 3440bd1..5b22dc9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -102,7 +102,7 @@ public void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) { } @Override - public void onAccountPosition(final QluaStructures.AccountPosition accountPosition) { + public void onAccountPosition(final AccountPosition accountPosition) { LOGGER.info("onAccountPosition:\n{}", accountPosition); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index cd4219b..a0115ab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -163,7 +163,7 @@ default void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) {} * * @param accountPosition текущие значения денежной позиции по счету */ - default void onAccountPosition(final QluaStructures.AccountPosition accountPosition) {} + default void onAccountPosition(final AccountPosition accountPosition) {} /** * Функция обратного вызова для события терминала OnNegDeal. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java new file mode 100644 index 0000000..b41ac7f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java @@ -0,0 +1,183 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class AccountPosition { + + String firmId; + String currCode; + String tag; + String description; + String openBal; + String currentPos; + String plannedPos; + String limit1; + String limit2; + String orderBuy; + String orderSell; + String netto; + String plannedBal; + String debit; + String credit; + String bankAccId; + String marginCall; + String settleBal; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private AccountPosition( + final String firmId, + final String currCode, + final String tag, + final String description, + final String openBal, + final String currentPos, + final String plannedPos, + final String limit1, + final String limit2, + final String orderBuy, + final String orderSell, + final String netto, + final String plannedBal, + final String debit, + final String credit, + final String bankAccId, + final String marginCall, + final String settleBal) { + + this.firmId = firmId; + this.currCode = currCode; + this.tag = tag; + this.description = description; + this.openBal = openBal; + this.currentPos = currentPos; + this.plannedPos = plannedPos; + this.limit1 = limit1; + this.limit2 = limit2; + this.orderBuy = orderBuy; + this.orderSell = orderSell; + this.netto = netto; + this.plannedBal = plannedBal; + this.debit = debit; + this.credit = credit; + this.bankAccId = bankAccId; + this.marginCall = marginCall; + this.settleBal = settleBal; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof AccountPosition) ) { + return false; + } else { + final AccountPosition that = (AccountPosition) o; + return Objects.equals(firmId, that.firmId) && + Objects.equals(currCode, that.currCode) && + Objects.equals(tag, that.tag) && + Objects.equals(description, that.description) && + Objects.equals(openBal, that.openBal) && + Objects.equals(currentPos, that.currentPos) && + Objects.equals(plannedPos, that.plannedPos) && + Objects.equals(limit1, that.limit1) && + Objects.equals(limit2, that.limit2) && + Objects.equals(orderBuy, that.orderBuy) && + Objects.equals(orderSell, that.orderSell) && + Objects.equals(netto, that.netto) && + Objects.equals(plannedBal, that.plannedBal) && + Objects.equals(debit, that.debit) && + Objects.equals(credit, that.credit) && + Objects.equals(bankAccId, that.bankAccId) && + Objects.equals(marginCall, that.marginCall) && + Objects.equals(settleBal, that.settleBal); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + firmId, + currCode, + tag, + description, + openBal, + currentPos, + plannedPos, + limit1, + limit2, + orderBuy, + orderSell, + netto, + plannedBal, + debit, + credit, + bankAccId, + marginCall, + settleBal + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("currcode", currCode) + .add("tag", tag) + .add("description", description) + .add("openbal", openBal) + .add("currentpos", currentPos) + .add("plannedpos", plannedPos) + .add("limit1", limit1) + .add("limit2", limit2) + .add("orderbuy", orderBuy) + .add("ordersell", orderSell) + .add("netto", netto) + .add("plannedbal", plannedBal) + .add("debit", debit) + .add("credit", credit) + .add("bank_acc_id", bankAccId) + .add("margincall", marginCall) + .add("settlebal", settleBal) + .toString(); + } + + return asString; + } +} + + +// string firmid = 1; +// string currcode = 2; +// string tag = 3; +// string description = 4; +// string openbal = 5; // NUMBER in QLUA +// string currentpos = 6; // NUMBER in QLUA +// string plannedpos = 7; // NUMBER in QLUA +// string limit1 = 8; // NUMBER in QLUA +// string limit2 = 9; // NUMBER in QLUA +// string orderbuy = 10; // NUMBER in QLUA +// string ordersell = 11; // NUMBER in QLUA +// string netto = 12; // NUMBER in QLUA +// string plannedbal = 13; // NUMBER in QLUA +// string debit = 14; // NUMBER in QLUA +// string credit = 15; // NUMBER in QLUA +// string bank_acc_id = 16; +// string margincall = 17; // NUMBER in QLUA +// string settlebal = 18; // NUMBER in QLUA \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index f533c32..ce71abd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -115,7 +115,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onDepoLimitDelete( serdeModule.deserialize(DepoLimitDelete.class, eventData) ); break; case ON_ACCOUNT_POSITION: - eventHandler.onAccountPosition( QluaStructures.AccountPosition.parseFrom(event.getData()) ); + eventHandler.onAccountPosition( serdeModule.deserialize(AccountPosition.class, eventData) ); break; case ON_NEG_DEAL: eventHandler.onNegDeal( QluaStructures.NegDeal.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java new file mode 100644 index 0000000..df1c4e1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.AccountPosition; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class AccountPositionJsonDeserializer extends JsonDeserializer { + + @Override + public AccountPosition deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return AccountPosition + .builder() + .firmId( asText(node, "firmid") ) + .currCode( asText(node, " currcode") ) + .tag( asText(node, "tag") ) + .description( asText(node, "description") ) + .openBal( asText(node, "openbal") ) + .currentPos( asText(node, "currentpos") ) + .plannedPos( asText(node, "plannedpos") ) + .limit1( asText(node, "limit1") ) + .limit2( asText(node, "limit2") ) + .orderBuy( asText(node, "orderbuy") ) + .orderSell( asText(node, "ordersell") ) + .netto( asText(node, "netto") ) + .plannedBal( asText(node, "plannedbal") ) + .debit( asText(node, "debit") ) + .credit( asText(node, "credit") ) + .bankAccId( asText(node, "bank_acc_id") ) + .marginCall( asText(node, "margincall") ) + .settleBal( asText(node, "settlebal") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 9fd8816..6eb8e3e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -23,6 +23,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); + super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From 213fa065430cea740a7ef3644e6755e327372c35 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 02:16:31 +0300 Subject: [PATCH 026/549] Added the NegDeal domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../rpc/events/api/structures/NegDeal.java | 343 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../json/jackson/NegDealJsonDeserializer.java | 74 ++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 421 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 5b22dc9..9a1ff82 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -107,7 +107,7 @@ public void onAccountPosition(final AccountPosition accountPosition) { } @Override - public void onNegDeal(final QluaStructures.NegDeal negDeal) { + public void onNegDeal(final NegDeal negDeal) { LOGGER.info("onNegDeal:\n{}", negDeal); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index a0115ab..c48da04 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -172,7 +172,7 @@ default void onAccountPosition(final AccountPosition accountPosition) {} * * @param negDeal заявка на внебиржевые сделки */ - default void onNegDeal(final QluaStructures.NegDeal negDeal) {} + default void onNegDeal(final NegDeal negDeal) {} /** * Функция обратного вызова для события терминала OnNegTrade. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java new file mode 100644 index 0000000..58c6368 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java @@ -0,0 +1,343 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class NegDeal { + + long negDealNum; + String negDealTime; + int flags; + String brokerRef; + String userId; + String firmId; + String cpUserId; + String cpFirmId; + String account; + String price; + int qty; + String matchRef; + String settleCode; + String yield; + String accruedInt; + String value; + String price2; + String repoRate; + String refundRate; + String transId; + String clientCode; + int repoEntry; + String repoValue; + String repo2Value; + String repoTerm; + String startDiscount; + String lowerDiscount; + String upperDiscount; + String blockSecurities; + String uid; + String withdrawTime; + String negDealDate; + String balance; + String originRepoValue; + String originQty; + String originDiscount; + String negDealActivationDate; + String negDealActivationTime; + String quoteNo; + String settleCurrency; + String secCode; + String classCode; + String bankAccId; + String withdrawDate; + String linkedOrder; + DateTimeEntry activationDateTime; + DateTimeEntry withdrawDateTime; + DateTimeEntry dateTime; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private NegDeal( + final long negDealNum, + final String negDealTime, + final int flags, + final String brokerRef, + final String userId, + final String firmId, + final String cpUserId, + final String cpFirmId, + final String account, + final String price, + final int qty, + final String matchRef, + final String settleCode, + final String yield, + final String accruedInt, + final String value, + final String price2, + final String repoRate, + final String refundRate, + final String transId, + final String clientCode, + final int repoEntry, + final String repoValue, + final String repo2Value, + final String repoTerm, + final String startDiscount, + final String lowerDiscount, + final String upperDiscount, + final String blockSecurities, + final String uid, + final String withdrawTime, + final String negDealDate, + final String balance, + final String originRepoValue, + final String originQty, + final String originDiscount, + final String negDealActivationDate, + final String negDealActivationTime, + final String quoteNo, + final String settleCurrency, + final String secCode, + final String classCode, + final String bankAccId, + final String withdrawDate, + final String linkedOrder, + final DateTimeEntry activationDateTime, + final DateTimeEntry withdrawDateTime, + final DateTimeEntry dateTime) { + + this.negDealNum = negDealNum; + this.negDealTime = negDealTime; + this.flags = flags; + this.brokerRef = brokerRef; + this.userId = userId; + this.firmId = firmId; + this.cpUserId = cpUserId; + this.cpFirmId = cpFirmId; + this.account = account; + this.price = price; + this.qty = qty; + this.matchRef = matchRef; + this.settleCode = settleCode; + this.yield = yield; + this.accruedInt = accruedInt; + this.value = value; + this.price2 = price2; + this.repoRate = repoRate; + this.refundRate = refundRate; + this.transId = transId; + this.clientCode = clientCode; + this.repoEntry = repoEntry; + this.repoValue = repoValue; + this.repo2Value = repo2Value; + this.repoTerm = repoTerm; + this.startDiscount = startDiscount; + this.lowerDiscount = lowerDiscount; + this.upperDiscount = upperDiscount; + this.blockSecurities = blockSecurities; + this.uid = uid; + this.withdrawTime = withdrawTime; + this.negDealDate = negDealDate; + this.balance = balance; + this.originRepoValue = originRepoValue; + this.originQty = originQty; + this.originDiscount = originDiscount; + this.negDealActivationDate = negDealActivationDate; + this.negDealActivationTime = negDealActivationTime; + this.quoteNo = quoteNo; + this.settleCurrency = settleCurrency; + this.secCode = secCode; + this.classCode = classCode; + this.bankAccId = bankAccId; + this.withdrawDate = withdrawDate; + this.linkedOrder = linkedOrder; + this.activationDateTime = activationDateTime; + this.withdrawDateTime = withdrawDateTime; + this.dateTime = dateTime; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof NegDeal) ) { + return false; + } else { + final NegDeal negDeal = (NegDeal) o; + return negDealNum == negDeal.negDealNum && + flags == negDeal.flags && + qty == negDeal.qty && + repoEntry == negDeal.repoEntry && + Objects.equals(negDealTime, negDeal.negDealTime) && + Objects.equals(brokerRef, negDeal.brokerRef) && + Objects.equals(userId, negDeal.userId) && + Objects.equals(firmId, negDeal.firmId) && + Objects.equals(cpUserId, negDeal.cpUserId) && + Objects.equals(cpFirmId, negDeal.cpFirmId) && + Objects.equals(account, negDeal.account) && + Objects.equals(price, negDeal.price) && + Objects.equals(matchRef, negDeal.matchRef) && + Objects.equals(settleCode, negDeal.settleCode) && + Objects.equals(yield, negDeal.yield) && + Objects.equals(accruedInt, negDeal.accruedInt) && + Objects.equals(value, negDeal.value) && + Objects.equals(price2, negDeal.price2) && + Objects.equals(repoRate, negDeal.repoRate) && + Objects.equals(refundRate, negDeal.refundRate) && + Objects.equals(transId, negDeal.transId) && + Objects.equals(clientCode, negDeal.clientCode) && + Objects.equals(repoValue, negDeal.repoValue) && + Objects.equals(repo2Value, negDeal.repo2Value) && + Objects.equals(repoTerm, negDeal.repoTerm) && + Objects.equals(startDiscount, negDeal.startDiscount) && + Objects.equals(lowerDiscount, negDeal.lowerDiscount) && + Objects.equals(upperDiscount, negDeal.upperDiscount) && + Objects.equals(blockSecurities, negDeal.blockSecurities) && + Objects.equals(uid, negDeal.uid) && + Objects.equals(withdrawTime, negDeal.withdrawTime) && + Objects.equals(negDealDate, negDeal.negDealDate) && + Objects.equals(balance, negDeal.balance) && + Objects.equals(originRepoValue, negDeal.originRepoValue) && + Objects.equals(originQty, negDeal.originQty) && + Objects.equals(originDiscount, negDeal.originDiscount) && + Objects.equals(negDealActivationDate, negDeal.negDealActivationDate) && + Objects.equals(negDealActivationTime, negDeal.negDealActivationTime) && + Objects.equals(quoteNo, negDeal.quoteNo) && + Objects.equals(settleCurrency, negDeal.settleCurrency) && + Objects.equals(secCode, negDeal.secCode) && + Objects.equals(classCode, negDeal.classCode) && + Objects.equals(bankAccId, negDeal.bankAccId) && + Objects.equals(withdrawDate, negDeal.withdrawDate) && + Objects.equals(linkedOrder, negDeal.linkedOrder) && + Objects.equals(activationDateTime, negDeal.activationDateTime) && + Objects.equals(withdrawDateTime, negDeal.withdrawDateTime) && + Objects.equals(dateTime, negDeal.dateTime); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + negDealNum, + negDealTime, + flags, + brokerRef, + userId, + firmId, + cpUserId, + cpFirmId, + account, + price, + qty, + matchRef, + settleCode, + yield, + accruedInt, + value, + price2, + repoRate, + refundRate, + transId, + clientCode, + repoEntry, + repoValue, + repo2Value, + repoTerm, + startDiscount, + lowerDiscount, + upperDiscount, + blockSecurities, + uid, + withdrawTime, + negDealDate, + balance, + originRepoValue, + originQty, + originDiscount, + negDealActivationDate, + negDealActivationTime, + quoteNo, + settleCurrency, + secCode, + classCode, + bankAccId, + withdrawDate, + linkedOrder, + activationDateTime, + withdrawDateTime, + dateTime + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("neg_deal_num", negDealNum) + .add("neg_deal_time", negDealTime) + .add("flags", flags) + .add("brokerref", brokerRef) + .add("userid", userId) + .add("firmid", firmId) + .add("cpuserid", cpUserId) + .add("cpfirmid", cpFirmId) + .add("account", account) + .add("price", price) + .add("qty", qty) + .add("matchref", matchRef) + .add("settlecode", settleCode) + .add("yield", yield) + .add("accruedint", accruedInt) + .add("value", value) + .add("price2", price2) + .add("reporate", repoRate) + .add("refundrate", refundRate) + .add("trans_id", transId) + .add("client_code", clientCode) + .add("repoentry", repoEntry) + .add("repovalue", repoValue) + .add("repo2value", repo2Value) + .add("repoterm", repoTerm) + .add("start_discount", startDiscount) + .add("lower_discount", lowerDiscount) + .add("upper_discount", upperDiscount) + .add("block_securities", blockSecurities) + .add("uid", uid) + .add("withdraw_time", withdrawTime) + .add("neg_deal_date", negDealDate) + .add("balance", balance) + .add("origin_repovalue", originRepoValue) + .add("origin_qty", originQty) + .add("origin_discount", originDiscount) + .add("neg_deal_activation_date", negDealActivationDate) + .add("neg_deal_activation_time", negDealActivationTime) + .add("quoteno", quoteNo) + .add("settle_currency", settleCurrency) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("bank_acc_id", bankAccId) + .add("withdraw_date", withdrawDate) + .add("linkedorder", linkedOrder) + .add("activation_date_time", activationDateTime) + .add("withdraw_date_time", withdrawDateTime) + .add("date_time", dateTime) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index ce71abd..2c7f623 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -118,7 +118,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onAccountPosition( serdeModule.deserialize(AccountPosition.class, eventData) ); break; case ON_NEG_DEAL: - eventHandler.onNegDeal( QluaStructures.NegDeal.parseFrom(event.getData()) ); + eventHandler.onNegDeal( serdeModule.deserialize(NegDeal.class, eventData) ); break; case ON_NEG_TRADE: eventHandler.onNegTrade( QluaStructures.NegTrade.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java new file mode 100644 index 0000000..6478782 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.events.api.structures.NegDeal; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class NegDealJsonDeserializer extends JsonDeserializer { + + @Override + public NegDeal deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return NegDeal.builder() + .negDealNum( node.get("neg_deal_num").asLong() ) + .negDealTime( asText(node, "neg_deal_time") ) + .flags( node.get("flags").asInt() ) + .brokerRef( asText(node, "brokerref") ) + .userId( asText(node, "userid") ) + .firmId( asText(node, "firmid") ) + .cpUserId( asText(node, "cpuserid") ) + .cpFirmId( asText(node, "cpfirmid") ) + .account( asText(node, "account") ) + .price( node.get("price").asText() ) + .qty( node.get("qty").asInt() ) + .matchRef( asText(node, "matchref") ) + .settleCode( asText(node, "settlecode") ) + .yield( asText(node, "yield") ) + .accruedInt( asText(node, "accruedint") ) + .value( asText(node, "value") ) + .price2( asText(node, "price2") ) + .repoRate( asText(node, "reporate") ) + .refundRate( asText(node, "refundrate") ) + .transId( asText(node, "trans_id") ) + .clientCode( asText(node, "client_code") ) + .repoEntry( node.get("repoentry").asInt() ) + .repoValue( asText(node, "repovalue") ) + .repo2Value( asText(node, "repo2value") ) + .repoTerm( asText(node, "repoterm") ) + .startDiscount( asText(node, "start_discount") ) + .lowerDiscount( asText(node, "lower_discount") ) + .upperDiscount( asText(node, "upper_discount") ) + .blockSecurities( asText(node, "block_securities") ) + .uid( asText(node, "uid") ) + .withdrawTime( asText(node, "withdraw_time") ) + .negDealDate( asText(node, "neg_deal_date") ) + .balance( asText(node, "balance") ) + .originRepoValue( asText(node, "origin_repovalue") ) + .originQty( asText(node, "origin_qty") ) + .originDiscount( asText(node, "origin_discount") ) + .negDealActivationDate( asText(node, "neg_deal_activation_date") ) + .negDealActivationTime( asText(node, "neg_deal_activation_time") ) + .quoteNo( asText(node, "quoteno") ) + .settleCurrency( asText(node, "settle_currency") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .bankAccId( asText(node, "bank_acc_id") ) + .withdrawDate( asText(node, "withdraw_date") ) + .linkedOrder( asText(node, "linkedorder") ) + .activationDateTime( node.get("activation_date_time") == null ? null : node.get("activation_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .withdrawDateTime( node.get("withdraw_date_time") == null ? null : node.get("withdraw_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .dateTime( node.get("date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 6eb8e3e..12dc1bf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -24,6 +24,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); + super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From be210ff9889f119636f033762f208b1e43c69e70 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 22:51:16 +0300 Subject: [PATCH 027/549] Added the TransReply domain class. --- .../rpc/events/api/LoggingEventHandler.java | 4 +- .../lua/rpc/events/api/QluaEventHandler.java | 4 +- .../rpc/events/api/structures/TransReply.java | 163 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/QluaJsonJacksonDeserializers.java | 1 + .../jackson/TransReplyJsonDeserializer.java | 44 +++++ 6 files changed, 213 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 9a1ff82..cfd58eb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -122,8 +122,8 @@ public void onStopOrder(final QluaStructures.StopOrder stopOrder) { } @Override - public void onTransReply(final QluaStructures.Transaction transaction) { - LOGGER.info("onTransReply:\n{}", transaction); + public void onTransReply(final TransReply transReply) { + LOGGER.info("onTransReply:\n{}", transReply); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index c48da04..430962d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -201,9 +201,9 @@ default void onStopOrder(final QluaStructures.StopOrder stopOrder) {} * Событие не происходит для транзакций, отправленных с помощью Trans2quik.dll, QPILE, или динамической загрузки * транзакций из файла. * - * @param transaction описание транзакции + * @param transReply описание транзакции */ - default void onTransReply(final QluaStructures.Transaction transaction) {} + default void onTransReply(final TransReply transReply) {} /** * Функция обратного вызова для события терминала OnParam. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java new file mode 100644 index 0000000..45d62b3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java @@ -0,0 +1,163 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class TransReply { + + long transId; + int status; + String resultMsg; + DateTimeEntry dateTime; + String uid; + int flags; + String serverTransId; + String orderNum; + String price; + String quantity; + String balance; + String firmId; + String account; + String clientCode; + String brokerRef; + String classCode; + String secCode; + String exchangeCode; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private TransReply( + final long transId, + final int status, + final String resultMsg, + final DateTimeEntry dateTime, + final String uid, + final int flags, + final String serverTransId, + final String orderNum, + final String price, + final String quantity, + final String balance, + final String firmId, + final String account, + final String clientCode, + final String brokerRef, + final String classCode, + final String secCode, + final String exchangeCode) { + + this.transId = transId; + this.status = status; + this.resultMsg = resultMsg; + this.dateTime = dateTime; + this.uid = uid; + this.flags = flags; + this.serverTransId = serverTransId; + this.orderNum = orderNum; + this.price = price; + this.quantity = quantity; + this.balance = balance; + this.firmId = firmId; + this.account = account; + this.clientCode = clientCode; + this.brokerRef = brokerRef; + this.classCode = classCode; + this.secCode = secCode; + this.exchangeCode = exchangeCode; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof TransReply) ) { + return false; + } else { + final TransReply that = (TransReply) o; + return transId == that.transId && + status == that.status && + flags == that.flags && + Objects.equals(resultMsg, that.resultMsg) && + Objects.equals(dateTime, that.dateTime) && + Objects.equals(uid, that.uid) && + Objects.equals(serverTransId, that.serverTransId) && + Objects.equals(orderNum, that.orderNum) && + Objects.equals(price, that.price) && + Objects.equals(quantity, that.quantity) && + Objects.equals(balance, that.balance) && + Objects.equals(firmId, that.firmId) && + Objects.equals(account, that.account) && + Objects.equals(clientCode, that.clientCode) && + Objects.equals(brokerRef, that.brokerRef) && + Objects.equals(classCode, that.classCode) && + Objects.equals(secCode, that.secCode) && + Objects.equals(exchangeCode, that.exchangeCode); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + transId, + status, + resultMsg, + dateTime, + uid, + flags, + serverTransId, + orderNum, + price, + quantity, + balance, + firmId, + account, + clientCode, + brokerRef, + classCode, + secCode, + exchangeCode + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("trans_id", transId) + .add("status", status) + .add("result_msg", resultMsg) + .add("date_time", dateTime) + .add("uid", uid) + .add("flags", flags) + .add("server_trans_id", serverTransId) + .add("order_num", orderNum) + .add("price", price) + .add("quantity", quantity) + .add("balance", balance) + .add("firm_id", firmId) + .add("account", account) + .add("client_code", clientCode) + .add("brokerref", brokerRef) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("exchange_code", exchangeCode) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 2c7f623..b55181f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -127,7 +127,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onStopOrder( QluaStructures.StopOrder.parseFrom(event.getData()) ); break; case ON_TRANS_REPLY: - eventHandler.onTransReply( QluaStructures.Transaction.parseFrom(event.getData()) ); + eventHandler.onTransReply( serdeModule.deserialize(TransReply.class, eventData) ); break; case ON_PARAM: eventHandler.onParam( QluaStructures.ParamEventInfo.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 12dc1bf..1d40c17 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -25,6 +25,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); + super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java new file mode 100644 index 0000000..1271d1b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.events.api.structures.TransReply; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class TransReplyJsonDeserializer extends JsonDeserializer { + + @Override + public TransReply deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return TransReply.builder() + .transId( node.get("trans_id").asLong() ) + .status( node.get("status").asInt() ) + .resultMsg( asText(node, "result_msg") ) + .dateTime( node.get("date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .uid( node.get("uid").asText() ) + .flags( node.get("flags").asInt() ) + .serverTransId( asText(node, "server_trans_id") ) + .orderNum( asText(node, "order_num") ) + .price( asText(node, "price") ) + .quantity( asText(node, "quantity") ) + .balance( asText(node, "balance") ) + .firmId( asText(node, "firm_id") ) + .account( asText(node, "account") ) + .clientCode( asText(node, "client_code") ) + .brokerRef( asText(node, "brokerref") ) + .classCode( asText(node, "class_code") ) + .secCode( asText(node, "sec_code") ) + .exchangeCode( asText(node, "exchange_code") ) + .build(); + } +} From 81518fb8b6bfae946b9eae6fa08906f8d17248dd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 22:51:41 +0300 Subject: [PATCH 028/549] Implemented Comparable on DateTimeEntry. --- .../events/api/structures/DateTimeEntry.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java index 915d0ec..a17a549 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import com.google.common.collect.ComparisonChain; import lombok.Builder; import lombok.Value; import lombok.experimental.NonFinal; @@ -8,7 +9,7 @@ import java.util.Objects; @Value -public class DateTimeEntry { +public class DateTimeEntry implements Comparable { int mcs; int ms; @@ -71,12 +72,28 @@ public boolean equals(final Object o) { public int hashCode() { if (hashCode == 0) { - hashCode = Objects.hash(super.hashCode(), mcs, ms, sec, min, hour, day, weekDay, month, year); + hashCode = Objects.hash(mcs, ms, sec, min, hour, day, weekDay, month, year); } return hashCode; } + @Override + public int compareTo(final DateTimeEntry other) { + return ComparisonChain + .start() + .compare(year, other.year) + .compare(month, other.month) + .compare(weekDay, other.weekDay) + .compare(day, other.day) + .compare(hour, other.hour) + .compare(min, other.min) + .compare(sec, other.sec) + .compare(ms, other.ms) + .compare(mcs, other.mcs) + .result(); + } + @Override public String toString() { @@ -88,7 +105,7 @@ public String toString() { .add("min", min) .add("hour", hour) .add("day", day) - .add("weekDay", weekDay) + .add("week_day", weekDay) .add("month", month) .add("year", year) .toString(); From 59e8ca2a3611bb24e739da5ed9ecf2c901611711 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 22:57:48 +0300 Subject: [PATCH 029/549] Added the ParamEventInfo domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../events/api/structures/ParamEventInfo.java | 61 +++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../ParamEventInfoJsonDeserializer.java | 25 ++++++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index cfd58eb..3de0c99 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -127,7 +127,7 @@ public void onTransReply(final TransReply transReply) { } @Override - public void onParam(final QluaStructures.ParamEventInfo param) { + public void onParam(final ParamEventInfo param) { LOGGER.info("onParam:\n{}", param); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 430962d..1594dba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -212,7 +212,7 @@ default void onTransReply(final TransReply transReply) {} * * @param param объект, содержащий код бумаги и код класса инструмента, по которому изменились текущие параметры */ - default void onParam(final QluaStructures.ParamEventInfo param) {} + default void onParam(final ParamEventInfo param) {} /** * Функция обратного вызова для события терминала OnQuote. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java new file mode 100644 index 0000000..4d34629 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class ParamEventInfo { + + String classCode; + String secCode; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private ParamEventInfo(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof ParamEventInfo) ) { + return false; + } else { + final ParamEventInfo that = (ParamEventInfo) o; + return Objects.equals(classCode, that.classCode) && + Objects.equals(secCode, that.secCode); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(classCode, secCode); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index b55181f..5b3ef9b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -130,7 +130,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onTransReply( serdeModule.deserialize(TransReply.class, eventData) ); break; case ON_PARAM: - eventHandler.onParam( QluaStructures.ParamEventInfo.parseFrom(event.getData()) ); + eventHandler.onParam( serdeModule.deserialize(ParamEventInfo.class, eventData) ); break; case ON_QUOTE: eventHandler.onQuote( QluaStructures.QuoteEventInfo.parseFrom(event.getData()) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java new file mode 100644 index 0000000..0862097 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.ParamEventInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class ParamEventInfoJsonDeserializer extends JsonDeserializer { + + @Override + public ParamEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return ParamEventInfo + .builder() + .classCode( asText(node, "class_code") ) + .secCode( asText(node, "sec_code") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 1d40c17..baca87e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -26,6 +26,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); + super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } From bf0e53f50974839fb32dab6140fa3949c7d7c6ec Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 23:01:14 +0300 Subject: [PATCH 030/549] Added the QuoteEventInfo domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../events/api/structures/QuoteEventInfo.java | 61 +++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/QluaJsonJacksonDeserializers.java | 1 + .../QuoteEventInfoJsonDeserializer.java | 25 ++++++++ 6 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 3de0c99..b59bbbf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -132,7 +132,7 @@ public void onParam(final ParamEventInfo param) { } @Override - public void onQuote(final QluaStructures.QuoteEventInfo quote) { + public void onQuote(final QuoteEventInfo quote) { LOGGER.info("onQuote:\n{}", quote); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 1594dba..388c1d2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -221,7 +221,7 @@ default void onParam(final ParamEventInfo param) {} * * @param quote объект, содержащий код бумаги и код класса инструмента, по которому изменился стакан котировок */ - default void onQuote(final QluaStructures.QuoteEventInfo quote) {} + default void onQuote(final QuoteEventInfo quote) {} /** * Функция обратного вызова для события терминала OnCleanUp. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java new file mode 100644 index 0000000..73332cb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class QuoteEventInfo { + + String classCode; + String secCode; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private QuoteEventInfo(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof QuoteEventInfo) ) { + return false; + } else { + final QuoteEventInfo that = (QuoteEventInfo) o; + return Objects.equals(classCode, that.classCode) && + Objects.equals(secCode, that.secCode); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(classCode, secCode); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 5b3ef9b..c7f533a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -133,7 +133,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onParam( serdeModule.deserialize(ParamEventInfo.class, eventData) ); break; case ON_QUOTE: - eventHandler.onQuote( QluaStructures.QuoteEventInfo.parseFrom(event.getData()) ); + eventHandler.onQuote( serdeModule.deserialize(QuoteEventInfo.class, eventData) ); break; case ON_CLEAN_UP: eventHandler.onCleanUp(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index baca87e..88d3bf6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -27,6 +27,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); + super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java new file mode 100644 index 0000000..fe66a57 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.QuoteEventInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class QuoteEventInfoJsonDeserializer extends JsonDeserializer { + + @Override + public QuoteEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return QuoteEventInfo + .builder() + .classCode( asText(node, "class_code") ) + .secCode( asText(node, "sec_code") ) + .build(); + } +} From c1d9de9cc05ee15e4ea7f0531ebf943d36c1a199 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 23:04:10 +0300 Subject: [PATCH 031/549] Fixed a typo. --- .../quik/lua/rpc/events/api/structures/AccountBalance.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java index 28587ec..041d8b2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java @@ -122,7 +122,7 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmId", firmId) + .add("firmid", firmId) .add("sec_code", secCode) .add("trdaccid", trdAccId) .add("depaccid", depAccId) From b1751dd8a070b50ca79491e35298280c37a3a3d1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 23:05:15 +0300 Subject: [PATCH 032/549] Added toString implementation. --- .../lua/rpc/events/api/structures/ConnectedEventInfo.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java index c607f3c..9d81a7b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java @@ -1,9 +1,17 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.google.common.base.MoreObjects; import lombok.Value; @Value public class ConnectedEventInfo { int flag; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("flag", flag) + .toString(); + } } From 4fca646fd5b8e99509d318aa3476b6d9f442b781 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 23:28:49 +0300 Subject: [PATCH 033/549] Added the StopOrder domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../rpc/events/api/structures/StopOrder.java | 271 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/QluaJsonJacksonDeserializers.java | 1 + .../jackson/StopOrderJsonDeserializer.java | 62 ++++ 6 files changed, 337 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index b59bbbf..c9f3a7e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -117,7 +117,7 @@ public void onNegTrade(final QluaStructures.NegTrade negTrade) { } @Override - public void onStopOrder(final QluaStructures.StopOrder stopOrder) { + public void onStopOrder(final StopOrder stopOrder) { LOGGER.info("onStopOrder:\n{}", stopOrder); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 388c1d2..e37b601 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -191,7 +191,7 @@ default void onNegTrade(final QluaStructures.NegTrade negTrade) {} * * @param stopOrder стоп-заявка */ - default void onStopOrder(final QluaStructures.StopOrder stopOrder) {} + default void onStopOrder(final StopOrder stopOrder) {} /** * Функция обратного вызова для события терминала OnTransReply. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java new file mode 100644 index 0000000..0b4fb68 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java @@ -0,0 +1,271 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class StopOrder { + + long orderNum; + String orderTime; + int flags; + String brokerRef; + String firmId; + String account; + int condition; + String conditionPrice; + String price; + int qty; + String linkedOrder; + String expiry; + String transId; + String clientCode; + String coOrderNum; + String coOrderPrice; + int stopOrderType; + String orderDate; + String allTradeNum; + int stopFlags; + String offset; + String spread; + String balance; + String uid; + int filledQty; + String withdrawTime; + String conditionPrice2; + String activeFromTime; + String activeToTime; + String secCode; + String classCode; + String conditionSecCode; + String conditionClassCode; + String canceledUid; + DateTimeEntry orderDateTime; + DateTimeEntry withdrawDateTime; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private StopOrder( + final long orderNum, + final String orderTime, + final int flags, + final String brokerRef, + final String firmId, + final String account, + final int condition, + final String conditionPrice, + final String price, + final int qty, + final String linkedOrder, + final String expiry, + final String transId, + final String clientCode, + final String coOrderNum, + final String coOrderPrice, + final int stopOrderType, + final String orderDate, + final String allTradeNum, + final int stopFlags, + final String offset, + final String spread, + final String balance, + final String uid, + final int filledQty, + final String withdrawTime, + final String conditionPrice2, + final String activeFromTime, + final String activeToTime, + final String secCode, + final String classCode, + final String conditionSecCode, + final String conditionClassCode, + final String canceledUid, + final DateTimeEntry orderDateTime, + final DateTimeEntry withdrawDateTime) { + + this.orderNum = orderNum; + this.orderTime = orderTime; + this.flags = flags; + this.brokerRef = brokerRef; + this.firmId = firmId; + this.account = account; + this.condition = condition; + this.conditionPrice = conditionPrice; + this.price = price; + this.qty = qty; + this.linkedOrder = linkedOrder; + this.expiry = expiry; + this.transId = transId; + this.clientCode = clientCode; + this.coOrderNum = coOrderNum; + this.coOrderPrice = coOrderPrice; + this.stopOrderType = stopOrderType; + this.orderDate = orderDate; + this.allTradeNum = allTradeNum; + this.stopFlags = stopFlags; + this.offset = offset; + this.spread = spread; + this.balance = balance; + this.uid = uid; + this.filledQty = filledQty; + this.withdrawTime = withdrawTime; + this.conditionPrice2 = conditionPrice2; + this.activeFromTime = activeFromTime; + this.activeToTime = activeToTime; + this.secCode = secCode; + this.classCode = classCode; + this.conditionSecCode = conditionSecCode; + this.conditionClassCode = conditionClassCode; + this.canceledUid = canceledUid; + this.orderDateTime = orderDateTime; + this.withdrawDateTime = withdrawDateTime; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof StopOrder) ) { + return false; + } else { + final StopOrder stopOrder = (StopOrder) o; + return orderNum == stopOrder.orderNum && + flags == stopOrder.flags && + condition == stopOrder.condition && + qty == stopOrder.qty && + stopOrderType == stopOrder.stopOrderType && + stopFlags == stopOrder.stopFlags && + filledQty == stopOrder.filledQty && + Objects.equals(orderTime, stopOrder.orderTime) && + Objects.equals(brokerRef, stopOrder.brokerRef) && + Objects.equals(firmId, stopOrder.firmId) && + Objects.equals(account, stopOrder.account) && + Objects.equals(conditionPrice, stopOrder.conditionPrice) && + Objects.equals(price, stopOrder.price) && + Objects.equals(linkedOrder, stopOrder.linkedOrder) && + Objects.equals(expiry, stopOrder.expiry) && + Objects.equals(transId, stopOrder.transId) && + Objects.equals(clientCode, stopOrder.clientCode) && + Objects.equals(coOrderNum, stopOrder.coOrderNum) && + Objects.equals(coOrderPrice, stopOrder.coOrderPrice) && + Objects.equals(orderDate, stopOrder.orderDate) && + Objects.equals(allTradeNum, stopOrder.allTradeNum) && + Objects.equals(offset, stopOrder.offset) && + Objects.equals(spread, stopOrder.spread) && + Objects.equals(balance, stopOrder.balance) && + Objects.equals(uid, stopOrder.uid) && + Objects.equals(withdrawTime, stopOrder.withdrawTime) && + Objects.equals(conditionPrice2, stopOrder.conditionPrice2) && + Objects.equals(activeFromTime, stopOrder.activeFromTime) && + Objects.equals(activeToTime, stopOrder.activeToTime) && + Objects.equals(secCode, stopOrder.secCode) && + Objects.equals(classCode, stopOrder.classCode) && + Objects.equals(conditionSecCode, stopOrder.conditionSecCode) && + Objects.equals(conditionClassCode, stopOrder.conditionClassCode) && + Objects.equals(canceledUid, stopOrder.canceledUid) && + Objects.equals(orderDateTime, stopOrder.orderDateTime) && + Objects.equals(withdrawDateTime, stopOrder.withdrawDateTime); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + orderNum, + orderTime, + flags, + brokerRef, + firmId, + account, + condition, + conditionPrice, + price, + qty, + linkedOrder, + expiry, + transId, + clientCode, + coOrderNum, + coOrderPrice, + stopOrderType, + orderDate, + allTradeNum, + stopFlags, + offset, + spread, + balance, + uid, + filledQty, + withdrawTime, + conditionPrice2, + activeFromTime, + activeToTime, + secCode, + classCode, + conditionSecCode, + conditionClassCode, + canceledUid, + orderDateTime, + withdrawDateTime + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("order_num", orderNum) + .add("ordertime", orderTime) + .add("flags", flags) + .add("brokerref", brokerRef) + .add("firmid", firmId) + .add("account", account) + .add("condition", condition) + .add("condition_price", conditionPrice) + .add("price", price) + .add("qty", qty) + .add("linkedorder", linkedOrder) + .add("expiry", expiry) + .add("trans_id", transId) + .add("client_code", clientCode) + .add("co_order_num", coOrderNum) + .add("co_order_price", coOrderPrice) + .add("stop_order_type", stopOrderType) + .add("orderdate", orderDate) + .add("alltrade_num", allTradeNum) + .add("stopflags", stopFlags) + .add("offset", offset) + .add("spread", spread) + .add("balance", balance) + .add("uid", uid) + .add("filled_qty", filledQty) + .add("withdraw_time", withdrawTime) + .add("condition_price2", conditionPrice2) + .add("active_from_time", activeFromTime) + .add("active_to_time", activeToTime) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("condition_sec_code", conditionSecCode) + .add("condition_class_code", conditionClassCode) + .add("canceled_uid", canceledUid) + .add("order_date_time", orderDateTime) + .add("withdraw_datetime", withdrawDateTime) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index c7f533a..c0c03aa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -124,7 +124,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onNegTrade( QluaStructures.NegTrade.parseFrom(event.getData()) ); break; case ON_STOP_ORDER: - eventHandler.onStopOrder( QluaStructures.StopOrder.parseFrom(event.getData()) ); + eventHandler.onStopOrder( serdeModule.deserialize(StopOrder.class, eventData) ); break; case ON_TRANS_REPLY: eventHandler.onTransReply( serdeModule.deserialize(TransReply.class, eventData) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 88d3bf6..bf528a4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -25,6 +25,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); + super.addDeserializer(StopOrder.class, new StopOrderJsonDeserializer()); super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java new file mode 100644 index 0000000..926af17 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.events.api.structures.StopOrder; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class StopOrderJsonDeserializer extends JsonDeserializer { + + @Override + public StopOrder deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return StopOrder.builder() + .orderNum( node.get("order_num").asLong() ) + .orderTime( asText(node, "ordertime") ) + .flags( node.get("flags").asInt() ) + .brokerRef( asText(node, "brokerref") ) + .firmId( asText(node, "firmid") ) + .account( asText(node, "account") ) + .condition( node.get("condition").asInt() ) + .conditionPrice( asText(node, "condition_price") ) + .price( node.get("price").asText() ) + .qty( node.get("qty").asInt() ) + .linkedOrder( asText(node, "linkedorder") ) + .expiry( asText(node, "expiry") ) + .transId( asText(node, "trans_id") ) + .clientCode( asText(node, "client_code") ) + .coOrderNum( asText(node, "co_order_num") ) + .coOrderPrice( asText(node, "co_order_price") ) + .stopOrderType( node.get("stop_order_type").asInt() ) + .orderDate( asText(node, "orderdate") ) + .allTradeNum( asText(node, "alltrade_num") ) + .stopFlags( node.get("stopflags").asInt() ) + .offset( asText(node, "offset") ) + .spread( asText(node, "spread") ) + .balance( asText(node, "balance") ) + .uid( asText(node, "uid") ) + .filledQty( node.get("filled_qty").asInt() ) + .withdrawTime( asText(node, "withdraw_time") ) + .conditionPrice2( asText(node, "condition_price2") ) + .activeFromTime( asText(node, "active_from_time") ) + .activeToTime( asText(node, "active_to_time") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .conditionSecCode( asText(node, "condition_sec_code") ) + .conditionClassCode( asText(node, "condition_class_code") ) + .canceledUid( asText(node, "canceled_uid") ) + .orderDateTime( node.get("order_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .withdrawDateTime( node.get("withdraw_datetime") == null ? null : node.get("withdraw_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .build(); + } +} From 1316ab51543e4cd21f51c7cd317009ae7b3f9005 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 16 Jul 2018 23:37:30 +0300 Subject: [PATCH 034/549] Introduced a bit of thread-safety. --- .../lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index c0c03aa..c3f9122 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -9,8 +9,8 @@ import qlua.structs.QluaStructures; import java.io.IOException; -import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import static java.util.Objects.requireNonNull; @@ -19,7 +19,9 @@ *
* Связь с quik-lua-rpc происходит по протоколу TCP с помощью ZeroMQ. *
- * Экземпляры класса не потокобезопасны. + * Экземпляры класса не потокобезопасны, за исключением методов {@link #register(QluaEventHandler eventHandler)}, + * {@link #unregister(QluaEventHandler eventHandler)}, {@link #register(Iterable eventHandlers)} и + * {@link #unregister(Iterable eventHandlers)}. * * @see quik-lua-rpc * @see ZeroMQ - Distributed Messaging @@ -54,7 +56,7 @@ private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final this.eventPoller = requireNonNull(eventPoller, "Аргумент 'eventPoller' не должен быть null."); this.serdeModule = requireNonNull(serdeModule, "Аргумент 'serdeModule' не должен быть null."); - this.eventHandlers = new ArrayList<>(1); + this.eventHandlers = new CopyOnWriteArrayList<>(); } @Override From a36cdb47cfdb8a9a181f53eeb30e78f04ec131e2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 20 Jul 2018 02:00:56 +0300 Subject: [PATCH 035/549] Added the NegTrade domain class. --- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../rpc/events/api/structures/NegTrade.java | 421 ++++++++++++++++++ .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../jackson/NegTradeJsonDeserializer.java | 84 ++++ .../jackson/QluaJsonJacksonDeserializers.java | 1 + 6 files changed, 509 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index c9f3a7e..83f723e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -112,7 +112,7 @@ public void onNegDeal(final NegDeal negDeal) { } @Override - public void onNegTrade(final QluaStructures.NegTrade negTrade) { + public void onNegTrade(final NegTrade negTrade) { LOGGER.info("onNegTrade:\n{}", negTrade); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index e37b601..868c721 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -182,7 +182,7 @@ default void onNegDeal(final NegDeal negDeal) {} * * @param negTrade сделка для исполнения */ - default void onNegTrade(final QluaStructures.NegTrade negTrade) {} + default void onNegTrade(final NegTrade negTrade) {} /** * Функция обратного вызова для события терминала OnStopOrder. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java new file mode 100644 index 0000000..2857899 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java @@ -0,0 +1,421 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class NegTrade { + + long tradeNum; + String tradeDate; + String settleDate; + int flags; + String brokerRef; + String firmId; + String account; + String cpFirmId; + String cpAccount; + String price; + int qty; + String value; + String settleCode; + String reportNum; + String cpReportNum; + String accruedInt; + String repoTradeNo; + String price1; + String repoRate; + String price2; + String clientCode; + String tsComission; + String balance; + String settleTime; + String amount; + String repoValue; + String repoTerm; + String repo2Value; + String returnValue; + String discount; + String lowerDiscount; + String upperDiscount; + String blockSecurities; + String urgencyFlag; + int type; + int operationType; + String expectedDiscount; + String expectedQuantity; + String expectedRepoValue; + String expectedRepo2Value; + String expectedReturnValue; + String orderNum; + String reportTradeDate; + int settled; + int clearingType; + String reportComission; + String couponPayment; + String principalPayment; + String principalPaymentDate; + String nextDaySettle; + String settleCurrency; + String secCode; + String classCode; + String compVal; + String parentTradeNo; + String bankId; + String bankAccId; + String preciseBalance; + String confirmTime; + int exFlags; + String confirmReport; + + private transient @NonFinal int hashCode; + private transient @NonFinal String asString; + + @Builder + private NegTrade( + final long tradeNum, + final String tradeDate, + final String settleDate, + final int flags, + final String brokerRef, + final String firmId, + final String account, + final String cpFirmId, + final String cpAccount, + final String price, + final int qty, + final String value, + final String settleCode, + final String reportNum, + final String cpReportNum, + final String accruedInt, + final String repoTradeNo, + final String price1, + final String repoRate, + final String price2, + final String clientCode, + final String tsComission, + final String balance, + final String settleTime, + final String amount, + final String repoValue, + final String repoTerm, + final String repo2Value, + final String returnValue, + final String discount, + final String lowerDiscount, + final String upperDiscount, + final String blockSecurities, + final String urgencyFlag, + final int type, + final int operationType, + final String expectedDiscount, + final String expectedQuantity, + final String expectedRepoValue, + final String expectedRepo2Value, + final String expectedReturnValue, + final String orderNum, + final String reportTradeDate, + final int settled, + final int clearingType, + final String reportComission, + final String couponPayment, + final String principalPayment, + final String principalPaymentDate, + final String nextDaySettle, + final String settleCurrency, + final String secCode, + final String classCode, + final String compVal, + final String parentTradeNo, + final String bankId, + final String bankAccId, + final String preciseBalance, + final String confirmTime, + final int exFlags, + final String confirmReport) { + + this.tradeNum = tradeNum; + this.tradeDate = tradeDate; + this.settleDate = settleDate; + this.flags = flags; + this.brokerRef = brokerRef; + this.firmId = firmId; + this.account = account; + this.cpFirmId = cpFirmId; + this.cpAccount = cpAccount; + this.price = price; + this.qty = qty; + this.value = value; + this.settleCode = settleCode; + this.reportNum = reportNum; + this.cpReportNum = cpReportNum; + this.accruedInt = accruedInt; + this.repoTradeNo = repoTradeNo; + this.price1 = price1; + this.repoRate = repoRate; + this.price2 = price2; + this.clientCode = clientCode; + this.tsComission = tsComission; + this.balance = balance; + this.settleTime = settleTime; + this.amount = amount; + this.repoValue = repoValue; + this.repoTerm = repoTerm; + this.repo2Value = repo2Value; + this.returnValue = returnValue; + this.discount = discount; + this.lowerDiscount = lowerDiscount; + this.upperDiscount = upperDiscount; + this.blockSecurities = blockSecurities; + this.urgencyFlag = urgencyFlag; + this.type = type; + this.operationType = operationType; + this.expectedDiscount = expectedDiscount; + this.expectedQuantity = expectedQuantity; + this.expectedRepoValue = expectedRepoValue; + this.expectedRepo2Value = expectedRepo2Value; + this.expectedReturnValue = expectedReturnValue; + this.orderNum = orderNum; + this.reportTradeDate = reportTradeDate; + this.settled = settled; + this.clearingType = clearingType; + this.reportComission = reportComission; + this.couponPayment = couponPayment; + this.principalPayment = principalPayment; + this.principalPaymentDate = principalPaymentDate; + this.nextDaySettle = nextDaySettle; + this.settleCurrency = settleCurrency; + this.secCode = secCode; + this.classCode = classCode; + this.compVal = compVal; + this.parentTradeNo = parentTradeNo; + this.bankId = bankId; + this.bankAccId = bankAccId; + this.preciseBalance = preciseBalance; + this.confirmTime = confirmTime; + this.exFlags = exFlags; + this.confirmReport = confirmReport; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof NegTrade) ) { + return false; + } else { + final NegTrade negTrade = (NegTrade) o; + return tradeNum == negTrade.tradeNum && + flags == negTrade.flags && + qty == negTrade.qty && + type == negTrade.type && + operationType == negTrade.operationType && + settled == negTrade.settled && + clearingType == negTrade.clearingType && + exFlags == negTrade.exFlags && + Objects.equals(tradeDate, negTrade.tradeDate) && + Objects.equals(settleDate, negTrade.settleDate) && + Objects.equals(brokerRef, negTrade.brokerRef) && + Objects.equals(firmId, negTrade.firmId) && + Objects.equals(account, negTrade.account) && + Objects.equals(cpFirmId, negTrade.cpFirmId) && + Objects.equals(cpAccount, negTrade.cpAccount) && + Objects.equals(price, negTrade.price) && + Objects.equals(value, negTrade.value) && + Objects.equals(settleCode, negTrade.settleCode) && + Objects.equals(reportNum, negTrade.reportNum) && + Objects.equals(cpReportNum, negTrade.cpReportNum) && + Objects.equals(accruedInt, negTrade.accruedInt) && + Objects.equals(repoTradeNo, negTrade.repoTradeNo) && + Objects.equals(price1, negTrade.price1) && + Objects.equals(repoRate, negTrade.repoRate) && + Objects.equals(price2, negTrade.price2) && + Objects.equals(clientCode, negTrade.clientCode) && + Objects.equals(tsComission, negTrade.tsComission) && + Objects.equals(balance, negTrade.balance) && + Objects.equals(settleTime, negTrade.settleTime) && + Objects.equals(amount, negTrade.amount) && + Objects.equals(repoValue, negTrade.repoValue) && + Objects.equals(repoTerm, negTrade.repoTerm) && + Objects.equals(repo2Value, negTrade.repo2Value) && + Objects.equals(returnValue, negTrade.returnValue) && + Objects.equals(discount, negTrade.discount) && + Objects.equals(lowerDiscount, negTrade.lowerDiscount) && + Objects.equals(upperDiscount, negTrade.upperDiscount) && + Objects.equals(blockSecurities, negTrade.blockSecurities) && + Objects.equals(urgencyFlag, negTrade.urgencyFlag) && + Objects.equals(expectedDiscount, negTrade.expectedDiscount) && + Objects.equals(expectedQuantity, negTrade.expectedQuantity) && + Objects.equals(expectedRepoValue, negTrade.expectedRepoValue) && + Objects.equals(expectedRepo2Value, negTrade.expectedRepo2Value) && + Objects.equals(expectedReturnValue, negTrade.expectedReturnValue) && + Objects.equals(orderNum, negTrade.orderNum) && + Objects.equals(reportTradeDate, negTrade.reportTradeDate) && + Objects.equals(reportComission, negTrade.reportComission) && + Objects.equals(couponPayment, negTrade.couponPayment) && + Objects.equals(principalPayment, negTrade.principalPayment) && + Objects.equals(principalPaymentDate, negTrade.principalPaymentDate) && + Objects.equals(nextDaySettle, negTrade.nextDaySettle) && + Objects.equals(settleCurrency, negTrade.settleCurrency) && + Objects.equals(secCode, negTrade.secCode) && + Objects.equals(classCode, negTrade.classCode) && + Objects.equals(compVal, negTrade.compVal) && + Objects.equals(parentTradeNo, negTrade.parentTradeNo) && + Objects.equals(bankId, negTrade.bankId) && + Objects.equals(bankAccId, negTrade.bankAccId) && + Objects.equals(preciseBalance, negTrade.preciseBalance) && + Objects.equals(confirmTime, negTrade.confirmTime) && + Objects.equals(confirmReport, negTrade.confirmReport); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + tradeNum, + tradeDate, + settleDate, + flags, + brokerRef, + firmId, + account, + cpFirmId, + cpAccount, + price, + qty, + value, + settleCode, + reportNum, + cpReportNum, + accruedInt, + repoTradeNo, + price1, + repoRate, + price2, + clientCode, + tsComission, + balance, + settleTime, + amount, + repoValue, + repoTerm, + repo2Value, + returnValue, + discount, + lowerDiscount, + upperDiscount, + blockSecurities, + urgencyFlag, + type, + operationType, + expectedDiscount, + expectedQuantity, + expectedRepoValue, + expectedRepo2Value, + expectedReturnValue, + orderNum, + reportTradeDate, + settled, + clearingType, + reportComission, + couponPayment, + principalPayment, + principalPaymentDate, + nextDaySettle, + settleCurrency, + secCode, + classCode, + compVal, + parentTradeNo, + bankId, + bankAccId, + preciseBalance, + confirmTime, + exFlags, + confirmReport + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("trade_num", tradeNum) + .add("trade_date", tradeDate) + .add("settle_date", settleDate) + .add("flags", flags) + .add("brokerref", brokerRef) + .add("firmid", firmId) + .add("account", account) + .add("cpfirmid", cpFirmId) + .add("cpaccount", cpAccount) + .add("price", price) + .add("qty", qty) + .add("value", value) + .add("settlecode", settleCode) + .add("report_num", reportNum) + .add("cpreport_num", cpReportNum) + .add("accruedint", accruedInt) + .add("repotradeno", repoTradeNo) + .add("price1", price1) + .add("reporate", repoRate) + .add("price2", price2) + .add("client_code", clientCode) + .add("ts_comission", tsComission) + .add("balance", balance) + .add("settle_time", settleTime) + .add("amount", amount) + .add("repovalue", repoValue) + .add("repoterm", repoTerm) + .add("repo2value", repo2Value) + .add("return_value", returnValue) + .add("discount", discount) + .add("lower_discount", lowerDiscount) + .add("upper_discount", upperDiscount) + .add("block_securities", blockSecurities) + .add("urgency_flag", urgencyFlag) + .add("type", type) + .add("operation_type", operationType) + .add("expected_discount", expectedDiscount) + .add("expected_quantity", expectedQuantity) + .add("expected_repovalue", expectedRepoValue) + .add("expected_repo2value", expectedRepo2Value) + .add("expected_return_value", expectedReturnValue) + .add("order_num", orderNum) + .add("report_trade_date", reportTradeDate) + .add("settled", settled) + .add("clearing_type", clearingType) + .add("report_comission", reportComission) + .add("coupon_payment", couponPayment) + .add("principal_payment", principalPayment) + .add("principal_payment_date", principalPaymentDate) + .add("nextdaysettle", nextDaySettle) + .add("settle_currency", settleCurrency) + .add("sec_code", secCode) + .add("class_code", classCode) + .add("compval", compVal) + .add("parenttradeno", parentTradeNo) + .add("bankid", bankId) + .add("bankaccid", bankAccId) + .add("precisebalance", preciseBalance) + .add("confirmtime", confirmTime) + .add("ex_flags", exFlags) + .add("confirmreport", confirmReport) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index c3f9122..bb679a6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -123,7 +123,7 @@ public void process() throws QluaEventProcessingException { eventHandler.onNegDeal( serdeModule.deserialize(NegDeal.class, eventData) ); break; case ON_NEG_TRADE: - eventHandler.onNegTrade( QluaStructures.NegTrade.parseFrom(event.getData()) ); + eventHandler.onNegTrade( serdeModule.deserialize(NegTrade.class, eventData) ); break; case ON_STOP_ORDER: eventHandler.onStopOrder( serdeModule.deserialize(StopOrder.class, eventData) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java new file mode 100644 index 0000000..e1eefa6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java @@ -0,0 +1,84 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.events.api.structures.NegTrade; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class NegTradeJsonDeserializer extends JsonDeserializer { + + @Override + public NegTrade deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + + return NegTrade.builder() + .tradeNum( node.get("trade_num").asLong() ) + .tradeDate( asText(node, "trade_date") ) + .settleDate( asText(node, "settle_date") ) + .flags( node.get("flags").asInt() ) + .brokerRef( asText(node, "brokerref") ) + .firmId( asText(node, "firmid") ) + .account( asText(node, "account") ) + .cpFirmId( asText(node, "cpfirmid") ) + .cpAccount( asText(node, "cpaccount") ) + .price( node.get("price").asText() ) + .qty( node.get("qty").asInt() ) + .value( asText(node, "value") ) + .settleCode( asText(node, "settlecode") ) + .reportNum( asText(node, "report_num") ) + .cpReportNum( asText(node, "cpreport_num") ) + .accruedInt( asText(node, "accruedint") ) + .repoTradeNo( asText(node, "repotradeno") ) + .price1( asText(node, "price1") ) + .repoRate( asText(node, "reporate") ) + .price2( asText(node,"price2") ) + .clientCode( asText(node, "client_code") ) + .tsComission( asText(node, "ts_comission") ) + .balance( asText(node, "balance") ) + .settleTime( asText(node, "settle_time") ) + .amount( asText(node, "amount") ) + .repoValue( asText(node, "repovalue") ) + .repoTerm( asText(node, "repoterm") ) + .repo2Value( asText(node, "repo2value") ) + .returnValue( asText(node, "return_value") ) + .discount( asText(node, "discount") ) + .lowerDiscount( asText(node, "lower_discount") ) + .upperDiscount( asText(node, "upper_discount") ) + .blockSecurities( asText(node, "block_securities") ) + .urgencyFlag( asText(node, "urgency_flag") ) + .type( node.get("type").asInt() ) + .operationType( node.get("operation_type").asInt() ) + .expectedDiscount( asText(node, "expected_discount") ) + .expectedQuantity( asText(node, "expected_quantity") ) + .expectedRepoValue( asText(node, "expected_repovalue") ) + .expectedRepo2Value( asText(node, "expected_repo2value") ) + .expectedReturnValue( asText(node, "expected_return_value") ) + .orderNum( asText(node, "order_num") ) + .reportTradeDate( asText(node, "report_trade_date") ) + .settled( node.get("settled").asInt() ) + .clearingType( node.get("clearing_type").asInt() ) + .reportComission( asText(node, "report_comission") ) + .couponPayment( asText(node, "coupon_payment") ) + .principalPayment( asText(node, "principal_payment") ) + .principalPaymentDate( asText(node, "principal_payment_date") ) + .nextDaySettle( asText(node, "nextdaysettle") ) + .settleCurrency( asText(node, "settle_currency") ) + .secCode( asText(node, "sec_code") ) + .classCode( asText(node, "class_code") ) + .compVal( asText(node, "compval") ) + .parentTradeNo( asText(node, "parenttradeno") ) + .bankId( asText(node, "bankid") ) + .bankAccId( asText(node, "bankaccid") ) + .preciseBalance( asText(node, "precisebalance") ) + .confirmTime( asText(node, "confirmtime") ) + .exFlags( node.get("ex_flags").asInt() ) + .confirmReport( asText(node, "confirmreport") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index bf528a4..93548a7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -25,6 +25,7 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); + super.addDeserializer(NegTrade.class, new NegTradeJsonDeserializer()); super.addDeserializer(StopOrder.class, new StopOrderJsonDeserializer()); super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); From 26960b860877e90850b6c0ff07f07c9ba08b1dad Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 20 Jul 2018 02:32:59 +0300 Subject: [PATCH 036/549] Switched the logger implementation to logback. --- pom.xml | 13 ++++--- .../JsonSubscriptionExampleApplication.java | 5 +-- .../rpc/events/api/LoggingEventHandler.java | 2 +- src/main/resources/log4j2.xml | 15 -------- src/main/resources/logback.xml | 35 +++++++++++++++++++ 5 files changed, 46 insertions(+), 24 deletions(-) delete mode 100644 src/main/resources/log4j2.xml create mode 100644 src/main/resources/logback.xml diff --git a/pom.xml b/pom.xml index 622dc9c..7676206 100644 --- a/pom.xml +++ b/pom.xml @@ -57,12 +57,17 @@ 1.7.25
- - org.apache.logging.log4j - log4j-slf4j-impl - 2.10.0 + ch.qos.logback + logback-classic + 1.2.3 runtime + + + slf4j-api + org.slf4j + + diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java index 1dd37e3..1347316 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -50,10 +50,7 @@ public static void main(final String[] args) { ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), JsonSerdeModule.INSTANCE)) { LOGGER.info("Подписка на все события..."); - //eventProcessor.subscribeToEverything(); -// eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); -// eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); - eventProcessor.subscribe(QluaEvent.EventType.ON_ALL_TRADE); + eventProcessor.subscribeToEverything(); LOGGER.info("Регистрация обработчиков событий..."); eventProcessor.register(LoggingEventHandler.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 83f723e..bc9f892 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -14,7 +14,7 @@ public enum LoggingEventHandler implements QluaEventHandler { */ INSTANCE; - private static final Logger LOGGER = LoggerFactory.getLogger(LoggingEventHandler.class); + private static final Logger LOGGER = LoggerFactory.getLogger("qlua-events"); @Override public void onClose() { diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml deleted file mode 100644 index 85558d7..0000000 --- a/src/main/resources/log4j2.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..8a94339 --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,35 @@ + + + + + + %date %-5level [%thread] %20logger - %msg%n + + + + + ./logs/qlua-events.log + + + %date %-5level [%thread] %20logger - %msg%n + + + + + ./logs/app.log + + + %date %-5level [%thread] %20logger - %msg%n + + + + + + + + + + + + + From a4ea7dea96e8407d8e0a513e880fc3ea7c357759 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 23 Jul 2018 00:20:57 +0300 Subject: [PATCH 037/549] Added request-result pairs for AddColumn, AddLabel, AllocTable. --- .../quik/lua/rpc/api/QluaRpcClient.java | 16 +- .../lua/rpc/api/structures/AddColumn.java | 68 ++++++ .../quik/lua/rpc/api/structures/AddLabel.java | 48 ++++ .../lua/rpc/api/structures/AllocTable.java | 22 ++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 210 +++++++++++------- 5 files changed, 275 insertions(+), 89 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 28e6196..7122728 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -1,34 +1,34 @@ package com.enfernuz.quik.lua.rpc.api; import com.enfernuz.quik.lua.rpc.api.security.Securable; +import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; import com.enfernuz.quik.lua.rpc.io.Gateway; -import qlua.rpc.*; import qlua.rpc.bit.*; import qlua.rpc.datasource.*; -import java.util.Set; - /** * Компонент, представляющий собой Java-обёртку над API QLua терминала QUIK. * * @throws RpcClientException в случае возникновения ошибки при удалённом вызове процедуры - * @throws NullPointerException если аргумент {@code args} является {@code null} + * @throws NullPointerException если аргумент {@code request} является null */ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - AddColumn.Result qlua_AddColumn(AddColumn.Request args); + AddColumn.Result qlua_AddColumn(AddColumn.Request request); /** * - * @param args + * @param request * @return */ - AddLabel.Result qlua_AddLabel(AddLabel.Request args); + AddLabel.Result qlua_AddLabel(AddLabel.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java new file mode 100644 index 0000000..8deee8e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class AddColumn { + + private AddColumn() {} + + @Value + public static class Request { + + int tId; + int iCode; + String name; + boolean isDefault; + ColumnParameterType parType; + int width; + + @Builder + private Request( + final int tId, + final int iCode, + final String name, + final boolean isDefault, + final @NonNull ColumnParameterType parType, + final int width) { + + this.tId = tId; + this.iCode = iCode; + this.name = name; + this.isDefault = isDefault; + this.parType = parType; + this.width = width; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("icode", iCode) + .add("name", name) + .add("is_default", isDefault) + .add("par_type", parType) + .add("width", width) + .toString(); + } + } + + @Value + public static class Result { + + int result; + } + + public static enum ColumnParameterType { + + QTABLE_INT_TYPE, + QTABLE_DOUBLE_TYPE, + QTABLE_INT64_TYPE, + QTABLE_CACHED_STRING_TYPE, + QTABLE_TIME_TYPE, + QTABLE_DATE_TYPE, + QTABLE_STRING_TYPE; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java new file mode 100644 index 0000000..eb4a771 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableMap; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +import java.util.Map; + +public final class AddLabel { + + private AddLabel() {} + + @Value + public static class Request { + + String chartTag; + Map labelParams; + + @Builder + public Request(final @NonNull String chartTag, final @NonNull Map labelParams) { + this.chartTag = chartTag; + this.labelParams = ImmutableMap.copyOf(labelParams); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("chart_tag", chartTag) + .add("label_params", labelParams) + .toString(); + } + } + + @Value + public static class Result { + + int labelId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("label_id", labelId) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java new file mode 100644 index 0000000..03c90f2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class AllocTable { + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 93e3fe0..1692d3e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -1,26 +1,42 @@ package com.enfernuz.quik.lua.rpc.api.zmq.impl; -import com.enfernuz.quik.lua.rpc.api.RemoteProcedureCaller; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; +import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; +import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; +import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.protobuf.ByteString; -import com.google.protobuf.MessageLite; -import qlua.rpc.*; +import org.zeromq.ZFrame; +import org.zeromq.ZMQ; +import org.zeromq.ZMsg; +import qlua.rpc.RPC; import qlua.rpc.bit.*; import qlua.rpc.datasource.*; +import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.Objects; import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; /** * Реализация компонента Java-обёртка над API QLua терминала QUIK на базе ZeroMQ. */ public class ZmqTcpQluaRpcClientImpl implements ZmqTcpQluaRpcClient { - private final ZmqTcpRpcGatewayImpl rpcGateway; + private final NetworkAddress networkAddress; + private final String uri; + private ZMQ.Context zmqContext; + private ZMQ.Socket reqSocket; + private final AuthContext authContext; + private boolean isOpened; + + private final SerdeModule serdeModule; /** * Создаёт новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl}, с точкой подключения RPC-сервиса на стороне @@ -32,78 +48,133 @@ public class ZmqTcpQluaRpcClientImpl implements ZmqTcpQluaRpcClient { */ public static ZmqTcpQluaRpcClientImpl newInstance( final NetworkAddress networkAddress, - final AuthContext authContext) { + final AuthContext authContext, + final SerdeModule serdeModule) { - final ZmqTcpRpcGatewayImpl rpcGateway = ZmqTcpRpcGatewayImpl.newInstance(networkAddress, authContext); - return new ZmqTcpQluaRpcClientImpl(rpcGateway); + return new ZmqTcpQluaRpcClientImpl( + requireNonNull(networkAddress, "Аргумент 'networkAddress' не должен быть null."), + requireNonNull(authContext, "Аргумент 'authContext' не должен быть null."), + requireNonNull(serdeModule, "Аргумент 'serdeModule' не должен быть null.") + ); } - private ZmqTcpQluaRpcClientImpl(final ZmqTcpRpcGatewayImpl rpcGateway) { - this.rpcGateway = rpcGateway; + private ZmqTcpQluaRpcClientImpl( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeModule serdeModule) { + + this.networkAddress = networkAddress; + this.authContext = authContext; + this.serdeModule = serdeModule; + this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); } @Override public NetworkAddress getNetworkAddress() { - return rpcGateway.getNetworkAddress(); + return networkAddress } @Override public AuthContext getAuthContext() { - return rpcGateway.getAuthContext(); + return authContext } @Override public void open() throws IOException { - rpcGateway.open(); + + if (!isOpened) { + + zmqContext = ZMQ.context(1); + + reqSocket = zmqContext.socket(ZMQ.REQ); + reqSocket.setLinger(0); // no waiting before closing the socket + + switch (authContext.getAuthMechanism()) { + case PLAIN: + final PlainCredentials plainCredentials = authContext.getPlainCredentials(); + reqSocket.setPlainUsername( plainCredentials.getUsername() ); + reqSocket.setPlainPassword( plainCredentials.getPassword() ); + break; + case CURVE: + final CurveCredentials curveCredentials = authContext.getCurveCredentials(); + final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); + reqSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); + reqSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); + reqSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); + break; + case NULL: + break; + default: + throw new IllegalStateException( + String.format( + "Unsupported authentication mechanism: \"s\".", + authContext.getAuthMechanism() + ) + ); + } + + final boolean _isConnected = this.reqSocket.connect(uri); + if (_isConnected) { + isOpened = true; + } else { + + final String errorMessage = + String.format("Couldn't connect to '%s'. ZMQ socket errno:", uri, reqSocket.errno()); + + reqSocket.close(); + zmqContext.term(); + zmqContext = null; + reqSocket = null; + + throw new IOException(errorMessage); + } + } } @Override public boolean isOpened() { - return rpcGateway.isOpened(); + return isOpened; } @Override public void close() throws IOException { - rpcGateway.close(); - } - @Override - public AddColumn.Result qlua_AddColumn(final AddColumn.Request args) { + if (isOpened) { - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.ADD_COLUMN, args); - return AddColumn.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); + final boolean isDisconnected = reqSocket.disconnect(uri); + + if (isDisconnected) { + reqSocket.close(); + zmqContext.term(); + zmqContext = null; + reqSocket = null; + + isOpened = false; + } else { + throw new IOException( + String.format( + "Couldn't disconnect from '%s'. ZMQ socket errno: %d", + uri, + reqSocket.errno() + ) + ); + } } } @Override - public AddLabel.Result qlua_AddLabel(final AddLabel.Request args) { + public AddColumn.Result qlua_AddColumn(final AddColumn.Request request) { + return makeRPC(request, AddColumn.Result.class); + } - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.ADD_LABEL, args); - return AddLabel.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + @Override + public AddLabel.Result qlua_AddLabel(final AddLabel.Request request) { + return makeRPC(request, AddLabel.Result.class); } @Override public AllocTable.Result qlua_AllocTable() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.ALLOC_TABLE); - return AllocTable.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class); } @Override @@ -1109,52 +1180,29 @@ public V.Result datasource_V(final V.Request args) { } private void checkIfOpen() { - checkState(rpcGateway.isOpened(), "The connection must be open."); + checkState(isOpened, "The connection must be open."); } - private ByteString makeRPC(final RPC.ProcedureType procedureType, final MessageLite args) - throws RemoteProcedureCaller.RpcException { + private U makeRPC(final T request, final Class resultClass) { - checkIfOpen(); - - final RPC.Response response = rpcGateway.call(procedureType, args); - - checkResponse(response, procedureType); - - return response.getResult(); - } - - private ByteString makeRPC(final RPC.ProcedureType procedureType) throws RemoteProcedureCaller.RpcException { - - checkIfOpen(); - - final RPC.Response response = rpcGateway.call(procedureType); + try { - checkResponse(response, procedureType); + checkIfOpen(); - return response.getResult(); - } + final ZMsg zRequest = new ZMsg(); + zRequest.add( serdeModule.serialize(request) ); + zRequest.send(reqSocket); - private static void checkResponse(final RPC.Response response, final RPC.ProcedureType expectedResponseType) { + final ZMsg zResponse = ZMsg.recvMsg(reqSocket); - if ( response.getIsError() ) { - throw new RpcClientException( - String.format( - "The RPC service has responded with the following error: '%s'.", - response.getResult().toStringUtf8() - ) - ); - } + final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream( (int) zResponse.contentSize() ); + for (final ZFrame frame : zResponse) { + byteArrayOutputStream.write( frame.getData() ); + } - final RPC.ProcedureType responseType = response.getType(); - if ( !Objects.equals(expectedResponseType, responseType) ) { - throw new RpcClientException( - String.format( - "Unexpected type of the incoming RPC response: '%s' (expected '%s').", - responseType, - expectedResponseType - ) - ); + return serdeModule.deserialize(resultClass, byteArrayOutputStream.toByteArray()); + } catch (final Exception ex) { + throw new RpcClientException(ex); } } } From b71e29acb5ce225e25dd4954150fb331c55ae251 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 23 Jul 2018 00:22:06 +0300 Subject: [PATCH 038/549] Changed the appender from FileAppender to RollingFileAppender. --- src/main/resources/logback.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 8a94339..33bb2cf 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -15,9 +15,15 @@ - + ./logs/app.log + + app-%d{yyyy-MM-dd}.%i.log + 25MB + + + %date %-5level [%thread] %20logger - %msg%n From cb8944ff0f0db969e6996d4d12f80698d645b182 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 26 Jul 2018 10:29:30 +0300 Subject: [PATCH 039/549] WIP: json-rpc support. --- .../quik/lua/rpc/api/QluaRpcClient.java | 5 +- .../lua/rpc/api/structures/AddColumn.java | 2 +- .../lua/rpc/api/structures/CalcBuySell.java | 72 +++++++++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 13 +--- .../AddColumnRequestJsonSerializer.java | 29 ++++++++ .../jackson/QluaJsonJacksonSerializers.java | 14 ++++ .../json/jackson/QluaJsonJacksonUtils.java | 18 +++++ 7 files changed, 140 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 7122728..fe8774f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -4,6 +4,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; import com.enfernuz.quik.lua.rpc.io.Gateway; import qlua.rpc.bit.*; import qlua.rpc.datasource.*; @@ -38,10 +39,10 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - CalcBuySell.Result qlua_CalcBuySell(CalcBuySell.Request args); + CalcBuySell.Result qlua_CalcBuySell(CalcBuySell.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java index 8deee8e..b3a6ce3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java @@ -23,7 +23,7 @@ public static class Request { private Request( final int tId, final int iCode, - final String name, + final @NonNull String name, final boolean isDefault, final @NonNull ColumnParameterType parType, final int width) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java new file mode 100644 index 0000000..e782099 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java @@ -0,0 +1,72 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import lombok.Value; + +public final class CalcBuySell { + + private CalcBuySell() {} + + @Value + public static class Request { + + String classCode; + String secCode; + String clientCode; + String account; + String price; + boolean isBuy; + boolean isMarket; + + @Builder + private Request( + final @NonNull String classCode, + final @NonNull String secCode, + final @NonNull String clientCode, + final @NonNull String account, + final @NonNull String price, + final boolean isBuy, + final boolean isMarket) { + + this.classCode = classCode; + this.secCode = secCode; + this.clientCode = clientCode; + this.account = account; + this.price = price; + this.isBuy = isBuy; + this.isMarket = isMarket; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("client_code", clientCode) + .add("account", account) + .add("price", price) + .add("is_buy", isBuy) + .add("is_market", isMarket) + .toString(); + } + } + + @Value + @RequiredArgsConstructor + public static class Result { + + int qty; + String comission; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("qty", qty) + .add("comission", comission) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 1692d3e..48f1bc4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -7,6 +7,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; @@ -178,16 +179,8 @@ public AllocTable.Result qlua_AllocTable() { } @Override - public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CALC_BUY_SELL, args); - return CalcBuySell.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { + return makeRPC(request, CalcBuySell.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java new file mode 100644 index 0000000..092f3ce --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class AddColumnRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final AddColumn.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AddColumn"); + + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("icode", value.getICode()); + gen.writeStringField("name", value.getName()); + gen.writeBooleanField("is_default", value.isDefault()); + gen.writeStringField("par_type", value.getParType().name()); + gen.writeNumberField("width", value.getWidth()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java new file mode 100644 index 0000000..e2aff6f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -0,0 +1,14 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.fasterxml.jackson.databind.module.SimpleSerializers; + +final class QluaJsonJacksonSerializers extends SimpleSerializers { + + public QluaJsonJacksonSerializers() { + + super(); + + super.addSerializer(AddColumn.Request.class, new AddColumnRequestJsonSerializer()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java index ba1d93d..a83e373 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java @@ -1,7 +1,10 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; +import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonNode; +import java.io.IOException; + final class QluaJsonJacksonUtils { private QluaJsonJacksonUtils() { @@ -13,4 +16,19 @@ static String asText(final JsonNode node, final String fieldName) { final JsonNode value = node.get(fieldName); return value == null ? null : value.asText(); } + + static void prepareJsonGeneratorForMethod(final JsonGenerator jsonGenerator, final String methodName) + throws IOException { + + jsonGenerator.writeStartObject(); + jsonGenerator.writeStringField("method", "AddColumn"); + jsonGenerator.writeObjectFieldStart("args"); + } + + static void finishJsonGenerator(final JsonGenerator jsonGenerator) + throws IOException { + + jsonGenerator.writeEndObject(); + jsonGenerator.writeEndObject(); + } } From d515465a1676d7c3a662839e30219ad22c05d827 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 27 Jul 2018 01:40:14 +0300 Subject: [PATCH 040/549] Added request-result pairs for CalcBuySell, CancelParamRequest, Message. --- .../quik/lua/rpc/api/QluaRpcClient.java | 11 ++-- .../lua/rpc/api/structures/AddColumn.java | 7 +++ .../api/structures/CancelParamRequest.java | 46 +++++++++++++++ .../quik/lua/rpc/api/structures/Message.java | 57 +++++++++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 29 ++-------- .../AddColumnRequestJsonSerializer.java | 2 +- .../AddColumnResultJsonDeserializer.java | 19 +++++++ .../AddLabelRequestJsonSerializer.java | 27 +++++++++ .../AddLabelResultJsonDeserializer.java | 19 +++++++ .../AllocTableRequestJsonSerializer.java | 18 ++++++ .../AllocTableResultJsonDeserializer.java | 19 +++++++ .../CalcBuySellRequestJsonSerializer.java | 30 ++++++++++ .../CalcBuySellResultJsonDeserializer.java | 19 +++++++ ...ncelParamRequestRequestJsonSerializer.java | 26 +++++++++ ...celParamRequestResultJsonDeserializer.java | 19 +++++++ .../jackson/MessageRequestJsonSerializer.java | 22 +++++++ .../MessageResultJsonDeserializer.java | 19 +++++++ .../jackson/QluaJsonJacksonDeserializers.java | 8 +++ .../jackson/QluaJsonJacksonSerializers.java | 7 ++- .../json/jackson/QluaJsonJacksonUtils.java | 2 +- 20 files changed, 372 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index fe8774f..1a6d5d9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -1,10 +1,7 @@ package com.enfernuz.quik.lua.rpc.api; import com.enfernuz.quik.lua.rpc.api.security.Securable; -import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; -import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; -import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; -import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.io.Gateway; import qlua.rpc.bit.*; import qlua.rpc.datasource.*; @@ -46,10 +43,10 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - CancelParamRequest.Result qlua_CancelParamRequest(CancelParamRequest.Request args); + CancelParamRequest.Result qlua_CancelParamRequest(CancelParamRequest.Request request); /** * @@ -353,7 +350,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param args * @return */ - Message.Result qlua_message(Message.Request args); + Message.Result qlua_message(Message.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java index b3a6ce3..69de8f4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java @@ -53,6 +53,13 @@ public String toString() { public static class Result { int result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } } public static enum ColumnParameterType { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java new file mode 100644 index 0000000..a91a2fe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class CancelParamRequest { + + @Value + public static class Request { + + String classCode; + String secCode; + String dbName; + + @Builder + private Request(final @NonNull String classCode, final @NonNull String secCode, final @NonNull String dbName) { + this.classCode = classCode; + this.secCode = secCode; + this.dbName = dbName; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("db_name", dbName) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java new file mode 100644 index 0000000..4d9446c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class Message { + + private Message() {} + + @Value + public static class Request { + + String message; + IconType iconType; + + @Builder + private Request(final @NonNull String message, final @NonNull IconType iconType) { + this.message = message; + this.iconType = iconType; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("message", message) + .add("icon_type", iconType) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } + + public static enum IconType { + INFO(1), + WARNING(2), + ERROR(3); + + public final int value; + + IconType(final int value) { + this.value = value; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 48f1bc4..0844778 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -4,10 +4,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; -import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; -import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; -import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; -import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; @@ -184,16 +181,8 @@ public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { } @Override - public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamRequest.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CANCEL_PARAM_REQUEST, args); - return CancelParamRequest.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamRequest.Request request) { + return makeRPC(request, CancelParamRequest.Result.class); } @Override @@ -757,16 +746,8 @@ public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request ar } @Override - public Message.Result qlua_message(final Message.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.MESSAGE, args); - return Message.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public Message.Result qlua_message(final Message.Request request) { + return makeRPC(request, Message.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java index 092f3ce..c4f5a82 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class AddColumnRequestJsonSerializer extends JsonSerializer { +final class AddColumnRequestJsonSerializer extends JsonSerializer { @Override public void serialize( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java new file mode 100644 index 0000000..03e4b81 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class AddColumnResultJsonDeserializer extends JsonDeserializer { + + @Override + public AddColumn.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new AddColumn.Result( node.get("result").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java new file mode 100644 index 0000000..28e3864 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.util.Map; + +final class AddLabelRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final AddLabel.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AddLabel"); + + gen.writeStringField("chart_tag", value.getChartTag()); + gen.writeObjectFieldStart("label_params"); + for (final Map.Entry entry : value.getLabelParams().entrySet()) { + gen.writeStringField(entry.getKey(), entry.getValue()); + } + gen.writeEndObject(); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java new file mode 100644 index 0000000..001dc68 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class AddLabelResultJsonDeserializer extends JsonDeserializer { + + @Override + public AddLabel.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new AddLabel.Result( node.get("label_id").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java new file mode 100644 index 0000000..b377cc1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class AllocTableRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(AllocTable.Request value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AllocTable"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java new file mode 100644 index 0000000..6020854 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class AllocTableResultJsonDeserializer extends JsonDeserializer { + + @Override + public AllocTable.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new AllocTable.Result( node.get("t_id").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java new file mode 100644 index 0000000..0b4f0d5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class CalcBuySellRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final CalcBuySell.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CalcBuySell"); + + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("account", value.getAccount()); + gen.writeStringField("price", value.getPrice()); + gen.writeBooleanField("is_buy", value.isBuy()); + gen.writeBooleanField("is_market", value.isMarket()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java new file mode 100644 index 0000000..14b6207 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class CalcBuySellResultJsonDeserializer extends JsonDeserializer { + + @Override + public CalcBuySell.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new CalcBuySell.Result(node.get("qty").asInt(), node.get("comission").asText()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java new file mode 100644 index 0000000..1a02a30 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CancelParamRequest; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class CancelParamRequestRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final CancelParamRequest.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CancelParamRequest"); + + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("db_name", value.getDbName()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java new file mode 100644 index 0000000..348a08b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CancelParamRequest; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class CancelParamRequestResultJsonDeserializer extends JsonDeserializer { + + @Override + public CancelParamRequest.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new CancelParamRequest.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java new file mode 100644 index 0000000..d1595dd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Message; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class MessageRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Message.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "message"); + + gen.writeStringField("message", value.getMessage()); + gen.writeNumberField("icon_type", value.getIconType().value); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java new file mode 100644 index 0000000..0e7ba47 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Message; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class MessageResultJsonDeserializer extends JsonDeserializer { + + @Override + public Message.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new Message.Result( node.get("result").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 93548a7..0df3371 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.fasterxml.jackson.databind.module.SimpleDeserializers; @@ -31,5 +32,12 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); + + super.addDeserializer(AddColumn.Result.class, new AddColumnResultJsonDeserializer()); + super.addDeserializer(AddLabel.Result.class, new AddLabelResultJsonDeserializer()); + super.addDeserializer(AllocTable.Result.class, new AllocTableResultJsonDeserializer()); + super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); + super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); + super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index e2aff6f..e80a6e8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -10,5 +10,10 @@ public QluaJsonJacksonSerializers() { super(); super.addSerializer(AddColumn.Request.class, new AddColumnRequestJsonSerializer()); + super.addSerializer(AddLabel.Request.class, new AddLabelRequestJsonSerializer()); + super.addSerializer(AllocTable.Request.class, new AllocTableRequestJsonSerializer()); + super.addSerializer(CalcBuySell.Request.class, new CalcBuySellRequestJsonSerializer()); + super.addSerializer(CancelParamRequest.Request.class, new CancelParamRequestRequestJsonSerializer()); + super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java index a83e373..c82ef93 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java @@ -21,7 +21,7 @@ static void prepareJsonGeneratorForMethod(final JsonGenerator jsonGenerator, fin throws IOException { jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField("method", "AddColumn"); + jsonGenerator.writeStringField("method", methodName); jsonGenerator.writeObjectFieldStart("args"); } From 5facf83d4ce8517728a3ac386d3992e3a5203ffd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 28 Jul 2018 01:10:00 +0300 Subject: [PATCH 041/549] Added request-result pairs for Clear, CreateWindow, DelAllLabels, DeleteRow. --- .../quik/lua/rpc/api/QluaRpcClient.java | 16 +++---- .../quik/lua/rpc/api/structures/Clear.java | 35 ++++++++++++++ .../lua/rpc/api/structures/CreateWindow.java | 35 ++++++++++++++ .../lua/rpc/api/structures/DelAllLabels.java | 35 ++++++++++++++ .../lua/rpc/api/structures/DeleteRow.java | 37 ++++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 48 ++++--------------- .../jackson/ClearRequestJsonSerializer.java | 24 ++++++++++ .../jackson/ClearResultJsonDeserializer.java | 19 ++++++++ .../CreateWindowRequestJsonSerializer.java | 24 ++++++++++ .../CreateWindowResultJsonDeserializer.java | 19 ++++++++ .../DelAllLabelsRequestJsonSerializer.java | 24 ++++++++++ .../DelAllLabelsResultJsonDeserializer.java | 19 ++++++++ .../DeleteRowRequestJsonSerializer.java | 25 ++++++++++ .../DeleteRowResultJsonDeserializer.java | 19 ++++++++ .../jackson/QluaJsonJacksonDeserializers.java | 4 ++ .../jackson/QluaJsonJacksonSerializers.java | 4 ++ 16 files changed, 339 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 1a6d5d9..e6ceda1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -50,31 +50,31 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - Clear.Result qlua_Clear(Clear.Request args); + Clear.Result qlua_Clear(Clear.Request request); /** * - * @param args + * @param request * @return */ - CreateWindow.Result qlua_CreateWindow(CreateWindow.Request args); + CreateWindow.Result qlua_CreateWindow(CreateWindow.Request request); /** * - * @param args + * @param request * @return */ - DelAllLabels.Result qlua_DelAllLabels(DelAllLabels.Request args); + DelAllLabels.Result qlua_DelAllLabels(DelAllLabels.Request request); /** * - * @param args + * @param request * @return */ - DeleteRow.Result qlua_DeleteRow(DeleteRow.Request args); + DeleteRow.Result qlua_DeleteRow(DeleteRow.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java new file mode 100644 index 0000000..5cf3757 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class Clear { + + private Clear() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java new file mode 100644 index 0000000..a156b83 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class CreateWindow { + + private CreateWindow() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java new file mode 100644 index 0000000..35aaef4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class DelAllLabels { + + private DelAllLabels() {} + + @Value + public static class Request { + + String chartTag; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("chart_tag", chartTag) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java new file mode 100644 index 0000000..cba786a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class DeleteRow { + + private DeleteRow() {} + + @Value + public static class Request { + + int tId; + int key; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("key", key) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 0844778..7431890 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -186,55 +186,23 @@ public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamReques } @Override - public Clear.Result qlua_Clear(final Clear.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CLEAR, args); - return Clear.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public Clear.Result qlua_Clear(final Clear.Request request) { + return makeRPC(request, Clear.Result.class); } @Override - public CreateWindow.Result qlua_CreateWindow(final CreateWindow.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CREATE_WINDOW, args); - return CreateWindow.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public CreateWindow.Result qlua_CreateWindow(final CreateWindow.Request request) { + return makeRPC(request, CreateWindow.Result.class); } @Override - public DelAllLabels.Result qlua_DelAllLabels(final DelAllLabels.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DEL_ALL_LABELS, args); - return DelAllLabels.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public DelAllLabels.Result qlua_DelAllLabels(final DelAllLabels.Request request) { + return makeRPC(request, DelAllLabels.Result.class); } @Override - public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DELETE_ROW, args); - return DeleteRow.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request request) { + return makeRPC(request, DeleteRow.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java new file mode 100644 index 0000000..d768d40 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Clear; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class ClearRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final Clear.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Clear"); + + gen.writeNumberField("t_id", value.getTId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java new file mode 100644 index 0000000..64cd854 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Clear; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class ClearResultJsonDeserializer extends JsonDeserializer { + + @Override + public Clear.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new Clear.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java new file mode 100644 index 0000000..fa9f4b0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CreateWindow; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class CreateWindowRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final CreateWindow.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CreateWindow"); + + gen.writeNumberField("t_id", value.getTId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java new file mode 100644 index 0000000..3919da0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CreateWindow; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class CreateWindowResultJsonDeserializer extends JsonDeserializer { + + @Override + public CreateWindow.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new CreateWindow.Result( node.get("result").asInt() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java new file mode 100644 index 0000000..68efd04 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DelAllLabels; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DelAllLabelsRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final DelAllLabels.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DelAllLabels"); + + gen.writeStringField("chart_tag", value.getChartTag()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java new file mode 100644 index 0000000..5ab8435 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DelAllLabels; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class DelAllLabelsResultJsonDeserializer extends JsonDeserializer { + + @Override + public DelAllLabels.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new DelAllLabels.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java new file mode 100644 index 0000000..96eac65 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DeleteRow; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DeleteRowRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize( + final DeleteRow.Request value, + final JsonGenerator gen, + final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DeleteRow"); + + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("key", value.getKey()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java new file mode 100644 index 0000000..3a3d333 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DeleteRow; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class DeleteRowResultJsonDeserializer extends JsonDeserializer { + + @Override + public DeleteRow.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new DeleteRow.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 0df3371..53faaf6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -38,6 +38,10 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AllocTable.Result.class, new AllocTableResultJsonDeserializer()); super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); + super.addDeserializer(Clear.Result.class, new ClearResultJsonDeserializer()); + super.addDeserializer(CreateWindow.Result.class, new CreateWindowResultJsonDeserializer()); + super.addDeserializer(DelAllLabels.Result.class, new DelAllLabelsResultJsonDeserializer()); + super.addDeserializer(DeleteRow.Result.class, new DeleteRowResultJsonDeserializer()); super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index e80a6e8..dfdc7ec 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -14,6 +14,10 @@ public QluaJsonJacksonSerializers() { super.addSerializer(AllocTable.Request.class, new AllocTableRequestJsonSerializer()); super.addSerializer(CalcBuySell.Request.class, new CalcBuySellRequestJsonSerializer()); super.addSerializer(CancelParamRequest.Request.class, new CancelParamRequestRequestJsonSerializer()); + super.addSerializer(Clear.Request.class, new ClearRequestJsonSerializer()); + super.addSerializer(CreateWindow.Request.class, new CreateWindowRequestJsonSerializer()); + super.addSerializer(DelAllLabels.Request.class, new DelAllLabelsRequestJsonSerializer()); + super.addSerializer(DeleteRow.Request.class, new DeleteRowRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } From d6ff1ae53c43e62dd34716c2c375a6e6bd19795f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 28 Jul 2018 01:10:46 +0300 Subject: [PATCH 042/549] Removed possible NPE cause. --- .../java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java index ebe2515..12a0ecd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java @@ -2,6 +2,7 @@ import com.google.common.base.MoreObjects; +import java.util.Arrays; import java.util.Objects; import static java.util.Objects.requireNonNull; @@ -56,7 +57,7 @@ public EventType getType() { * @return данные события */ public byte[] getData() { - return data.clone(); + return data == null ? null : data.clone(); } @Override @@ -68,7 +69,7 @@ public boolean equals(final Object o) { return false; } else { final QluaEvent other = (QluaEvent) o; - return Objects.equals(type, other.type) && Objects.equals(data, other.data); + return Objects.equals(type, other.type) && Arrays.equals(data, other.data); } } From d1ecb057272896f41846528b442241114f054e8a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 02:30:26 +0300 Subject: [PATCH 043/549] Added request-result pairs for DelLabel, DestroyTable, GetBuySellInfo, GetBuySellInfoEx. --- .../quik/lua/rpc/api/QluaRpcClient.java | 16 +- .../quik/lua/rpc/api/structures/DelLabel.java | 43 ++++ .../lua/rpc/api/structures/DestroyTable.java | 35 +++ .../rpc/api/structures/GetBuySellInfo.java | 236 ++++++++++++++++++ .../rpc/api/structures/GetBuySellInfoEx.java | 154 ++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 48 +--- .../lua/rpc/serde/json/JsonSerdeModule.java | 4 +- .../BuySellInfoExJsonDeserializer.java | 39 +++ .../jackson/BuySellInfoJsonDeserializer.java | 45 ++++ .../DelLabelRequestJsonSerializer.java | 22 ++ .../DelLabelResultJsonDeserializer.java | 19 ++ .../DestroyTableRequestJsonSerializer.java | 21 ++ .../DestroyTableResultJsonDeserializer.java | 20 ++ ...GetBuySellInfoExRequestJsonSerializer.java | 25 ++ ...etBuySellInfoExResultJsonDeserializer.java | 27 ++ .../GetBuySellInfoRequestJsonSerializer.java | 25 ++ .../GetBuySellInfoResultJsonDeserializer.java | 25 ++ .../jackson/QluaJsonJacksonDeserializers.java | 6 + .../jackson/QluaJsonJacksonSerializers.java | 4 + 19 files changed, 764 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index e6ceda1..5673694 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -78,31 +78,31 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - DelLabel.Result qlua_DelLabel(DelLabel.Request args); + DelLabel.Result qlua_DelLabel(DelLabel.Request request); /** * - * @param args + * @param request * @return */ - DestroyTable.Result qlua_DestroyTable(DestroyTable.Request args); + DestroyTable.Result qlua_DestroyTable(DestroyTable.Request request); /** * - * @param args + * @param request * @return */ - GetBuySellInfo.Result qlua_getBuySellInfo(GetBuySellInfo.Request args); + GetBuySellInfo.Result qlua_getBuySellInfo(GetBuySellInfo.Request request); /** * - * @param args + * @param request * @return */ - GetBuySellInfoEx.Result qlua_getBuySellInfoEx(GetBuySellInfoEx.Request args); + GetBuySellInfoEx.Result qlua_getBuySellInfoEx(GetBuySellInfoEx.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java new file mode 100644 index 0000000..fda003b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class DelLabel { + + private DelLabel() {} + + @Value + public static class Request { + + String chartTag; + int labelId; + + public Request(@NonNull final String chartTag, final int labelId) { + this.chartTag = chartTag; + this.labelId = labelId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("chart_tag", chartTag) + .add("label_id", labelId) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java new file mode 100644 index 0000000..df57853 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class DestroyTable { + + private DestroyTable() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java new file mode 100644 index 0000000..7b2c32d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java @@ -0,0 +1,236 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class GetBuySellInfo { + + private GetBuySellInfo() {} + + @Value + public static class Request { + + String firmId; + String clientCode; + String classCode; + String secCode; + String price; + + @Builder + private Request( + final @NonNull String firmId, + final @NonNull String clientCode, + final @NonNull String classCode, + final @NonNull String secCode, + final @NonNull String price) { + + this.firmId = firmId; + this.clientCode = clientCode; + this.classCode = classCode; + this.secCode = secCode; + this.price = price; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firm_id", firmId) + .add("client_code", clientCode) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("price", price) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull BuySellInfo buySellInfo; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("buy_sell_info", buySellInfo) + .toString(); + } + } + + @Value + public static class BuySellInfo { + + String isMarginSec; + String isAssetSec; + String balance; + String canBuy; + String canSell; + String positionValuation; + String value; + String openValue; + String limLong; + String longCoef; + String limShort; + String shortCoef; + String valueCoef; + String openValueCoef; + String share; + String shortWaPrice; + String longWaPrice; + String profitLoss; + String spreadHc; + String canBuyOwn; + String canSellOwn; + + @NonFinal transient int hashCode; + @NonFinal transient String asString; + + @Builder + private BuySellInfo( + final String isMarginSec, + final String isAssetSec, + final String balance, + final String canBuy, + final String canSell, + final String positionValuation, + final String value, + final String openValue, + final String limLong, + final String longCoef, + final String limShort, + final String shortCoef, + final String valueCoef, + final String openValueCoef, + final String share, + final String shortWaPrice, + final String longWaPrice, + final String profitLoss, + final String spreadHc, + final String canBuyOwn, + final String canSellOwn) { + + this.isMarginSec = isMarginSec; + this.isAssetSec = isAssetSec; + this.balance = balance; + this.canBuy = canBuy; + this.canSell = canSell; + this.positionValuation = positionValuation; + this.value = value; + this.openValue = openValue; + this.limLong = limLong; + this.longCoef = longCoef; + this.limShort = limShort; + this.shortCoef = shortCoef; + this.valueCoef = valueCoef; + this.openValueCoef = openValueCoef; + this.share = share; + this.shortWaPrice = shortWaPrice; + this.longWaPrice = longWaPrice; + this.profitLoss = profitLoss; + this.spreadHc = spreadHc; + this.canBuyOwn = canBuyOwn; + this.canSellOwn = canSellOwn; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof BuySellInfo) ) { + return false; + } else { + final BuySellInfo that = (BuySellInfo) o; + return Objects.equals(isMarginSec, that.isMarginSec) && + Objects.equals(isAssetSec, that.isAssetSec) && + Objects.equals(balance, that.balance) && + Objects.equals(canBuy, that.canBuy) && + Objects.equals(canSell, that.canSell) && + Objects.equals(positionValuation, that.positionValuation) && + Objects.equals(value, that.value) && + Objects.equals(openValue, that.openValue) && + Objects.equals(limLong, that.limLong) && + Objects.equals(longCoef, that.longCoef) && + Objects.equals(limShort, that.limShort) && + Objects.equals(shortCoef, that.shortCoef) && + Objects.equals(valueCoef, that.valueCoef) && + Objects.equals(openValueCoef, that.openValueCoef) && + Objects.equals(share, that.share) && + Objects.equals(shortWaPrice, that.shortWaPrice) && + Objects.equals(longWaPrice, that.longWaPrice) && + Objects.equals(profitLoss, that.profitLoss) && + Objects.equals(spreadHc, that.spreadHc) && + Objects.equals(canBuyOwn, that.canBuyOwn) && + Objects.equals(canSellOwn, that.canSellOwn); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + isMarginSec, + isAssetSec, + balance, + canBuy, + canSell, + positionValuation, + value, + openValue, + limLong, + longCoef, + limShort, + shortCoef, + valueCoef, + openValueCoef, + share, + shortWaPrice, + longWaPrice, + profitLoss, + spreadHc, + canBuyOwn, + canSellOwn + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("is_margin_sec", isMarginSec) + .add("is_asset_sec", isAssetSec) + .add("balance", balance) + .add("can_buy", canBuy) + .add("can_sell", canSell) + .add("position_valuation", positionValuation) + .add("value", value) + .add("open_value", openValue) + .add("lim_long", limLong) + .add("long_coef", longCoef) + .add("lim_short", limShort) + .add("short_coef", shortCoef) + .add("value_coef", valueCoef) + .add("open_value_coef", openValueCoef) + .add("share", share) + .add("short_wa_price", shortWaPrice) + .add("long_wa_price", longWaPrice) + .add("profit_loss", profitLoss) + .add("spread_hc", spreadHc) + .add("can_buy_own", canBuyOwn) + .add("can_sell_own", canSellOwn) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java new file mode 100644 index 0000000..784ebd7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java @@ -0,0 +1,154 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class GetBuySellInfoEx { + + private GetBuySellInfoEx() {} + + @Value + public static class Request { + + String firmId; + String clientCode; + String classCode; + String secCode; + String price; + + @Builder + private Request( + final @NonNull String firmId, + final @NonNull String clientCode, + final @NonNull String classCode, + final @NonNull String secCode, + final @NonNull String price) { + + this.firmId = firmId; + this.clientCode = clientCode; + this.classCode = classCode; + this.secCode = secCode; + this.price = price; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firm_id", firmId) + .add("client_code", clientCode) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("price", price) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull BuySellInfoEx buySellInfoEx; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("buy_sell_info_ex", buySellInfoEx) + .toString(); + } + } + + @Value + public static class BuySellInfoEx { + + GetBuySellInfo.BuySellInfo buySellInfo; + String limitKind; + String dLong; + String dMinLong; + String dShort; + String dMinShort; + String clientType; + String isLongAllowed; + String isShortAllowed; + + @NonFinal transient int hashCode; + @NonFinal transient String asString; + + @Builder + private BuySellInfoEx( + final @NonNull GetBuySellInfo.BuySellInfo buySellInfo, + final String limitKind, + final String dLong, + final String dMinLong, + final String dShort, + final String dMinShort, + final String clientType, + final String isLongAllowed, + final String isShortAllowed) { + + this.buySellInfo = buySellInfo; + this.limitKind = limitKind; + this.dLong = dLong; + this.dMinLong = dMinLong; + this.dShort = dShort; + this.dMinShort = dMinShort; + this.clientType = clientType; + this.isLongAllowed = isLongAllowed; + this.isShortAllowed = isShortAllowed; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof BuySellInfoEx) ) { + return false; + } else { + final BuySellInfoEx that = (BuySellInfoEx) o; + return Objects.equals(buySellInfo, that.buySellInfo) && + Objects.equals(limitKind, that.limitKind) && + Objects.equals(dLong, that.dLong) && + Objects.equals(dMinLong, that.dMinLong) && + Objects.equals(dShort, that.dShort) && + Objects.equals(dMinShort, that.dMinShort) && + Objects.equals(clientType, that.clientType) && + Objects.equals(isLongAllowed, that.isLongAllowed) && + Objects.equals(isShortAllowed, that.isShortAllowed); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(buySellInfo, limitKind, dLong, dMinLong, dShort, dMinShort, clientType, isLongAllowed, isShortAllowed); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("buy_sell_info", buySellInfo) + .add("limit_kind", limitKind) + .add("d_long", dLong) + .add("d_min_long", dMinLong) + .add("d_short", dShort) + .add("d_min_short", dMinShort) + .add("client_type", clientType) + .add("is_long_allowed", isLongAllowed) + .add("is_short_allowed", isShortAllowed) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 7431890..225e202 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -206,55 +206,23 @@ public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request request) { } @Override - public DelLabel.Result qlua_DelLabel(final DelLabel.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DEL_LABEL, args); - return DelLabel.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public DelLabel.Result qlua_DelLabel(final DelLabel.Request request) { + return makeRPC(request, DelLabel.Result.class); } @Override - public DestroyTable.Result qlua_DestroyTable(final DestroyTable.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DESTROY_TABLE, args); - return DestroyTable.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public DestroyTable.Result qlua_DestroyTable(final DestroyTable.Request request) { + return makeRPC(request, DestroyTable.Result.class); } @Override - public GetBuySellInfo.Result qlua_getBuySellInfo(final GetBuySellInfo.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_BUY_SELL_INFO, args); - return GetBuySellInfo.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetBuySellInfo.Result qlua_getBuySellInfo(final GetBuySellInfo.Request request) { + return makeRPC(request, GetBuySellInfo.Result.class); } @Override - public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_BUY_SELL_INFO_EX, args); - return GetBuySellInfoEx.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { + return makeRPC(request, GetBuySellInfoEx.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index 2df7975..fceb4d6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -23,7 +23,7 @@ private JsonSerdeModule() { @Override public byte[] serialize(final T t) { - requireNonNull(t, "The argument must not be null."); + requireNonNull(t); if (t instanceof QluaEvent.EventType) { return JsonQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); @@ -40,7 +40,7 @@ public T deserialize(final Class clazz, byte[] data) { try { if (QluaEvent.EventType.class == clazz) { - // This cast is safe because the JsonQluaEventTypeSerde returns an instance of QluaEvent.EventType + // This cast is safe because JsonQluaEventTypeSerde returns an instance of QluaEvent.EventType // and we obliged to return an instance of Class. @SuppressWarnings("unchecked") final T result = (T) JsonQluaEventTypeSerde.INSTANCE.deserialize(data); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java new file mode 100644 index 0000000..7d35750 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class BuySellInfoExJsonDeserializer extends JsonDeserializer { + + @Override + public GetBuySellInfoEx.BuySellInfoEx deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + final GetBuySellInfo.BuySellInfo buySellInfo = + node.get("buy_sell_info").traverse(objectCodec).readValueAs(GetBuySellInfo.BuySellInfo.class); + + return GetBuySellInfoEx.BuySellInfoEx + .builder() + .buySellInfo(buySellInfo) + .limitKind( asText(node, "limit_kind") ) + .dLong( asText(node, "d_long") ) + .dMinLong( asText(node, "d_min_long") ) + .dShort( asText(node, "d_short") ) + .dMinShort( asText(node, "d_min_short") ) + .clientType( asText(node, "client_type") ) + .isLongAllowed( asText(node, "is_long_allowed") ) + .isShortAllowed( asText(node, "is_short_allowed") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java new file mode 100644 index 0000000..3ee181d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class BuySellInfoJsonDeserializer extends JsonDeserializer { + + @Override + public GetBuySellInfo.BuySellInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + + return GetBuySellInfo.BuySellInfo + .builder() + .isMarginSec( asText(node, "is_margin_sec") ) + .isAssetSec( asText(node, "is_asset_sec") ) + .balance( asText(node, "balance") ) + .canBuy( asText(node, "can_buy") ) + .canSell( asText(node, "can_sell") ) + .positionValuation( asText(node, "position_valuation") ) + .value( asText(node, "value") ) + .openValue( asText(node, "open_value") ) + .limLong( asText(node, "lim_long") ) + .longCoef( asText(node, "long_coef") ) + .limShort( asText(node, "lim_short") ) + .shortCoef( asText(node, "short_coef") ) + .valueCoef( asText(node, "value_coef") ) + .openValueCoef( asText(node, "open_value_coef") ) + .share( asText(node, "share") ) + .shortWaPrice( asText(node, "short_wa_price") ) + .longWaPrice( asText(node, "long_wa_price") ) + .profitLoss( asText(node, "profit_loss") ) + .spreadHc( asText(node, "spread_hc") ) + .canBuyOwn( asText(node, "can_buy_own") ) + .canSellOwn( asText(node, "can_sell_own") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java new file mode 100644 index 0000000..7897c5b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DelLabel; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DelLabelRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final DelLabel.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DelLabel"); + + gen.writeStringField("chart_tag", value.getChartTag()); + gen.writeNumberField("label_id", value.getLabelId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java new file mode 100644 index 0000000..af9b223 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DelLabel; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class DelLabelResultJsonDeserializer extends JsonDeserializer { + + @Override + public DelLabel.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new DelLabel.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java new file mode 100644 index 0000000..91d16ec --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DestroyTable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DestroyTableRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final DestroyTable.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DestroyTable"); + + gen.writeNumberField("t_id", value.getTId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java new file mode 100644 index 0000000..29cd37f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DestroyTable; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class DestroyTableResultJsonDeserializer extends JsonDeserializer { + + @Override + public DestroyTable.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + + return new DestroyTable.Result( node.get("result").asBoolean() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java new file mode 100644 index 0000000..5d00665 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetBuySellInfoExRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetBuySellInfoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getBuySellInfoEx"); + + gen.writeStringField("firm_id", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("price", value.getPrice()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java new file mode 100644 index 0000000..2d10184 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetBuySellInfoExResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetBuySellInfoEx.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx = + node.get("buy_sell_info_ex").traverse(objectCodec).readValueAs(GetBuySellInfoEx.BuySellInfoEx.class); + + return new GetBuySellInfoEx.Result(buySellInfoEx); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java new file mode 100644 index 0000000..4c4971e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetBuySellInfoRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetBuySellInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getBuySellInfo"); + + gen.writeStringField("firm_id", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("price", value.getPrice()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java new file mode 100644 index 0000000..4df659a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetBuySellInfoResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetBuySellInfo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + final GetBuySellInfo.BuySellInfo buySellInfo = + node.get("buy_sell_info").traverse(objectCodec).readValueAs(GetBuySellInfo.BuySellInfo.class); + + return new GetBuySellInfo.Result(buySellInfo); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 53faaf6..e1b044a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -42,6 +42,12 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(CreateWindow.Result.class, new CreateWindowResultJsonDeserializer()); super.addDeserializer(DelAllLabels.Result.class, new DelAllLabelsResultJsonDeserializer()); super.addDeserializer(DeleteRow.Result.class, new DeleteRowResultJsonDeserializer()); + super.addDeserializer(DelLabel.Result.class, new DelLabelResultJsonDeserializer()); + super.addDeserializer(DestroyTable.Result.class, new DestroyTableResultJsonDeserializer()); + super.addDeserializer(GetBuySellInfo.BuySellInfo.class, new BuySellInfoJsonDeserializer()); + super.addDeserializer(GetBuySellInfo.Result.class, new GetBuySellInfoResultJsonDeserializer()); + super.addDeserializer(GetBuySellInfoEx.BuySellInfoEx.class, new BuySellInfoExJsonDeserializer()); + super.addDeserializer(GetBuySellInfoEx.Result.class, new GetBuySellInfoExResultJsonDeserializer()); super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index dfdc7ec..a477bdf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -18,6 +18,10 @@ public QluaJsonJacksonSerializers() { super.addSerializer(CreateWindow.Request.class, new CreateWindowRequestJsonSerializer()); super.addSerializer(DelAllLabels.Request.class, new DelAllLabelsRequestJsonSerializer()); super.addSerializer(DeleteRow.Request.class, new DeleteRowRequestJsonSerializer()); + super.addSerializer(DelLabel.Request.class, new DelLabelRequestJsonSerializer()); + super.addSerializer(DestroyTable.Request.class, new DestroyTableRequestJsonSerializer()); + super.addSerializer(GetBuySellInfo.Request.class, new GetBuySellInfoRequestJsonSerializer()); + super.addSerializer(GetBuySellInfoEx.Request.class, new GetBuySellInfoExRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } From b47332cf675ec81334379d4f3e82927b225dab73 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 03:00:31 +0300 Subject: [PATCH 044/549] Moved the DateTimeEntry class to the common structures package. --- .../quik/lua/rpc/{events => }/api/structures/DateTimeEntry.java | 2 +- .../enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java | 1 + .../enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java | 1 + .../com/enfernuz/quik/lua/rpc/events/api/structures/Order.java | 1 + .../enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java | 1 + .../com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java | 1 + .../enfernuz/quik/lua/rpc/events/api/structures/TransReply.java | 1 + .../lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java | 2 +- .../rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java | 2 +- .../lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java | 2 +- .../quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java | 2 +- .../lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java | 2 +- .../quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java | 2 +- .../lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java | 2 +- 14 files changed, 14 insertions(+), 8 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/DateTimeEntry.java (98%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index a17a549..a4fced6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import com.google.common.collect.ComparisonChain; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java index 1facd83..67f3b5a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java index 58c6368..62ecbf4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java index 6151e38..646d777 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java index 0b4fb68..ca91363 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java index aa99b4e..49be9ce 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java index 45d62b3..0610e5b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java index 04b1bcc..721be62 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java index 6cb9dd6..c87d740 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java index 6478782..2ec678b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.NegDeal; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java index 7f9b331..4fa0e53 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.Order; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java index 926af17..6dbd19a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.StopOrder; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java index e45ee2f..ec792b7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.Trade; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java index 1271d1b..6f90427 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.events.api.structures.TransReply; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; From 9332162409f8ace47007533c51bbf7b06f6bbc98 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 03:02:19 +0300 Subject: [PATCH 045/549] Added request-result pairs for GetCandlesByIndex; added CandleEntry class. --- .../quik/lua/rpc/api/QluaRpcClient.java | 5 +- .../lua/rpc/api/structures/CandleEntry.java | 95 +++++++++++++++++++ .../rpc/api/structures/GetCandlesByIndex.java | 68 +++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 13 +-- .../jackson/CandleEntryJsonDeserializer.java | 34 +++++++ ...etCandlesByIndexRequestJsonSerializer.java | 24 +++++ ...tCandlesByIndexResultJsonDeserializer.java | 40 ++++++++ .../jackson/QluaJsonJacksonDeserializers.java | 2 + .../jackson/QluaJsonJacksonSerializers.java | 2 + 9 files changed, 271 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 5673694..a5c7924 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.security.Securable; import com.enfernuz.quik.lua.rpc.api.structures.*; +import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.io.Gateway; import qlua.rpc.bit.*; import qlua.rpc.datasource.*; @@ -106,10 +107,10 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Result args); + GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Result request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java new file mode 100644 index 0000000..dd7b625 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java @@ -0,0 +1,95 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class CandleEntry implements Comparable { + + String open; + String close; + String high; + String low; + String volume; + DateTimeEntry dateTimeEntry; + int doesExist; + + @NonFinal transient int hashCode; + @NonFinal transient String asString; + + @Builder + private CandleEntry( + final String open, + final String close, + final String high, + final String low, + final String volume, + final @NonNull DateTimeEntry dateTimeEntry, + final int doesExist) { + + this.open = open; + this.close = close; + this.high = high; + this.low = low; + this.volume = volume; + this.dateTimeEntry = dateTimeEntry; + this.doesExist = doesExist; + } + + @Override + public int compareTo(final CandleEntry other) { + return dateTimeEntry.compareTo(other.dateTimeEntry); + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof CandleEntry) ) { + return false; + } else { + final CandleEntry that = (CandleEntry) o; + return doesExist == that.doesExist && + Objects.equals(open, that.open) && + Objects.equals(close, that.close) && + Objects.equals(high, that.high) && + Objects.equals(low, that.low) && + Objects.equals(volume, that.volume) && + Objects.equals(dateTimeEntry, that.dateTimeEntry); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(open, close, high, low, volume, dateTimeEntry, doesExist); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("open", open) + .add("close", close) + .add("high", high) + .add("low", low) + .add("volume", volume) + .add("datetime", dateTimeEntry) + .add("does_exist", doesExist) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java new file mode 100644 index 0000000..f852b37 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +import java.util.List; + +public final class GetCandlesByIndex { + + @Value + public static class Request { + + String tag; + int line; + int firstCandle; + int count; + + @Builder + private Request( + final @NonNull String tag, + final int line, + final int firstCandle, + final int count) { + + this.tag = tag; + this.line = line; + this.firstCandle = firstCandle; + this.count = count; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("tag", tag) + .add("line", line) + .add("first_candle", firstCandle) + .add("count", count) + .toString(); + } + } + + @Value + public static class Result { + + List t; + int n; + String l; + + public Result(final @NonNull List t, final int n, final String l) { + this.t = ImmutableList.copyOf(t); + this.n = n; + this.l = l; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t", t) + .add("n", n) + .add("l", l) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 225e202..7f0d9ae 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -6,6 +6,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; +import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.protobuf.ByteString; @@ -226,16 +227,8 @@ public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Requ } @Override - public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Result args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_CANDLES_BY_INDEX, args); - return GetCandlesByIndex.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Result request) { + return makeRPC(request, GetCandlesByIndex.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java new file mode 100644 index 0000000..dabfae8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java @@ -0,0 +1,34 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class CandleEntryJsonDeserializer extends JsonDeserializer { + + @Override + public CandleEntry deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + return CandleEntry + .builder() + .open( asText(node, "open") ) + .close( asText(node, "close") ) + .high( asText(node, "high") ) + .low( asText(node, "low") ) + .volume( asText(node, "volume") ) + .dateTimeEntry( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) + .doesExist( node.get("does_exist").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java new file mode 100644 index 0000000..67a988e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetCandlesByIndexRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetCandlesByIndex.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getCandlesByIndex"); + + gen.writeStringField("tag", value.getTag()); + gen.writeNumberField("line", value.getLine()); + gen.writeNumberField("first_candle", value.getFirstCandle()); + gen.writeNumberField("count", value.getCount()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java new file mode 100644 index 0000000..a171ab6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.collect.ImmutableList; + +import java.io.IOException; +import java.util.Iterator; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class GetCandlesByIndexResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetCandlesByIndex.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + final ImmutableList.Builder candleEntries = ImmutableList.builder(); + final Iterator candleEntryIterator = node.get("t").elements(); + while ( candleEntryIterator.hasNext() ) { + final CandleEntry candleEntry = + candleEntryIterator.next() + .traverse(objectCodec) + .readValueAs(CandleEntry.class); + candleEntries.add(candleEntry); + } + + final int n = node.get("n").asInt(); + final String l = asText(node, "l"); + + return new GetCandlesByIndex.Result(candleEntries.build(), n, l); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index e1b044a..eb6dda3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -48,6 +48,8 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(GetBuySellInfo.Result.class, new GetBuySellInfoResultJsonDeserializer()); super.addDeserializer(GetBuySellInfoEx.BuySellInfoEx.class, new BuySellInfoExJsonDeserializer()); super.addDeserializer(GetBuySellInfoEx.Result.class, new GetBuySellInfoExResultJsonDeserializer()); + super.addDeserializer(CandleEntry.class, new CandleEntryJsonDeserializer()); + super.addDeserializer(GetCandlesByIndex.Result.class, new GetCandlesByIndexResultJsonDeserializer()); super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index a477bdf..69b136d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.*; +import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -22,6 +23,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(DestroyTable.Request.class, new DestroyTableRequestJsonSerializer()); super.addSerializer(GetBuySellInfo.Request.class, new GetBuySellInfoRequestJsonSerializer()); super.addSerializer(GetBuySellInfoEx.Request.class, new GetBuySellInfoExRequestJsonSerializer()); + super.addSerializer(GetCandlesByIndex.Request.class, new GetCandlesByIndexRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } From 7a613837156e5a677c9b4c356e84f8f3408e7733 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 03:03:33 +0300 Subject: [PATCH 046/549] Fixed a typo. --- src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index a5c7924..3774c26 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -110,7 +110,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Result request); + GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 7f0d9ae..d46a47f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -227,7 +227,7 @@ public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Requ } @Override - public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Result request) { + public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Request request) { return makeRPC(request, GetCandlesByIndex.Result.class); } From ad8f79e0791aa2bf00f8cccc6c39833acfe54bd5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 03:15:18 +0300 Subject: [PATCH 047/549] Removed Lombok generated getters for transient fields. --- .../enfernuz/quik/lua/rpc/api/structures/CandleEntry.java | 8 +++----- .../quik/lua/rpc/api/structures/DateTimeEntry.java | 6 ++++-- .../quik/lua/rpc/api/structures/GetBuySellInfo.java | 8 +++----- .../quik/lua/rpc/api/structures/GetBuySellInfoEx.java | 8 +++----- .../lua/rpc/events/api/structures/AccountBalance.java | 6 ++++-- .../lua/rpc/events/api/structures/AccountPosition.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/AllTrade.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/DepoLimit.java | 6 ++++-- .../lua/rpc/events/api/structures/DepoLimitDelete.java | 6 ++++-- .../enfernuz/quik/lua/rpc/events/api/structures/Firm.java | 8 +++----- .../rpc/events/api/structures/FuturesClientHolding.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/FuturesLimit.java | 6 ++++-- .../lua/rpc/events/api/structures/FuturesLimitDelete.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/MoneyLimit.java | 6 ++++-- .../lua/rpc/events/api/structures/MoneyLimitDelete.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/NegDeal.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/NegTrade.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/Order.java | 6 ++++-- .../lua/rpc/events/api/structures/ParamEventInfo.java | 6 ++++-- .../lua/rpc/events/api/structures/QuoteEventInfo.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/StopEventInfo.java | 8 ++++++++ .../quik/lua/rpc/events/api/structures/StopOrder.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/Trade.java | 6 ++++-- .../quik/lua/rpc/events/api/structures/TransReply.java | 6 ++++-- 24 files changed, 96 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java index dd7b625..6f2a56a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java @@ -1,9 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; @@ -19,8 +17,8 @@ public class CandleEntry implements Comparable { DateTimeEntry dateTimeEntry; int doesExist; - @NonFinal transient int hashCode; - @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private CandleEntry( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index a4fced6..6302476 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -2,7 +2,9 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ComparisonChain; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -21,8 +23,8 @@ public class DateTimeEntry implements Comparable { int month; int year; - private @NonFinal transient int hashCode; - private @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private DateTimeEntry( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java index 7b2c32d..0177c88 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java @@ -1,9 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; @@ -86,8 +84,8 @@ public static class BuySellInfo { String canBuyOwn; String canSellOwn; - @NonFinal transient int hashCode; - @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private BuySellInfo( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java index 784ebd7..e5799e1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java @@ -1,9 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; @@ -74,8 +72,8 @@ public static class BuySellInfoEx { String isLongAllowed; String isShortAllowed; - @NonFinal transient int hashCode; - @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private BuySellInfoEx( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java index 041d8b2..dd9f55c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -26,8 +28,8 @@ public class AccountBalance { String bankAccId; int firmUse; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private AccountBalance( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java index b41ac7f..cc23aac 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -29,8 +31,8 @@ public class AccountPosition { String marginCall; String settleBal; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private AccountPosition( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java index 67f3b5a..16a738e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -30,8 +32,8 @@ public class AllTrade { String openInterest; String exchangeCode; - private @NonFinal transient int hashCode; - private @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private AllTrade(final long tradeNum, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java index f584ae3..d4d9ecb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -25,8 +27,8 @@ public class DepoLimit { String awgPositionPrice; int limitKind; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private DepoLimit( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java index f226f34..90b703c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -16,8 +18,8 @@ public class DepoLimitDelete { String clientCode; int limitKind; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private DepoLimitDelete( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java index 7510e93..6b43e42 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -1,9 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; @@ -16,8 +14,8 @@ public class Firm { int status; String exchange; - private @NonFinal transient int hashCode; - private @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private Firm(@NonNull final String firmId, final String firmName, int status, final String exchange) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java index 857eb95..db7fcb7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -30,8 +32,8 @@ public class FuturesClientHolding { String totalVarMargin; int sessionStatus; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private FuturesClientHolding( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java index 478a6ef..3723235 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -28,8 +30,8 @@ public class FuturesLimit { String currCode; String realVarMargin; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private FuturesLimit( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java index f936616..1fee944 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -13,8 +15,8 @@ public class FuturesLimitDelete { String firmId; int limitType; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private FuturesLimitDelete(final String firmId, final int limitType) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java index 4ea964f..88e8e6b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -24,8 +26,8 @@ public class MoneyLimit { String leverage; int limitKind; - private @NonFinal transient int hashCode; - private @NonFinal transient String asString; + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder private MoneyLimit( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java index 6fb7d7b..98da010 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -16,8 +18,8 @@ public class MoneyLimitDelete { String firmId; int limitKind; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private MoneyLimitDelete( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java index 62ecbf4..322615b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -60,8 +62,8 @@ public class NegDeal { DateTimeEntry withdrawDateTime; DateTimeEntry dateTime; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private NegDeal( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java index 2857899..5c439dd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -72,8 +74,8 @@ public class NegTrade { int exFlags; String confirmReport; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private NegTrade( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java index 646d777..9bec828 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -54,8 +56,8 @@ public class Order { int passiveOnlyOrder; int visible; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private Order( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java index 4d34629..441bbc5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -13,8 +15,8 @@ public class ParamEventInfo { String classCode; String secCode; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private ParamEventInfo(final String classCode, final String secCode) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java index 73332cb..72d0edb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -13,8 +15,8 @@ public class QuoteEventInfo { String classCode; String secCode; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private QuoteEventInfo(final String classCode, final String secCode) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java index 7985316..c4667f0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java @@ -1,9 +1,17 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.google.common.base.MoreObjects; import lombok.Value; @Value public class StopEventInfo { int signal; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("signal", signal) + .toString(); + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java index ca91363..9bdafcd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -48,8 +50,8 @@ public class StopOrder { DateTimeEntry orderDateTime; DateTimeEntry withdrawDateTime; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private StopOrder( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java index 49be9ce..b46bb23 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -60,8 +62,8 @@ public class Trade { String systemRef; String uid; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder public Trade( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java index 0610e5b..07cd168 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java @@ -2,7 +2,9 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; import lombok.Builder; +import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; @@ -30,8 +32,8 @@ public class TransReply { String secCode; String exchangeCode; - private transient @NonFinal int hashCode; - private transient @NonFinal String asString; + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder private TransReply( From 75ead5ae5135c24a11d4774facc59af1c925e5b4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 23:51:35 +0300 Subject: [PATCH 048/549] Prevented accidental instance creation. --- .../com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java | 2 ++ .../quik/lua/rpc/api/structures/CancelParamRequest.java | 2 ++ .../enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java index 03c90f2..f7e3cce 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java @@ -5,6 +5,8 @@ public final class AllocTable { + private AllocTable() {} + public static enum Request { INSTANCE; } @Value diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java index a91a2fe..092435a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java @@ -7,6 +7,8 @@ public final class CancelParamRequest { + private CancelParamRequest() {} + @Value public static class Request { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java index f852b37..7694bf9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java @@ -11,6 +11,8 @@ public final class GetCandlesByIndex { + private GetCandlesByIndex() {} + @Value public static class Request { From 85bb15d3565dafd8ee915f910791b3022861c42f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 29 Jul 2018 23:53:19 +0300 Subject: [PATCH 049/549] Added request-result pairs for GetCell, GetClassesList, GetClassInfo, GetClassSecurities; added ClassInfo class. --- .../quik/lua/rpc/api/QluaRpcClient.java | 12 +-- .../lua/rpc/api/structures/ClassInfo.java | 81 +++++++++++++++++++ .../quik/lua/rpc/api/structures/GetCell.java | 56 +++++++++++++ .../lua/rpc/api/structures/GetClassInfo.java | 36 +++++++++ .../api/structures/GetClassSecurities.java | 36 +++++++++ .../rpc/api/structures/GetClassesList.java | 22 +++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 46 ++--------- .../jackson/ClassInfoJsonDeserializer.java | 28 +++++++ .../jackson/GetCellRequestJsonSerializer.java | 23 ++++++ .../GetCellResultJsonDeserializer.java | 23 ++++++ .../GetClassInfoRequestJsonSerializer.java | 21 +++++ .../GetClassInfoResultJsonDeserializer.java | 28 +++++++ ...tClassSecuritiesRequestJsonSerializer.java | 21 +++++ ...ClassSecuritiesResultJsonDeserializer.java | 19 +++++ .../GetClassesListRequestJsonSerializer.java | 18 +++++ .../GetClassesListResultJsonDeserializer.java | 19 +++++ .../jackson/QluaJsonJacksonDeserializers.java | 5 ++ .../jackson/QluaJsonJacksonSerializers.java | 4 + 18 files changed, 453 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 3774c26..3104508 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -114,10 +114,10 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - GetCell.Result qlua_GetCell(GetCell.Result args); + GetCell.Result qlua_GetCell(GetCell.Result request); /** * @@ -127,17 +127,17 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - GetClassInfo.Result qlua_getClassInfo(GetClassInfo.Request args); + GetClassInfo.Result qlua_getClassInfo(GetClassInfo.Request request); /** * - * @param args + * @param request * @return */ - GetClassSecurities.Result qlua_getClassSecurities(GetClassSecurities.Request args); + GetClassSecurities.Result qlua_getClassSecurities(GetClassSecurities.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java new file mode 100644 index 0000000..e7e6a57 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java @@ -0,0 +1,81 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.*; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class ClassInfo { + + String firmId; + String name; + String code; + int npars; + int nsecs; + + @Getter(AccessLevel.NONE) + private @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + private @NonFinal transient String asString; + + @Builder + private ClassInfo( + final String firmId, + final String name, + final String code, + int npars, + int nsecs) { + + this.firmId = firmId; + this.name = name; + this.code = code; + this.npars = npars; + this.nsecs = nsecs; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof ClassInfo) ) { + return false; + } else { + final ClassInfo classInfo = (ClassInfo) o; + return npars == classInfo.npars && + nsecs == classInfo.nsecs && + Objects.equals(firmId, classInfo.firmId) && + Objects.equals(name, classInfo.name) && + Objects.equals(code, classInfo.code); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(firmId, name, code, npars, nsecs); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("name", name) + .add("code", code) + .add("npars", npars) + .add("nsecs", nsecs) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java new file mode 100644 index 0000000..029edb8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetCell { + + private GetCell() {} + + @Value + public static class Request { + + int tId; + int key; + int code; + + @Builder + private Request(final int tId, final int key, final int code) { + this.tId = tId; + this.key = key; + this.code = code; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("key", key) + .add("code", code) + .toString(); + } + } + + @Value + public static class Result { + + String image; + String value; + + @Builder + private Result(final @NonNull String image, final @NonNull String value) { + this.image = image; + this.value = value; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("image", image) + .add("value", value) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java new file mode 100644 index 0000000..1ef536e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetClassInfo { + + private GetClassInfo() {} + + @Value + public static class Request { + + @NonNull String classCode; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull ClassInfo classInfo; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_info", classInfo) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java new file mode 100644 index 0000000..0f86cb7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetClassSecurities { + + private GetClassSecurities() {} + + @Value + public static class Request { + + @NonNull String classCode; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .toString(); + } + } + + @Value + public static class Result { + + String classSecurities; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_securities", classSecurities) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java new file mode 100644 index 0000000..09ff8a9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class GetClassesList { + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + String classesList; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("classes_list", classesList) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index d46a47f..fd8f339 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -232,55 +232,23 @@ public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.R } @Override - public GetCell.Result qlua_GetCell(final GetCell.Result args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_CELL, args); - return GetCell.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetCell.Result qlua_GetCell(final GetCell.Result request) { + return makeRPC(request, GetCell.Result.class); } @Override public GetClassesList.Result qlua_getClassesList() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_CLASSES_LIST); - return GetClassesList.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class); } @Override - public GetClassInfo.Result qlua_getClassInfo(final GetClassInfo.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_CLASS_INFO, args); - return GetClassInfo.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetClassInfo.Result qlua_getClassInfo(final GetClassInfo.Request request) { + return makeRPC(request, GetClassInfo.Result.class); } @Override - public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecurities.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_CLASS_SECURITIES, args); - return GetClassSecurities.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecurities.Request request) { + return makeRPC(request, GetClassSecurities.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java new file mode 100644 index 0000000..2a5f1dc --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class ClassInfoJsonDeserializer extends JsonDeserializer { + + @Override + public ClassInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return ClassInfo + .builder() + .firmId( asText(node, "firmid") ) + .name( asText(node, "name") ) + .code( asText(node, "code") ) + .npars( node.get("npars").asInt() ) + .nsecs( node.get("nsecs").asInt() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java new file mode 100644 index 0000000..5791636 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetCell; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetCellRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetCell.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetCell"); + + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("key", value.getKey()); + gen.writeNumberField("code", value.getCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java new file mode 100644 index 0000000..7b2a5be --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetCell; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetCellResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetCell.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return GetCell.Result + .builder() + .image( node.get("image").asText() ) + .value( node.get("value").asText() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java new file mode 100644 index 0000000..9d08bac --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetClassInfo; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetClassInfoRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetClassInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassInfo"); + + gen.writeStringField("class_code", value.getClassCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java new file mode 100644 index 0000000..25e0708 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.api.structures.GetClassInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetClassInfoResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetClassInfo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + + final ClassInfo classInfo = + node.get("class_info") + .traverse(objectCodec) + .readValueAs(ClassInfo.class); + + return new GetClassInfo.Result(classInfo); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java new file mode 100644 index 0000000..d2c15d1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetClassSecurities; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetClassSecuritiesRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetClassSecurities.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassSecurities"); + + gen.writeStringField("class_code", value.getClassCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java new file mode 100644 index 0000000..9c22d30 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetClassSecurities; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetClassSecuritiesResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetClassSecurities.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new GetClassSecurities.Result( node.get("class_securities").asText() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java new file mode 100644 index 0000000..f97042d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetClassesList; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetClassesListRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetClassesList.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassesList"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java new file mode 100644 index 0000000..d529f3a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetClassesList; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetClassesListResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetClassesList.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return new GetClassesList.Result( node.get("classes_list").asText() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index eb6dda3..f8f9b46 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -50,6 +50,11 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(GetBuySellInfoEx.Result.class, new GetBuySellInfoExResultJsonDeserializer()); super.addDeserializer(CandleEntry.class, new CandleEntryJsonDeserializer()); super.addDeserializer(GetCandlesByIndex.Result.class, new GetCandlesByIndexResultJsonDeserializer()); + super.addDeserializer(GetCell.Result.class, new GetCellResultJsonDeserializer()); + super.addDeserializer(GetClassesList.Result.class, new GetClassesListResultJsonDeserializer()); + super.addDeserializer(ClassInfo.class, new ClassInfoJsonDeserializer()); + super.addDeserializer(GetClassInfo.Result.class, new GetClassInfoResultJsonDeserializer()); + super.addDeserializer(GetClassSecurities.Result.class, new GetClassSecuritiesResultJsonDeserializer()); super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 69b136d..32cd299 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -24,6 +24,10 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetBuySellInfo.Request.class, new GetBuySellInfoRequestJsonSerializer()); super.addSerializer(GetBuySellInfoEx.Request.class, new GetBuySellInfoExRequestJsonSerializer()); super.addSerializer(GetCandlesByIndex.Request.class, new GetCandlesByIndexRequestJsonSerializer()); + super.addSerializer(GetCell.Request.class, new GetCellRequestJsonSerializer()); + super.addSerializer(GetClassesList.Request.class, new GetClassesListRequestJsonSerializer()); + super.addSerializer(GetClassInfo.Request.class, new GetClassInfoRequestJsonSerializer()); + super.addSerializer(GetClassSecurities.Request.class, new GetClassSecuritiesRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } From 06c6484f8a2dc518692c794732c070db046977fc Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 31 Jul 2018 02:27:20 +0300 Subject: [PATCH 050/549] Added request-result pairs for GetDepo, GetDepoEx; added Depo class. --- .../quik/lua/rpc/api/QluaRpcClient.java | 8 +- .../quik/lua/rpc/api/structures/Depo.java | 108 ++++++++++++++++++ .../api/structures/DepoLimit.java | 2 +- .../quik/lua/rpc/api/structures/GetDepo.java | 56 +++++++++ .../lua/rpc/api/structures/GetDepoEx.java | 60 ++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 24 +--- .../rpc/events/api/LoggingEventHandler.java | 2 +- .../lua/rpc/events/api/QluaEventHandler.java | 2 +- .../events/impl/ZmqTcpQluaEventProcessor.java | 2 +- .../json/jackson/DepoJsonDeserializer.java | 31 +++++ .../jackson/DepoLimitJsonDeserializer.java | 2 +- .../GetDepoExRequestJsonSerializer.java | 25 ++++ .../GetDepoExResultJsonDeserializer.java | 24 ++++ .../jackson/GetDepoRequestJsonSerializer.java | 24 ++++ .../GetDepoResultJsonDeserializer.java | 23 ++++ .../jackson/QluaJsonJacksonDeserializers.java | 3 + .../jackson/QluaJsonJacksonSerializers.java | 2 + 17 files changed, 369 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/DepoLimit.java (98%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 3104508..34f95f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -141,17 +141,17 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args + * @param request * @return */ - GetDepo.Result qlua_getDepo(GetDepo.Request args); + GetDepo.Result qlua_getDepo(GetDepo.Request request); /** * - * @param args + * @param request * @return */ - GetDepoEx.Result qlua_getDepoEx(GetDepoEx.Request args); + GetDepoEx.Result qlua_getDepoEx(GetDepoEx.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java new file mode 100644 index 0000000..ed0102c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java @@ -0,0 +1,108 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class Depo { + + String depoLimitLockedBuyValue; + String depoCurrentBalance; + String depoLimitLockedBuy; + String depoLimitLocked; + String depoLimitAvailable; + String depoCurrentLimit; + String depoOpenBalance; + String depoOpenLimit; + + @Getter(AccessLevel.NONE) + private @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + private @NonFinal transient String asString; + + @Builder + private Depo( + final String depoLimitLockedBuyValue, + final String depoCurrentBalance, + final String depoLimitLockedBuy, + final String depoLimitLocked, + final String depoLimitAvailable, + final String depoCurrentLimit, + final String depoOpenBalance, + final String depoOpenLimit) { + + this.depoLimitLockedBuyValue = depoLimitLockedBuyValue; + this.depoCurrentBalance = depoCurrentBalance; + this.depoLimitLockedBuy = depoLimitLockedBuy; + this.depoLimitLocked = depoLimitLocked; + this.depoLimitAvailable = depoLimitAvailable; + this.depoCurrentLimit = depoCurrentLimit; + this.depoOpenBalance = depoOpenBalance; + this.depoOpenLimit = depoOpenLimit; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Depo) ) { + return false; + } else { + final Depo depo = (Depo) o; + return Objects.equals(depoLimitLockedBuyValue, depo.depoLimitLockedBuyValue) && + Objects.equals(depoCurrentBalance, depo.depoCurrentBalance) && + Objects.equals(depoLimitLockedBuy, depo.depoLimitLockedBuy) && + Objects.equals(depoLimitLocked, depo.depoLimitLocked) && + Objects.equals(depoLimitAvailable, depo.depoLimitAvailable) && + Objects.equals(depoCurrentLimit, depo.depoCurrentLimit) && + Objects.equals(depoOpenBalance, depo.depoOpenBalance) && + Objects.equals(depoOpenLimit, depo.depoOpenLimit); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + depoLimitLockedBuyValue, + depoCurrentBalance, + depoLimitLockedBuy, + depoLimitLocked, + depoLimitAvailable, + depoCurrentLimit, + depoOpenBalance, + depoOpenLimit + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("depo_limit_locked_buy_value", depoLimitLockedBuyValue) + .add("depo_current_balance", depoCurrentBalance) + .add("depo_limit_locked_buy", depoLimitLockedBuy) + .add("depo_limit_locked", depoLimitLocked) + .add("depo_limit_available", depoLimitAvailable) + .add("depo_current_limit", depoCurrentLimit) + .add("depo_open_balance", depoOpenBalance) + .add("depo_open_limit", depoOpenLimit) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java index d4d9ecb..506d998 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java new file mode 100644 index 0000000..cb7f512 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetDepo { + + private GetDepo() {} + + @Value + public static class Request { + + String clientCode; + String firmId; + String secCode; + String trdAccId; + + @Builder + private Request( + final @NonNull String clientCode, + final @NonNull String firmId, + final @NonNull String secCode, + final @NonNull String trdAccId) { + + this.clientCode = clientCode; + this.firmId = firmId; + this.secCode = secCode; + this.trdAccId = trdAccId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("client_code", clientCode) + .add("firmid", firmId) + .add("sec_code", secCode) + .add("trdaccid", trdAccId) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull Depo depo; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("depo", depo) + .toString(); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java new file mode 100644 index 0000000..0ce72a4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetDepoEx { + + private GetDepoEx() {} + + @Value + public static class Request { + + String firmId; + String clientCode; + String secCode; + String trdAccId; + int limitKind; + + @Builder + private Request( + final @NonNull String firmId, + final @NonNull String clientCode, + final @NonNull String secCode, + final @NonNull String trdAccId, + final int limitKind) { + + this.firmId = firmId; + this.clientCode = clientCode; + this.secCode = secCode; + this.trdAccId = trdAccId; + this.limitKind = limitKind; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("client_code", clientCode) + .add("sec_code", secCode) + .add("trdaccid", trdAccId) + .add("limit_kind", limitKind) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull DepoLimit depoEx; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("depo_ex", depoEx) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index fd8f339..7d30852 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -252,29 +252,13 @@ public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecuritie } @Override - public GetDepo.Result qlua_getDepo(final GetDepo.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_DEPO, args); - return GetDepo.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetDepo.Result qlua_getDepo(final GetDepo.Request request) { + return makeRPC(request, GetDepo.Result.class); } @Override - public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_DEPO_EX, args); - return GetDepoEx.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } + public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request request) { + return makeRPC(request, GetDepoEx.Result.class); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index bc9f892..9ad4f76 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import org.slf4j.*; -import qlua.structs.QluaStructures; /** * Обработчик событий API QLua терминала QUIK, журналирующий (логгирующий) события и их данные. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 868c721..74b55ad 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.events.api.structures.*; -import qlua.structs.QluaStructures; /** * Обработчик событий API QLua терминала QUIK. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index bb679a6..a55cada 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -1,12 +1,12 @@ package com.enfernuz.quik.lua.rpc.events.impl; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.events.api.*; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.*; -import qlua.structs.QluaStructures; import java.io.IOException; import java.util.List; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java new file mode 100644 index 0000000..280653c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; + +final class DepoJsonDeserializer extends JsonDeserializer { + + @Override + public Depo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final JsonNode node = p.getCodec().readTree(p); + return Depo + .builder() + .depoLimitLockedBuyValue( asText(node, "depo_limit_locked_buy_value") ) + .depoCurrentBalance( asText(node, "depo_current_balance") ) + .depoLimitLockedBuy( asText(node, "depo_limit_locked_buy") ) + .depoLimitLocked( asText(node, "depo_limit_locked") ) + .depoLimitAvailable( asText(node, "depo_limit_available") ) + .depoCurrentLimit( asText(node, "depo_current_limit") ) + .depoOpenBalance( asText(node, "depo_open_balance") ) + .depoOpenLimit( asText(node, "depo_open_limit") ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java index 5f12040..ee16da2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java new file mode 100644 index 0000000..b5cc0e6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetDepoEx; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetDepoExRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetDepoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getDepoEx"); + + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("trdaccid", value.getTrdAccId()); + gen.writeNumberField("limit_kind", value.getLimitKind()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java new file mode 100644 index 0000000..ee36ab0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.api.structures.GetDepoEx; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetDepoExResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetDepoEx.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + final DepoLimit depoEx = node.get("depo_ex").traverse(objectCodec).readValueAs(DepoLimit.class); + + return new GetDepoEx.Result(depoEx); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java new file mode 100644 index 0000000..cb0b078 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetDepo; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetDepoRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetDepo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getDepo"); + + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("trdaccid", value.getTrdAccId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java new file mode 100644 index 0000000..2ddc733 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.api.structures.GetDepo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +final class GetDepoResultJsonDeserializer extends JsonDeserializer { + + @Override + public GetDepo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode node = objectCodec.readTree(p); + final Depo depo = node.get("depo").traverse(objectCodec).readValueAs(Depo.class); + return new GetDepo.Result(depo); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index f8f9b46..43117b7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -55,6 +55,9 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(ClassInfo.class, new ClassInfoJsonDeserializer()); super.addDeserializer(GetClassInfo.Result.class, new GetClassInfoResultJsonDeserializer()); super.addDeserializer(GetClassSecurities.Result.class, new GetClassSecuritiesResultJsonDeserializer()); + super.addDeserializer(Depo.class, new DepoJsonDeserializer()); + super.addDeserializer(GetDepo.Result.class, new GetDepoResultJsonDeserializer()); + super.addDeserializer(GetDepoEx.Result.class, new GetDepoExResultJsonDeserializer()); super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 32cd299..b02c42d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -28,6 +28,8 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetClassesList.Request.class, new GetClassesListRequestJsonSerializer()); super.addSerializer(GetClassInfo.Request.class, new GetClassInfoRequestJsonSerializer()); super.addSerializer(GetClassSecurities.Request.class, new GetClassSecuritiesRequestJsonSerializer()); + super.addSerializer(GetDepo.Request.class, new GetDepoRequestJsonSerializer()); + super.addSerializer(GetDepoEx.Request.class, new GetDepoExRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } From 7b9bb03ba84b802ec20bff1c9695081dbbee667a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 1 Aug 2018 01:03:56 +0300 Subject: [PATCH 051/549] Started automating the serde process with Jackson Annotations. --- .../api/structures/FuturesClientHolding.java | 109 ++++++++++-------- .../rpc/events/api/LoggingEventHandler.java | 1 + .../lua/rpc/events/api/QluaEventHandler.java | 1 + .../lua/rpc/events/api/structures/Firm.java | 29 +++-- .../events/impl/ZmqTcpQluaEventProcessor.java | 1 + .../FuturesClientHoldingJsonDeserializer.java | 6 +- .../jackson/FuturesLimitJsonDeserializer.java | 8 +- .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../api/structures/FirmJsonSerdeTest.java | 48 ++++++++ .../FuturesClientHoldingJsonSerdeTest.java | 65 +++++++++++ src/test/resources/firm.json | 6 + .../resources/futures_client_holding.json | 21 ++++ 12 files changed, 231 insertions(+), 65 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FuturesClientHolding.java (57%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java create mode 100644 src/test/resources/firm.json create mode 100644 src/test/resources/futures_client_holding.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java similarity index 57% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java index db7fcb7..fca232f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java @@ -1,5 +1,10 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -12,50 +17,54 @@ @Value public class FuturesClientHolding { - String firmId; - String trdAccId; - String secCode; - int type; - String startBuy; - String startSell; - String todayBuy; - String todaySell; - String totalNet; - int openBuys; - int openSells; - String cbpLUsed; - String cbpLPlanned; - String varMargin; - String avrPosnPrice; - String positionValue; - String realVarMargin; - String totalVarMargin; - int sessionStatus; - - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @JsonProperty("firmid") String firmId; + @JsonProperty("trdaccid") String trdAccId; + @JsonProperty("sec_code") String secCode; + @JsonProperty("type") int type; + @JsonProperty("startbuy") String startBuy; + @JsonProperty("startsell") String startSell; + @JsonProperty("todaybuy") String todayBuy; + @JsonProperty("todaysell") String todaySell; + @JsonProperty("totalnet") String totalNet; + @JsonProperty("openbuys") int openBuys; + @JsonProperty("opensells") int openSells; + @JsonProperty("cbplused") String cbplUsed; + @JsonProperty("cbplplanned") String cbplPlanned; + @JsonProperty("varmargin") String varMargin; + @JsonProperty("avrposnprice") String avrPosnPrice; + @JsonProperty("positionvalue") String positionValue; + @JsonProperty("real_varmargin") String realVarMargin; + @JsonProperty("total_varmargin") String totalVarMargin; + @JsonProperty("session_status") int sessionStatus; + + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient String asString; @Builder + @JsonCreator private FuturesClientHolding( - final String firmId, - final String trdAccId, - final String secCode, - final int type, - final String startBuy, - final String startSell, - final String todayBuy, - final String todaySell, - final String totalNet, - final int openBuys, - final int openSells, - final String cbpLUsed, - final String cbpLPlanned, - final String varMargin, - final String avrPosnPrice, - final String positionValue, - final String realVarMargin, - final String totalVarMargin, - final int sessionStatus) { + @JsonProperty("firmid") String firmId, + @JsonProperty("trdaccid") String trdAccId, + @JsonProperty("sec_code") String secCode, + @JsonProperty(value = "type", required = true) int type, + @JsonProperty("startbuy") String startBuy, + @JsonProperty("startsell") String startSell, + @JsonProperty("todaybuy") String todayBuy, + @JsonProperty("todaysell") String todaySell, + @JsonProperty("totalnet") String totalNet, + @JsonProperty(value = "openbuys", required = true) int openBuys, + @JsonProperty(value = "opensells", required = true) int openSells, + @JsonProperty("cbplused") String cbplUsed, + @JsonProperty("cbplplanned") String cbplPlanned, + @JsonProperty("varmargin") String varMargin, + @JsonProperty("avrposnprice") String avrPosnPrice, + @JsonProperty("positionvalue") String positionValue, + @JsonProperty("real_varmargin") String realVarMargin, + @JsonProperty("total_varmargin") String totalVarMargin, + @JsonProperty(value = "session_status", required = true) int sessionStatus) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -68,8 +77,8 @@ private FuturesClientHolding( this.totalNet = totalNet; this.openBuys = openBuys; this.openSells = openSells; - this.cbpLUsed = cbpLUsed; - this.cbpLPlanned = cbpLPlanned; + this.cbplUsed = cbplUsed; + this.cbplPlanned = cbplPlanned; this.varMargin = varMargin; this.avrPosnPrice = avrPosnPrice; this.positionValue = positionValue; @@ -99,8 +108,8 @@ public boolean equals(final Object o) { Objects.equals(todayBuy, that.todayBuy) && Objects.equals(todaySell, that.todaySell) && Objects.equals(totalNet, that.totalNet) && - Objects.equals(cbpLUsed, that.cbpLUsed) && - Objects.equals(cbpLPlanned, that.cbpLPlanned) && + Objects.equals(cbplUsed, that.cbplUsed) && + Objects.equals(cbplPlanned, that.cbplPlanned) && Objects.equals(varMargin, that.varMargin) && Objects.equals(avrPosnPrice, that.avrPosnPrice) && Objects.equals(positionValue, that.positionValue) && @@ -125,8 +134,8 @@ public int hashCode() { totalNet, openBuys, openSells, - cbpLUsed, - cbpLPlanned, + cbplUsed, + cbplPlanned, varMargin, avrPosnPrice, positionValue, @@ -155,8 +164,8 @@ public String toString() { .add("totalnet", totalNet) .add("openbuys", openBuys) .add("opensells", openSells) - .add("cbplused", cbpLUsed) - .add("cbplplanned", cbpLPlanned) + .add("cbplused", cbplUsed) + .add("cbplplanned", cbplPlanned) .add("varmargin", varMargin) .add("avrposnprice", avrPosnPrice) .add("positionvalue", positionValue) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 9ad4f76..d274a01 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import org.slf4j.*; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 74b55ad..f799fe0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.enfernuz.quik.lua.rpc.events.api.structures.*; /** diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java index 6b43e42..a07a14f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java @@ -1,6 +1,12 @@ package com.enfernuz.quik.lua.rpc.events.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; import com.google.common.base.MoreObjects; +import com.sun.istack.internal.NotNull; import lombok.*; import lombok.experimental.NonFinal; @@ -9,16 +15,25 @@ @Value public class Firm { - String firmId; - String firmName; - int status; - String exchange; + @JsonProperty("firm_id") String firmId; + @JsonProperty("firm_name") String firmName; + @JsonProperty("status") int status; + @JsonProperty("exchange") String exchange; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient String asString; @Builder - private Firm(@NonNull final String firmId, final String firmName, int status, final String exchange) { + @JsonCreator + private Firm( + @JsonProperty("firm_id") @NonNull final String firmId, + @JsonProperty("firm_name") final String firmName, + @JsonProperty(value = "status", required = true) int status, + @JsonProperty("exchange") final String exchange) { + this.firmId = firmId; this.firmName = firmName; this.status = status; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index a55cada..2709935 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.enfernuz.quik.lua.rpc.events.api.*; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java index e32b63a..68d176e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; @@ -28,8 +28,8 @@ public FuturesClientHolding deserialize(final JsonParser p, final Deserializatio .totalNet( asText(node, "totalnet") ) .openBuys( node.get("openbuys").asInt() ) .openSells( node.get("opensells").asInt() ) - .cbpLUsed( asText(node, "cbplused") ) - .cbpLPlanned( asText(node, "cbplplanned") ) + .cbplUsed( asText(node, "cbplused") ) + .cbplPlanned( asText(node, "cbplplanned") ) .varMargin( asText(node, "varmargin") ) .avrPosnPrice( asText(node, "avrposnprice") ) .positionValue( asText(node, "positionvalue") ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java index 84db677..fb8efc7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java @@ -24,12 +24,12 @@ public FuturesLimit deserialize(final JsonParser p, final DeserializationContext .liquidityCoef( asText(node, "liquidity_coef") ) .cbpPrevLimit( asText(node, "cbp_prev_limit") ) .cbpLimit( asText(node, "cbplimit") ) - .cbpLUsed( asText(node, "cbplused") ) - .cbpLPlanned( asText(node, "cbplplanned") ) + .cbplUsed( asText(node, "cbplused") ) + .cbplPlanned( asText(node, "cbplplanned") ) .varMargin( asText(node, "varmargin") ) .accruedInt( asText(node, "accruedint") ) - .cbpLUsedForOrders( asText(node, "cbplused_for_orders") ) - .cbpLUsedForPositions( asText(node, "cbplused_for_positions") ) + .cbplUsedForOrders( asText(node, "cbplused_for_orders") ) + .cbplUsedForPositions( asText(node, "cbplused_for_positions") ) .optionsPremium( asText(node, "options_premium") ) .tsComission( asText(node, "ts_comission") ) .kgo( asText(node, "kgo") ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 43117b7..6e94570 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -19,7 +19,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); super.addDeserializer(FuturesLimit.class, new FuturesLimitJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); - super.addDeserializer(FuturesClientHolding.class, new FuturesClientHoldingJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java new file mode 100644 index 0000000..6e86859 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class FirmJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static Firm firm; + private static String firmAsJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + firm = Firm.builder() + .firmId("1") + .firmName("2") + .status(3) + .exchange("4") + .build(); + + firmAsJson = Resources.toString(Resources.getResource("firm.json"), Charsets.UTF_8); + } + + @Test + public void testSerialize() throws IOException { + + final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(firm); + + assertEquals(firmAsJson, actual); + } + + @Test + public void testDeserialize() throws IOException { + + final Firm actual = sut.readValue(firmAsJson, Firm.class); + + assertEquals(firm, actual); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java new file mode 100644 index 0000000..6c6e67b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class FuturesClientHoldingJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static FuturesClientHolding futuresClientHolding; + private static String futuresClientHoldingAsJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + futuresClientHolding = FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + + futuresClientHoldingAsJson = + Resources.toString(Resources.getResource("futures_client_holding.json"), Charsets.UTF_8); + } + + @Test + public void testSerialize() throws IOException { + + final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(futuresClientHolding); + + assertEquals(futuresClientHoldingAsJson, actual); + } + + @Test + public void testDeserialize() throws IOException { + + final FuturesClientHolding actual = sut.readValue(futuresClientHoldingAsJson, FuturesClientHolding.class); + + assertEquals(futuresClientHolding, actual); + } +} diff --git a/src/test/resources/firm.json b/src/test/resources/firm.json new file mode 100644 index 0000000..188fa83 --- /dev/null +++ b/src/test/resources/firm.json @@ -0,0 +1,6 @@ +{ + "firm_id" : "1", + "firm_name" : "2", + "status" : 3, + "exchange" : "4" +} \ No newline at end of file diff --git a/src/test/resources/futures_client_holding.json b/src/test/resources/futures_client_holding.json new file mode 100644 index 0000000..32ee5e1 --- /dev/null +++ b/src/test/resources/futures_client_holding.json @@ -0,0 +1,21 @@ +{ + "firmid" : "1", + "trdaccid" : "2", + "sec_code" : "3", + "type" : 4, + "startbuy" : "5", + "startsell" : "6", + "todaybuy" : "7", + "todaysell" : "8", + "totalnet" : "9", + "openbuys" : 10, + "opensells" : 11, + "cbplused" : "12", + "cbplplanned" : "13", + "varmargin" : "14", + "avrposnprice" : "15", + "positionvalue" : "16", + "real_varmargin" : "17", + "total_varmargin" : "18", + "session_status" : 19 +} \ No newline at end of file From 5ee2419343d43f3f74ebbd295b2c90b47a348e7e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 1 Aug 2018 01:48:16 +0300 Subject: [PATCH 052/549] Added request-result pair for GetFuturesHolding. --- .../rpc/api/structures/GetFuturesHolding.java | 57 +++++++++++++ .../GetFuturesHoldingJsonSerdeTest.java | 79 +++++++++++++++++++ .../resources/getFuturesHolding.request.json | 6 ++ .../resources/getFuturesHolding.result.json | 23 ++++++ 4 files changed, 165 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java create mode 100644 src/test/resources/getFuturesHolding.request.json create mode 100644 src/test/resources/getFuturesHolding.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java new file mode 100644 index 0000000..5462d80 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.sun.istack.internal.NotNull; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetFuturesHolding { + + private GetFuturesHolding() {} + + @Value + public static class Request { + + @JsonProperty("firmid") String firmId; + @JsonProperty("trdaccid") String trdAccId; + @JsonProperty("sec_code") String secCode; + @JsonProperty("type") int type; + + @Builder + private Request( + final @NonNull String firmId, + final @NonNull String trdAccId, + final @NonNull String secCode, + final int type) { + + this.firmId = firmId; + this.trdAccId = trdAccId; + this.secCode = secCode; + this.type = type; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("trdaccid", trdAccId) + .add("sec_code", secCode) + .add("type", type) + .toString(); + } + } + + @Value + public static class Result { + + FuturesClientHolding futuresHolding; + + @JsonCreator + public Result(final @JsonProperty(value = "futures_holding", required = true) @NotNull FuturesClientHolding futuresHolding) { + this.futuresHolding = futuresHolding; + } + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java new file mode 100644 index 0000000..3b4e632 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesHolding; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetFuturesHoldingJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static GetFuturesHolding.Request requestObj; + private static GetFuturesHolding.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + requestObj = GetFuturesHolding.Request.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .build(); + + final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + + resultObj = new GetFuturesHolding.Result(futuresClientHolding); + + requestJson = + Resources.toString(Resources.getResource("getFuturesHolding.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getFuturesHolding.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetFuturesHolding.Result actualResultObj = sut.readValue(resultJson, GetFuturesHolding.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getFuturesHolding.request.json b/src/test/resources/getFuturesHolding.request.json new file mode 100644 index 0000000..7be4a9b --- /dev/null +++ b/src/test/resources/getFuturesHolding.request.json @@ -0,0 +1,6 @@ +{ + "firmid" : "1", + "trdaccid" : "2", + "sec_code" : "3", + "type" : 4 +} \ No newline at end of file diff --git a/src/test/resources/getFuturesHolding.result.json b/src/test/resources/getFuturesHolding.result.json new file mode 100644 index 0000000..6044118 --- /dev/null +++ b/src/test/resources/getFuturesHolding.result.json @@ -0,0 +1,23 @@ +{ + "futures_holding" : { + "firmid" : "1", + "trdaccid" : "2", + "sec_code" : "3", + "type" : 4, + "startbuy" : "5", + "startsell" : "6", + "todaybuy" : "7", + "todaysell" : "8", + "totalnet" : "9", + "openbuys" : 10, + "opensells" : 11, + "cbplused" : "12", + "cbplplanned" : "13", + "varmargin" : "14", + "avrposnprice" : "15", + "positionvalue" : "16", + "real_varmargin" : "17", + "total_varmargin" : "18", + "session_status" : 19 + } +} \ No newline at end of file From 0fcc6af3200f5e27cd381d7e3469d8a4ddcfcf8c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 1 Aug 2018 02:03:46 +0300 Subject: [PATCH 053/549] Added JSON serde via Jackson annotations for FuturesLimit; removed manual JSON deserializers for Firm, FuturesClientHolding, FuturesLimit. --- .../api/structures/FuturesLimit.java | 117 ++++++++++-------- .../rpc/events/api/LoggingEventHandler.java | 1 + .../lua/rpc/events/api/QluaEventHandler.java | 1 + .../events/impl/ZmqTcpQluaEventProcessor.java | 1 + .../json/jackson/FirmJsonDeserializer.java | 28 ----- .../FuturesClientHoldingJsonDeserializer.java | 42 ------- .../jackson/FuturesLimitJsonDeserializer.java | 40 ------ .../jackson/QluaJsonJacksonDeserializers.java | 2 - .../structures/FuturesLimitJsonSerdeTest.java | 62 ++++++++++ src/test/resources/futures_limit.json | 19 +++ 10 files changed, 147 insertions(+), 166 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FuturesLimit.java (50%) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java create mode 100644 src/test/resources/futures_limit.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java similarity index 50% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java index 3723235..140e7b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java @@ -1,5 +1,8 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -12,46 +15,52 @@ @Value public class FuturesLimit { - String firmId; - String trdAccId; - int limitType; - String liquidityCoef; - String cbpPrevLimit; - String cbpLimit; - String cbpLUsed; - String cbpLPlanned; - String varMargin; - String accruedInt; - String cbpLUsedForOrders; - String cbpLUsedForPositions; - String optionsPremium; - String tsComission; - String kgo; - String currCode; - String realVarMargin; - - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @JsonProperty("firmid") String firmId; + @JsonProperty("trdaccid") String trdAccId; + @JsonProperty(value = "limit_type") int limitType; + @JsonProperty("liquidity_coef") String liquidityCoef; + @JsonProperty("cbp_prev_limit") String cbpPrevLimit; + @JsonProperty("cbplimit") String cbpLimit; + @JsonProperty("cbplused") String cbplUsed; + @JsonProperty("cbplplanned") String cbplPlanned; + @JsonProperty("varmargin") String varMargin; + @JsonProperty("accruedint") String accruedInt; + @JsonProperty("cbplused_for_orders") String cbplUsedForOrders; + @JsonProperty("cbplused_for_positions") String cbplUsedForPositions; + @JsonProperty("options_premium") String optionsPremium; + @JsonProperty("ts_comission") String tsComission; + @JsonProperty("kgo") String kgo; + @JsonProperty("currcode") String currCode; + @JsonProperty("real_varmargin") String realVarMargin; + + @Getter(AccessLevel.NONE) + @JsonIgnore + private @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + @JsonIgnore + private @NonFinal transient String asString; @Builder + @JsonCreator private FuturesLimit( - final String firmId, - final String trdAccId, - final int limitType, - final String liquidityCoef, - final String cbpPrevLimit, - final String cbpLimit, - final String cbpLUsed, - final String cbpLPlanned, - final String varMargin, - final String accruedInt, - final String cbpLUsedForOrders, - final String cbpLUsedForPositions, - final String optionsPremium, - final String tsComission, - final String kgo, - final String currCode, - final String realVarMargin) { + final @JsonProperty("firmid") String firmId, + final @JsonProperty("trdaccid") String trdAccId, + final @JsonProperty(value = "limit_type", required = true) int limitType, + final @JsonProperty("liquidity_coef") String liquidityCoef, + final @JsonProperty("cbp_prev_limit") String cbpPrevLimit, + final @JsonProperty("cbplimit") String cbpLimit, + final @JsonProperty("cbplused") String cbplUsed, + final @JsonProperty("cbplplanned") String cbplPlanned, + final @JsonProperty("varmargin") String varMargin, + final @JsonProperty("accruedint") String accruedInt, + final @JsonProperty("cbplused_for_orders") String cbplUsedForOrders, + final @JsonProperty("cbplused_for_positions") String cbplUsedForPositions, + final @JsonProperty("options_premium") String optionsPremium, + final @JsonProperty("ts_comission") String tsComission, + final @JsonProperty("kgo") String kgo, + final @JsonProperty("currcode") String currCode, + final @JsonProperty("real_varmargin") String realVarMargin) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -59,12 +68,12 @@ private FuturesLimit( this.liquidityCoef = liquidityCoef; this.cbpPrevLimit = cbpPrevLimit; this.cbpLimit = cbpLimit; - this.cbpLUsed = cbpLUsed; - this.cbpLPlanned = cbpLPlanned; + this.cbplUsed = cbplUsed; + this.cbplPlanned = cbplPlanned; this.varMargin = varMargin; this.accruedInt = accruedInt; - this.cbpLUsedForOrders = cbpLUsedForOrders; - this.cbpLUsedForPositions = cbpLUsedForPositions; + this.cbplUsedForOrders = cbplUsedForOrders; + this.cbplUsedForPositions = cbplUsedForPositions; this.optionsPremium = optionsPremium; this.tsComission = tsComission; this.kgo = kgo; @@ -87,12 +96,12 @@ public boolean equals(final Object o) { Objects.equals(liquidityCoef, that.liquidityCoef) && Objects.equals(cbpPrevLimit, that.cbpPrevLimit) && Objects.equals(cbpLimit, that.cbpLimit) && - Objects.equals(cbpLUsed, that.cbpLUsed) && - Objects.equals(cbpLPlanned, that.cbpLPlanned) && + Objects.equals(cbplUsed, that.cbplUsed) && + Objects.equals(cbplPlanned, that.cbplPlanned) && Objects.equals(varMargin, that.varMargin) && Objects.equals(accruedInt, that.accruedInt) && - Objects.equals(cbpLUsedForOrders, that.cbpLUsedForOrders) && - Objects.equals(cbpLUsedForPositions, that.cbpLUsedForPositions) && + Objects.equals(cbplUsedForOrders, that.cbplUsedForOrders) && + Objects.equals(cbplUsedForPositions, that.cbplUsedForPositions) && Objects.equals(optionsPremium, that.optionsPremium) && Objects.equals(tsComission, that.tsComission) && Objects.equals(kgo, that.kgo) && @@ -112,12 +121,12 @@ public int hashCode() { liquidityCoef, cbpPrevLimit, cbpLimit, - cbpLUsed, - cbpLPlanned, + cbplUsed, + cbplPlanned, varMargin, accruedInt, - cbpLUsedForOrders, - cbpLUsedForPositions, + cbplUsedForOrders, + cbplUsedForPositions, optionsPremium, tsComission, kgo, @@ -140,12 +149,12 @@ public String toString() { .add("liquidity_coef", liquidityCoef) .add("cbp_prev_limit", cbpPrevLimit) .add("cbplimit", cbpLimit) - .add("cbplused", cbpLUsed) - .add("cbplplanned", cbpLPlanned) + .add("cbplused", cbplUsed) + .add("cbplplanned", cbplPlanned) .add("varmargin", varMargin) .add("accruedint", accruedInt) - .add("cbplused_for_orders", cbpLUsedForOrders) - .add("cbplused_for_positions", cbpLUsedForPositions) + .add("cbplused_for_orders", cbplUsedForOrders) + .add("cbplused_for_positions", cbplUsedForPositions) .add("options_premium", optionsPremium) .add("ts_comission", tsComission) .add("kgo", kgo) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index d274a01..1210cc6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import org.slf4j.*; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index f799fe0..8137683 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.enfernuz.quik.lua.rpc.events.api.structures.*; /** diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 2709935..9a4ef31 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.enfernuz.quik.lua.rpc.events.api.*; import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java deleted file mode 100644 index fbf8cd5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FirmJsonDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class FirmJsonDeserializer extends JsonDeserializer { - - @Override - public Firm deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) - throws IOException { - - final JsonNode node = jsonParser.getCodec().readTree(jsonParser); - return Firm - .builder() - .firmId( node.get("firmid").asText() ) - .firmName( asText(node, "firm_name") ) - .status( node.get("status").asInt() ) - .exchange( asText(node, "exchange") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java deleted file mode 100644 index 68d176e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesClientHoldingJsonDeserializer.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class FuturesClientHoldingJsonDeserializer extends JsonDeserializer { - - @Override - public FuturesClientHolding deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return FuturesClientHolding.builder() - .firmId( asText(node, "firmid") ) - .trdAccId( asText(node, "trdaccid") ) - .secCode( asText(node, "sec_code") ) - .type( node.get("type").asInt() ) - .startBuy( asText(node, "startbuy") ) - .startSell( asText(node, "startsell") ) - .todayBuy( asText(node, "todaybuy") ) - .todaySell( asText(node, "todaysell") ) - .totalNet( asText(node, "totalnet") ) - .openBuys( node.get("openbuys").asInt() ) - .openSells( node.get("opensells").asInt() ) - .cbplUsed( asText(node, "cbplused") ) - .cbplPlanned( asText(node, "cbplplanned") ) - .varMargin( asText(node, "varmargin") ) - .avrPosnPrice( asText(node, "avrposnprice") ) - .positionValue( asText(node, "positionvalue") ) - .realVarMargin( asText(node, "real_varmargin") ) - .totalVarMargin( asText(node, "total_varmargin") ) - .sessionStatus( node.get("session_status").asInt() ) - .build(); - - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java deleted file mode 100644 index fb8efc7..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitJsonDeserializer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesLimit; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class FuturesLimitJsonDeserializer extends JsonDeserializer { - - @Override - public FuturesLimit deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return FuturesLimit - .builder() - .firmId( asText(node, "firmid") ) - .trdAccId( asText(node, "trdaccid") ) - .limitType( node.get("limit_type").asInt() ) - .liquidityCoef( asText(node, "liquidity_coef") ) - .cbpPrevLimit( asText(node, "cbp_prev_limit") ) - .cbpLimit( asText(node, "cbplimit") ) - .cbplUsed( asText(node, "cbplused") ) - .cbplPlanned( asText(node, "cbplplanned") ) - .varMargin( asText(node, "varmargin") ) - .accruedInt( asText(node, "accruedint") ) - .cbplUsedForOrders( asText(node, "cbplused_for_orders") ) - .cbplUsedForPositions( asText(node, "cbplused_for_positions") ) - .optionsPremium( asText(node, "options_premium") ) - .tsComission( asText(node, "ts_comission") ) - .kgo( asText(node, "kgo") ) - .currCode( asText(node, "currcode") ) - .realVarMargin( asText(node, "real_varmargin") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 6e94570..3079e0a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -12,12 +12,10 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); super.addDeserializer(ConnectedEventInfo.class, new ConnectedEventInfoJsonDeserializer()); - super.addDeserializer(Firm.class, new FirmJsonDeserializer()); super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); - super.addDeserializer(FuturesLimit.class, new FuturesLimitJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java new file mode 100644 index 0000000..9e74fee --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class FuturesLimitJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static FuturesLimit expectedObj; + private static String expectedJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + expectedObj = FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + + expectedJson = Resources.toString(Resources.getResource("futures_limit.json"), Charsets.UTF_8); + } + + @Test + public void testSerialize() throws IOException { + + final String actualJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(expectedObj); + + assertEquals(expectedJson, actualJson); + } + + @Test + public void testDeserialize() throws IOException { + + final FuturesLimit actualObj = sut.readValue(expectedJson, FuturesLimit.class); + + assertEquals(expectedObj, actualObj); + } +} diff --git a/src/test/resources/futures_limit.json b/src/test/resources/futures_limit.json new file mode 100644 index 0000000..ac8faf7 --- /dev/null +++ b/src/test/resources/futures_limit.json @@ -0,0 +1,19 @@ +{ + "firmid" : "1", + "trdaccid" : "2", + "limit_type" : 3, + "liquidity_coef" : "4", + "cbp_prev_limit" : "5", + "cbplimit" : "6", + "cbplused" : "7", + "cbplplanned" : "8", + "varmargin" : "9", + "accruedint" : "10", + "cbplused_for_orders" : "11", + "cbplused_for_positions" : "12", + "options_premium" : "13", + "ts_comission" : "14", + "kgo" : "15", + "currcode" : "16", + "real_varmargin" : "17" +} \ No newline at end of file From db30f2d519ff8df5ed37682dfa4fdf5b7d1ffc49 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 2 Aug 2018 00:15:48 +0300 Subject: [PATCH 054/549] Changed request JSON serialization for GetFuturesHolding.Request (added a hand-written JSON serializer); added request-result pair for GetFuturesLimit. --- .../rpc/api/structures/GetFuturesHolding.java | 8 +- .../rpc/api/structures/GetFuturesLimit.java | 56 +++++++++++++ ...etFuturesHoldingRequestJsonSerializer.java | 24 ++++++ .../GetFuturesLimitRequestJsonSerializer.java | 24 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../serde/json/jackson/QluaJsonModule.java | 1 + .../GetFuturesHoldingJsonSerdeTest.java | 6 +- .../GetFuturesLimitJsonSerdeTest.java | 81 +++++++++++++++++++ .../resources/getFuturesHolding.request.json | 11 ++- .../resources/getFuturesLimit.request.json | 9 +++ .../resources/getFuturesLimit.result.json | 21 +++++ 11 files changed, 234 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java create mode 100644 src/test/resources/getFuturesLimit.request.json create mode 100644 src/test/resources/getFuturesLimit.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java index 5462d80..2f65cb6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java @@ -15,10 +15,10 @@ private GetFuturesHolding() {} @Value public static class Request { - @JsonProperty("firmid") String firmId; - @JsonProperty("trdaccid") String trdAccId; - @JsonProperty("sec_code") String secCode; - @JsonProperty("type") int type; + String firmId; + String trdAccId; + String secCode; + int type; @Builder private Request( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java new file mode 100644 index 0000000..b209e70 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.sun.istack.internal.NotNull; +import lombok.Builder; +import lombok.Value; + +public final class GetFuturesLimit { + + private GetFuturesLimit() {} + + @Value + public static class Request { + + String firmId; + String trdAccId; + int limitType; + String currCode; + + @Builder + private Request( + final @NotNull String firmId, + final @NotNull String trdAccId, + final @NotNull int limitType, + final @NotNull String currCode) { + + this.firmId = firmId; + this.trdAccId = trdAccId; + this.limitType = limitType; + this.currCode = currCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("trdaccid", trdAccId) + .add("limit_type", limitType) + .add("currcode", currCode) + .toString(); + } + } + + @Value + public static class Result { + + FuturesLimit futuresLimit; + + @JsonCreator + public Result(final @JsonProperty(value = "futures_limit", required = true) @NotNull FuturesLimit futuresLimit) { + this.futuresLimit = futuresLimit; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java new file mode 100644 index 0000000..b29e3d8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesHolding; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetFuturesHoldingRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetFuturesHolding.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getFuturesHolding"); + + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("trdaccid", value.getTrdAccId()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeNumberField("type", value.getType()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java new file mode 100644 index 0000000..ef65fcf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesLimit; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetFuturesLimitRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetFuturesLimit.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getFuturesLimit"); + + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("trdaccid", value.getTrdAccId()); + gen.writeNumberField("limit_type", value.getLimitType()); + gen.writeStringField("currcode", value.getCurrCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index b02c42d..44f7398 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -30,6 +30,8 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetClassSecurities.Request.class, new GetClassSecuritiesRequestJsonSerializer()); super.addSerializer(GetDepo.Request.class, new GetDepoRequestJsonSerializer()); super.addSerializer(GetDepoEx.Request.class, new GetDepoExRequestJsonSerializer()); + super.addSerializer(GetFuturesHolding.Request.class, new GetFuturesHoldingRequestJsonSerializer()); + super.addSerializer(GetFuturesLimit.Request.class, new GetFuturesLimitRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java index 6345bca..ee081d6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java @@ -9,6 +9,7 @@ public void setupModule(SetupContext context) { super.setupModule(context); + context.addSerializers( new QluaJsonJacksonSerializers() ); context.addDeserializers( new QluaJsonJacksonDeserializers() ); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java index 3b4e632..41d19f7 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; import com.google.common.io.Resources; @@ -14,7 +15,7 @@ public class GetFuturesHoldingJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static ObjectMapper sut; private static GetFuturesHolding.Request requestObj; private static GetFuturesHolding.Result resultObj; @@ -24,6 +25,9 @@ public class GetFuturesHoldingJsonSerdeTest { @BeforeClass public static void globalSetup() throws IOException { + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + requestObj = GetFuturesHolding.Request.builder() .firmId("1") .trdAccId("2") diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java new file mode 100644 index 0000000..0ed11ee --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java @@ -0,0 +1,81 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetFuturesLimitJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetFuturesLimit.Request requestObj; + private static GetFuturesLimit.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetFuturesLimit.Request.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .currCode("4") + .build(); + + final FuturesLimit futuresLimit = FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + + resultObj = new GetFuturesLimit.Result(futuresLimit); + + requestJson = + Resources.toString(Resources.getResource("getFuturesLimit.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getFuturesLimit.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetFuturesLimit.Result actualResultObj = sut.readValue(resultJson, GetFuturesLimit.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getFuturesHolding.request.json b/src/test/resources/getFuturesHolding.request.json index 7be4a9b..d5ae67a 100644 --- a/src/test/resources/getFuturesHolding.request.json +++ b/src/test/resources/getFuturesHolding.request.json @@ -1,6 +1,9 @@ { - "firmid" : "1", - "trdaccid" : "2", - "sec_code" : "3", - "type" : 4 + "method" : "getFuturesHolding", + "args" : { + "firmid" : "1", + "trdaccid" : "2", + "sec_code" : "3", + "type" : 4 + } } \ No newline at end of file diff --git a/src/test/resources/getFuturesLimit.request.json b/src/test/resources/getFuturesLimit.request.json new file mode 100644 index 0000000..eb1ec2b --- /dev/null +++ b/src/test/resources/getFuturesLimit.request.json @@ -0,0 +1,9 @@ +{ + "method" : "getFuturesLimit", + "args" : { + "firmid" : "1", + "trdaccid" : "2", + "limit_type" : 3, + "currcode" : "4" + } +} \ No newline at end of file diff --git a/src/test/resources/getFuturesLimit.result.json b/src/test/resources/getFuturesLimit.result.json new file mode 100644 index 0000000..5716499 --- /dev/null +++ b/src/test/resources/getFuturesLimit.result.json @@ -0,0 +1,21 @@ +{ + "futures_limit" : { + "firmid" : "1", + "trdaccid" : "2", + "limit_type" : 3, + "liquidity_coef" : "4", + "cbp_prev_limit" : "5", + "cbplimit" : "6", + "cbplused" : "7", + "cbplplanned" : "8", + "varmargin" : "9", + "accruedint" : "10", + "cbplused_for_orders" : "11", + "cbplused_for_positions" : "12", + "options_premium" : "13", + "ts_comission" : "14", + "kgo" : "15", + "currcode" : "16", + "real_varmargin" : "17" + } +} \ No newline at end of file From f637c02ca2212fe823d3539d1ae6853bac67fd2d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 3 Aug 2018 02:52:04 +0300 Subject: [PATCH 055/549] Added request-result pairs for GetInfoParam, GetItem. --- .../quik/lua/rpc/api/QluaRpcClient.java | 792 ++++----- .../lua/rpc/api/structures/GetInfoParam.java | 43 + .../quik/lua/rpc/api/structures/GetItem.java | 53 + .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 1514 ++++++++--------- .../application/RpcExampleApplication.java | 6 +- .../GetInfoParamRequestJsonSerializer.java | 21 + .../jackson/GetItemRequestJsonSerializer.java | 22 + .../jackson/QluaJsonJacksonSerializers.java | 2 + src/main/proto/qlua/rpc/getInfoParam.proto | 6 +- .../zmq/impl/ZmqTcpQluaRpcClientImplTest.java | 46 +- .../structures/GetInfoParamJsonSerdeTest.java | 55 + .../api/structures/GetItemJsonSerdeTest.java | 63 + src/test/resources/getInfoParam.request.json | 6 + src/test/resources/getInfoParam.result.json | 3 + src/test/resources/getItem.request.json | 7 + src/test/resources/getItem.result.json | 7 + 16 files changed, 1446 insertions(+), 1200 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java create mode 100644 src/test/resources/getInfoParam.request.json create mode 100644 src/test/resources/getInfoParam.result.json create mode 100644 src/test/resources/getItem.request.json create mode 100644 src/test/resources/getItem.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 34f95f6..9d5fd17 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -155,420 +155,420 @@ public interface QluaRpcClient extends Gateway, Securable { /** * - * @param args - * @return - */ - GetFuturesHolding.Result qlua_getFuturesHolding(GetFuturesHolding.Request args); - - /** - * - * @param args - * @return - */ - GetFuturesLimit.Result qlua_getFuturesLimit(GetFuturesLimit.Request args); - - /** - * - * @param args - * @return - - */ - GetInfoParam.Result qlua_getInfoParam(GetInfoParam.Request args); - - /** - * - * @param args - * @return - */ - GetItem.Result qlua_getItem(GetItem.Request args); - - /** - * - * @param args - * @return - */ - GetLabelParams.Result qlua_GetLabelParams(GetLabelParams.Request args); - - /** - * - * @param args - * @return - */ - GetLinesCount.Result qlua_getLinesCount(GetLinesCount.Request args); - - /** - * - * @param args - * @return - */ - GetMoney.Result qlua_getMoney(GetMoney.Request args); - - /** - * - * @param args - * @return - */ - GetMoneyEx.Result qlua_getMoneyEx(GetMoneyEx.Request args); - - /** - * - * @param args - * @return - */ - GetNumberOf.Result qlua_getNumberOf(GetNumberOf.Request args); - - /** - * - * @param args - * @return - */ - GetNumCandles.Result qlua_getNumCandles(GetNumCandles.Request args); - - /** - * - * @param args - * @return - */ - GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request args); - - /** - * - * @param args - * @return - */ - GetParamEx.Result qlua_getParamEx(GetParamEx.Request args); - - /** - * - * @param args - * @return - */ - GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request args); - - /** - * - * @param args - * @return - */ - GetPortfolioInfo.Result qlua_getPortfolioInfo(GetPortfolioInfo.Request args); - - /** - * - * @param args - * @return - */ - GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Request args); - - /** - * - * @param args - * @return - */ - GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Request args); - - /** - * - * @return - */ - GetScriptPath.Result qlua_getScriptPath(); - - /** - * - * @param args - * @return - */ - GetSecurityInfo.Result qlua_getSecurityInfo(GetSecurityInfo.Request args); - - /** - * - * @param args - * @return - */ - GetTableSize.Result qlua_GetTableSize(GetTableSize.Request args); - - /** - * - * @return - */ - GetTradeDate.Result qlua_getTradeDate(); - - /** - * - * @param args - * @return - */ - GetWindowCaption.Result qlua_GetWindowCaption(GetWindowCaption.Request args); - - /** - * - * @param args - * @return - */ - GetWindowRect.Result qlua_GetWindowRect(GetWindowRect.Request args); - - /** - * - * @return - */ - GetWorkingFolder.Result qlua_getWorkingFolder(); - - /** - * - * @param args - * @return - */ - Highlight.Result qlua_Highlight(Highlight.Request args); - - /** - * - * @param args - * @return - */ - InsertRow.Result qlua_InsertRow(InsertRow.Request args); - - /** - * - * @return - */ - IsConnected.Result qlua_isConnected(); - - /** - * - * @param args - * @return - */ - IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevelIIQuotes.Request args); - - /** - * - * @param args - * @return - */ - IsWindowClosed.Result qlua_IsWindowClosed(IsWindowClosed.Request args); - - /** - * - * @param args - * @return - */ - Message.Result qlua_message(Message.Request request); - - /** - * - * @param args - * @return - */ - ParamRequest.Result qlua_ParamRequest(ParamRequest.Request args); - - /** - * - * @param args - * @return - */ - void qlua_PrintDbgStr(PrintDbgStr.Request args); - - /** - * - * @param args - * @return - */ - RGB.Result qlua_RGB(RGB.Request args); - - /** - * - * @param args - * @return - */ - SearchItems.Result qlua_SearchItems(SearchItems.Request args); - - /** - * - * @param args - * @return - */ - SendTransaction.Result qlua_sendTransaction(SendTransaction.Request args); - - /** - * - * @param args - * @return - */ - SetCell.Result qlua_SetCell(SetCell.Request args); - - /** - * - * @param args - * @return - */ - SetColor.Result qlua_SetColor(SetColor.Request args); - - /** - * - * @param args - * @return - */ - SetLabelParams.Result qlua_SetLabelParams(SetLabelParams.Request args); - - /** - * - * @param args - * @return - */ - SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Request args); - - /** - * - * @param args - * @return - */ - SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(SetTableNotificationCallback.Request args); - - /** - * - * @param args - * @return - */ - SetWindowCaption.Result qlua_SetWindowCaption(SetWindowCaption.Request args); - - /** - * - * @param args - * @return - */ - SetWindowPos.Result qlua_SetWindowPos(SetWindowPos.Request args); - - /** - * - * @param args - * @return - */ - Sleep.Result qlua_sleep(Sleep.Request args); - - /** - * - * @param args - * @return - */ - SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(SubscribeLevelIIQuotes.Request args); - - /** - * - * @param args - * @return - */ - UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevelIIQuotes.Request args); - - /** - * - * @param args - * @return - */ - Band.Result bit_band(Band.Request args); - - /** - * - * @param args - * @return - */ - Bnot.Result bit_bnot(Bnot.Request args); - - /** - * - * @param args - * @return - */ - Bor.Result bit_bor(Bor.Request args); - - /** - * - * @param args - * @return - */ - Bxor.Result bit_bxor(Bxor.Request args); - - /** - * - * @param args - * @return - */ - Tohex.Result bit_tohex(Tohex.Request args); - - /** - * - * @param args - * @return - */ - C.Result datasource_C(C.Request args); - - /** - * - * @param args - * @return - */ - Close.Result datasource_Close(Close.Request args); - - /** - * - * @param args - * @return - */ - CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Request args); - - /** - * - * @param args - * @return - */ - H.Result datasource_H(H.Request args); - - /** - * - * @param args - * @return - */ - L.Result datasource_L(L.Request args); - - /** - * - * @param args - * @return - */ - O.Result datasource_O(O.Request args); - - /** - * - * @param args + * @param request * @return */ - SetEmptyCallback.Result datasource_SetEmptyCallback(SetEmptyCallback.Request args); + GetFuturesHolding.Result qlua_getFuturesHolding(GetFuturesHolding.Request request); /** * - * @param args + * @param request * @return */ - SetUpdateCallback.Result datasource_SetUpdateCallback(SetUpdateCallback.Request args); + GetFuturesLimit.Result qlua_getFuturesLimit(GetFuturesLimit.Request request); /** * - * @param args + * @param request * @return - */ - Size.Result datasource_Size(Size.Request args); - /** - * - * @param args - * @return */ - T.Result datasource_T(T.Request args); + GetInfoParam.Result qlua_getInfoParam(GetInfoParam.Request request); /** * - * @param args + * @param request * @return */ - V.Result datasource_V(V.Request args); + GetItem.Result qlua_getItem(GetItem.Request request); + +// /** +// * +// * @param args +// * @return +// */ +// GetLabelParams.Result qlua_GetLabelParams(GetLabelParams.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetLinesCount.Result qlua_getLinesCount(GetLinesCount.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetMoney.Result qlua_getMoney(GetMoney.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetMoneyEx.Result qlua_getMoneyEx(GetMoneyEx.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetNumberOf.Result qlua_getNumberOf(GetNumberOf.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetNumCandles.Result qlua_getNumCandles(GetNumCandles.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetParamEx.Result qlua_getParamEx(GetParamEx.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetPortfolioInfo.Result qlua_getPortfolioInfo(GetPortfolioInfo.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Request args); +// +// /** +// * +// * @return +// */ +// GetScriptPath.Result qlua_getScriptPath(); +// +// /** +// * +// * @param args +// * @return +// */ +// GetSecurityInfo.Result qlua_getSecurityInfo(GetSecurityInfo.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetTableSize.Result qlua_GetTableSize(GetTableSize.Request args); +// +// /** +// * +// * @return +// */ +// GetTradeDate.Result qlua_getTradeDate(); +// +// /** +// * +// * @param args +// * @return +// */ +// GetWindowCaption.Result qlua_GetWindowCaption(GetWindowCaption.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// GetWindowRect.Result qlua_GetWindowRect(GetWindowRect.Request args); +// +// /** +// * +// * @return +// */ +// GetWorkingFolder.Result qlua_getWorkingFolder(); +// +// /** +// * +// * @param args +// * @return +// */ +// Highlight.Result qlua_Highlight(Highlight.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// InsertRow.Result qlua_InsertRow(InsertRow.Request args); +// +// /** +// * +// * @return +// */ +// IsConnected.Result qlua_isConnected(); +// +// /** +// * +// * @param args +// * @return +// */ +// IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevelIIQuotes.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// IsWindowClosed.Result qlua_IsWindowClosed(IsWindowClosed.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Message.Result qlua_message(Message.Request request); +// +// /** +// * +// * @param args +// * @return +// */ +// ParamRequest.Result qlua_ParamRequest(ParamRequest.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// void qlua_PrintDbgStr(PrintDbgStr.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// RGB.Result qlua_RGB(RGB.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SearchItems.Result qlua_SearchItems(SearchItems.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SendTransaction.Result qlua_sendTransaction(SendTransaction.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetCell.Result qlua_SetCell(SetCell.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetColor.Result qlua_SetColor(SetColor.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetLabelParams.Result qlua_SetLabelParams(SetLabelParams.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(SetTableNotificationCallback.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetWindowCaption.Result qlua_SetWindowCaption(SetWindowCaption.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetWindowPos.Result qlua_SetWindowPos(SetWindowPos.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Sleep.Result qlua_sleep(Sleep.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(SubscribeLevelIIQuotes.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevelIIQuotes.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Band.Result bit_band(Band.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Bnot.Result bit_bnot(Bnot.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Bor.Result bit_bor(Bor.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Bxor.Result bit_bxor(Bxor.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Tohex.Result bit_tohex(Tohex.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// C.Result datasource_C(C.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Close.Result datasource_Close(Close.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// H.Result datasource_H(H.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// L.Result datasource_L(L.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// O.Result datasource_O(O.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetEmptyCallback.Result datasource_SetEmptyCallback(SetEmptyCallback.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// SetUpdateCallback.Result datasource_SetUpdateCallback(SetUpdateCallback.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// Size.Result datasource_Size(Size.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// T.Result datasource_T(T.Request args); +// +// /** +// * +// * @param args +// * @return +// */ +// V.Result datasource_V(V.Request args); public final class RpcClientException extends RuntimeException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java new file mode 100644 index 0000000..62555d8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetInfoParam { + + private GetInfoParam() {} + + @Value + public static class Request { + + @NonNull String paramName; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("param_name", paramName) + .toString(); + } + } + + @Value + public static class Result { + + String infoParam; + + @JsonCreator + public Result(final @JsonProperty(value = "info_param") String infoParam) { + this.infoParam = infoParam; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("info_param", infoParam) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java new file mode 100644 index 0000000..b91ca7e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.KeyDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.google.common.base.MoreObjects; +import com.sun.istack.internal.NotNull; +import lombok.NonNull; +import lombok.Value; + +import java.io.IOException; +import java.util.Map; + +public final class GetItem { + + private GetItem() {} + + @Value + public static class Request { + + @NonNull String tableName; + int index; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table_name", tableName) + .add("index", index) + .toString(); + } + } + + @Value + public static class Result { + + @JsonProperty(value = "table_row") + Map tableRow; + + @JsonCreator + public Result(final @NonNull Map tableRow) { + this.tableRow = tableRow; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table_row", tableRow) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 7d30852..f373147 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -70,12 +70,12 @@ private ZmqTcpQluaRpcClientImpl( @Override public NetworkAddress getNetworkAddress() { - return networkAddress + return networkAddress; } @Override public AuthContext getAuthContext() { - return authContext + return authContext; } @Override @@ -262,777 +262,745 @@ public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request request) { } @Override - public GetFuturesHolding.Result qlua_getFuturesHolding(final GetFuturesHolding.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_FUTURES_HOLDING, args); - return GetFuturesHolding.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetFuturesLimit.Result qlua_getFuturesLimit(final GetFuturesLimit.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_FUTURES_LIMIT, args); - return GetFuturesLimit.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetInfoParam.Result qlua_getInfoParam(final GetInfoParam.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_INFO_PARAM, args); - return GetInfoParam.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetItem.Result qlua_getItem(final GetItem.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_ITEM, args); - return GetItem.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LABEL_PARAMS, args); - return GetLabelParams.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LINES_COUNT, args); - return GetLinesCount.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetMoney.Result qlua_getMoney(final GetMoney.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY, args); - return GetMoney.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY_EX, args); - return GetMoneyEx.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUMBER_OF, args); - return GetNumberOf.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUM_CANDLES, args); - return GetNumCandles.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_ORDER_BY_NUMBER, args); - return GetOrderByNumber.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX, args); - return GetParamEx.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX_2, args); - return GetParamEx2.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO, args); - return GetPortfolioInfo.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO_EX, args); - return GetPortfolioInfoEx.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_QUOTE_LEVEL2, args); - return GetQuoteLevel2.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetScriptPath.Result qlua_getScriptPath() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SCRIPT_PATH); - return GetScriptPath.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SECURITY_INFO, args); - return GetSecurityInfo.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TABLE_SIZE, args); - return GetTableSize.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetTradeDate.Result qlua_getTradeDate() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TRADE_DATE); - return GetTradeDate.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_CAPTION, args); - return GetWindowCaption.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_RECT, args); - return GetWindowRect.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public GetWorkingFolder.Result qlua_getWorkingFolder() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WORKING_FOLDER); - return GetWorkingFolder.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Highlight.Result qlua_Highlight(final Highlight.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.HIGHLIGHT, args); - return Highlight.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public InsertRow.Result qlua_InsertRow(final InsertRow.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.INSERT_ROW, args); - return InsertRow.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public IsConnected.Result qlua_isConnected() { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_CONNECTED); - return IsConnected.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes( - final IsSubscribedLevelIIQuotes.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES, args); - return IsSubscribedLevelIIQuotes.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_WINDOW_CLOSED, args); - return IsWindowClosed.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Message.Result qlua_message(final Message.Request request) { - return makeRPC(request, Message.Result.class); - } - - @Override - public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.PARAM_REQUEST, args); - return ParamRequest.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public void qlua_PrintDbgStr(final PrintDbgStr.Request args) { - - try { - makeRPC(RPC.ProcedureType.PRINT_DBG_STR, args); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public RGB.Result qlua_RGB(final RGB.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.RGB, args); - return RGB.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SearchItems.Result qlua_SearchItems(final SearchItems.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEARCH_ITEMS, args); - return SearchItems.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEND_TRANSACTION, args); - return SendTransaction.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetCell.Result qlua_SetCell(final SetCell.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_CELL, args); - return SetCell.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetColor.Result qlua_SetColor(final SetColor.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_COLOR, args); - return SetColor.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_LABEL_PARAMS, args); - return SetLabelParams.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_SELECTED_ROW, args); - return SetSelectedRow.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback( - final SetTableNotificationCallback.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_TABLE_NOTIFICATION_CALLBACK, args); - return SetTableNotificationCallback.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_CAPTION, args); - return SetWindowCaption.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_POS, args); - return SetWindowPos.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Sleep.Result qlua_sleep(final Sleep.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SLEEP, args); - return Sleep.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevelIIQuotes.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SUBSCRIBE_LEVEL_II_QUOTES, args); - return SubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevelIIQuotes.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.UNSUBSCRIBE_LEVEL_II_QUOTES, args); - return UnsubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Band.Result bit_band(final Band.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BAND, args); - return Band.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Bnot.Result bit_bnot(final Bnot.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BNOT, args); - return Bnot.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Bor.Result bit_bor(final Bor.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BOR, args); - return Bor.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Bxor.Result bit_bxor(final Bxor.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BXOR, args); - return Bxor.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Tohex.Result bit_tohex(final Tohex.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_TOHEX, args); - return Tohex.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public C.Result datasource_C(final C.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_C, args); - return C.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Close.Result datasource_Close(final Close.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_CLOSE, args); - return Close.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CREATE_DATA_SOURCE, args); - return CreateDataSource.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public H.Result datasource_H(final H.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_H, args); - return H.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public L.Result datasource_L(final L.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_L, args); - return L.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public O.Result datasource_O(final O.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_O, args); - return O.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_EMPTY_CALLBACK, args); - return SetEmptyCallback.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_UPDATE_CALLBACK, args); - return SetUpdateCallback.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public Size.Result datasource_Size(final Size.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SIZE, args); - return Size.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public T.Result datasource_T(final T.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_T, args); - return T.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } - - @Override - public V.Result datasource_V(final V.Request args) { - - try { - final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_V, args); - return V.Result.parseFrom(resultAsByteString); - } catch (final RpcClientException ex) { - throw ex; - } catch (final Exception ex) { - throw new RpcClientException(ex); - } - } + public GetFuturesHolding.Result qlua_getFuturesHolding(final GetFuturesHolding.Request request) { + return makeRPC(request, GetFuturesHolding.Result.class); + } + + @Override + public GetFuturesLimit.Result qlua_getFuturesLimit(final GetFuturesLimit.Request request) { + return makeRPC(request, GetFuturesLimit.Result.class); + } + + @Override + public GetInfoParam.Result qlua_getInfoParam(final GetInfoParam.Request request) { + return makeRPC(request, GetInfoParam.Result.class); + } + + @Override + public GetItem.Result qlua_getItem(final GetItem.Request request) { + return makeRPC(request, GetItem.Result.class); + } + +// @Override +// public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LABEL_PARAMS, args); +// return GetLabelParams.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LINES_COUNT, args); +// return GetLinesCount.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetMoney.Result qlua_getMoney(final GetMoney.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY, args); +// return GetMoney.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY_EX, args); +// return GetMoneyEx.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUMBER_OF, args); +// return GetNumberOf.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUM_CANDLES, args); +// return GetNumCandles.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_ORDER_BY_NUMBER, args); +// return GetOrderByNumber.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX, args); +// return GetParamEx.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX_2, args); +// return GetParamEx2.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO, args); +// return GetPortfolioInfo.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO_EX, args); +// return GetPortfolioInfoEx.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_QUOTE_LEVEL2, args); +// return GetQuoteLevel2.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetScriptPath.Result qlua_getScriptPath() { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SCRIPT_PATH); +// return GetScriptPath.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SECURITY_INFO, args); +// return GetSecurityInfo.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TABLE_SIZE, args); +// return GetTableSize.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetTradeDate.Result qlua_getTradeDate() { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TRADE_DATE); +// return GetTradeDate.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_CAPTION, args); +// return GetWindowCaption.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_RECT, args); +// return GetWindowRect.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public GetWorkingFolder.Result qlua_getWorkingFolder() { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WORKING_FOLDER); +// return GetWorkingFolder.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Highlight.Result qlua_Highlight(final Highlight.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.HIGHLIGHT, args); +// return Highlight.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public InsertRow.Result qlua_InsertRow(final InsertRow.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.INSERT_ROW, args); +// return InsertRow.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public IsConnected.Result qlua_isConnected() { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_CONNECTED); +// return IsConnected.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes( +// final IsSubscribedLevelIIQuotes.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES, args); +// return IsSubscribedLevelIIQuotes.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_WINDOW_CLOSED, args); +// return IsWindowClosed.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Message.Result qlua_message(final Message.Request request) { +// return makeRPC(request, Message.Result.class); +// } +// +// @Override +// public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.PARAM_REQUEST, args); +// return ParamRequest.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public void qlua_PrintDbgStr(final PrintDbgStr.Request args) { +// +// try { +// makeRPC(RPC.ProcedureType.PRINT_DBG_STR, args); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public RGB.Result qlua_RGB(final RGB.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.RGB, args); +// return RGB.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SearchItems.Result qlua_SearchItems(final SearchItems.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEARCH_ITEMS, args); +// return SearchItems.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEND_TRANSACTION, args); +// return SendTransaction.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetCell.Result qlua_SetCell(final SetCell.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_CELL, args); +// return SetCell.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetColor.Result qlua_SetColor(final SetColor.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_COLOR, args); +// return SetColor.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_LABEL_PARAMS, args); +// return SetLabelParams.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_SELECTED_ROW, args); +// return SetSelectedRow.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback( +// final SetTableNotificationCallback.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_TABLE_NOTIFICATION_CALLBACK, args); +// return SetTableNotificationCallback.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_CAPTION, args); +// return SetWindowCaption.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_POS, args); +// return SetWindowPos.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Sleep.Result qlua_sleep(final Sleep.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SLEEP, args); +// return Sleep.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevelIIQuotes.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SUBSCRIBE_LEVEL_II_QUOTES, args); +// return SubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevelIIQuotes.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.UNSUBSCRIBE_LEVEL_II_QUOTES, args); +// return UnsubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Band.Result bit_band(final Band.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BAND, args); +// return Band.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Bnot.Result bit_bnot(final Bnot.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BNOT, args); +// return Bnot.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Bor.Result bit_bor(final Bor.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BOR, args); +// return Bor.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Bxor.Result bit_bxor(final Bxor.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BXOR, args); +// return Bxor.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Tohex.Result bit_tohex(final Tohex.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_TOHEX, args); +// return Tohex.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public C.Result datasource_C(final C.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_C, args); +// return C.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Close.Result datasource_Close(final Close.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_CLOSE, args); +// return Close.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CREATE_DATA_SOURCE, args); +// return CreateDataSource.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public H.Result datasource_H(final H.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_H, args); +// return H.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public L.Result datasource_L(final L.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_L, args); +// return L.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public O.Result datasource_O(final O.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_O, args); +// return O.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_EMPTY_CALLBACK, args); +// return SetEmptyCallback.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_UPDATE_CALLBACK, args); +// return SetUpdateCallback.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public Size.Result datasource_Size(final Size.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SIZE, args); +// return Size.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public T.Result datasource_T(final T.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_T, args); +// return T.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } +// +// @Override +// public V.Result datasource_V(final V.Request args) { +// +// try { +// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_V, args); +// return V.Result.parseFrom(resultAsByteString); +// } catch (final RpcClientException ex) { +// throw ex; +// } catch (final Exception ex) { +// throw new RpcClientException(ex); +// } +// } private void checkIfOpen() { checkState(isOpened, "The connection must be open."); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index 4f980a3..41b7874 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -41,7 +41,7 @@ public static void main(final String[] args) { LOGGER.info("Инициализация клиента..."); try (final ZmqTcpQluaRpcClient rpcClient = - ZmqTcpQluaRpcClientImpl.newInstance(config.getNetworkAddress(), config.getAuthContext())) { + ZmqTcpQluaRpcClientImpl.newInstance(config.getNetworkAddress(), config.getAuthContext(), null)) { LOGGER.info("Соединение с RPC-сервисом..."); rpcClient.open(); @@ -53,9 +53,9 @@ public static void main(final String[] args) { .build(); LOGGER.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); - final Message.Result result = rpcClient.qlua_message(request); + ///final Message.Result result = rpcClient.qlua_message(request); - LOGGER.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); + ///LOGGER.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); LOGGER.info("Выход из программы..."); } catch (final Exception ex) { LOGGER.error("Не удалось выполнить удалённый вызов процедуры.", ex); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java new file mode 100644 index 0000000..77cec6a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetInfoParam; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetInfoParamRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetInfoParam.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getInfoParam"); + + gen.writeStringField("param_name", value.getParamName()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java new file mode 100644 index 0000000..012eb84 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.structures.GetItem; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetItemRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetItem.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getItem"); + + gen.writeStringField("table_name", value.getTableName()); + gen.writeNumberField("index", value.getIndex()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 44f7398..a462715 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -32,6 +32,8 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetDepoEx.Request.class, new GetDepoExRequestJsonSerializer()); super.addSerializer(GetFuturesHolding.Request.class, new GetFuturesHoldingRequestJsonSerializer()); super.addSerializer(GetFuturesLimit.Request.class, new GetFuturesLimitRequestJsonSerializer()); + super.addSerializer(GetInfoParam.Request.class, new GetInfoParamRequestJsonSerializer()); + super.addSerializer(GetItem.Request.class, new GetItemRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/proto/qlua/rpc/getInfoParam.proto b/src/main/proto/qlua/rpc/getInfoParam.proto index e0e18e7..d66a921 100644 --- a/src/main/proto/qlua/rpc/getInfoParam.proto +++ b/src/main/proto/qlua/rpc/getInfoParam.proto @@ -9,11 +9,7 @@ option java_package = "qlua.rpc"; message Request { - // Хотел сделать enum-ом, чтобы меньше слать по wire, но в используемой Lua-реализации - // protobuf'a нет адекватного способа вернуть строковое имя enum'а, поэтому говнокод, который - // надо будет для этого написать, скорее всего нивелирует какой-либо перфомансный - // профит от enum'ов в данном случае. К тому же, при добавлении новых видов paramName - // при использовании строк ничего не надо будет перекомпилировать. + // TODO: consider changing the type to enum string param_name = 1; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java index 62cc674..4430e50 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java @@ -29,7 +29,7 @@ public void setup() throws IOException { final NetworkAddress networkAddress = new SimpleNetworkAddress("127.0.0.1", 5560); - this.sut = ZmqTcpQluaRpcClientImpl.newInstance(networkAddress, AuthContext.none()); + this.sut = ZmqTcpQluaRpcClientImpl.newInstance(networkAddress, AuthContext.none(), null); } @After @@ -37,26 +37,26 @@ public void teardown() { this.sut = null; } - @Test - public void test() throws Exception { - - final ZmqTcpRpcGatewayImpl rpcGateway = mock(ZmqTcpRpcGatewayImpl.class); - - doReturn(true).when(rpcGateway).isOpened(); - - Whitebox.setInternalState(sut, "rpcGateway", rpcGateway); - - final RPC.ProcedureType procType = RPC.ProcedureType.IS_CONNECTED; - final IsConnected.Result expectedResult = IsConnected.Result.newBuilder().setIsConnected(1).build(); - final RPC.Response expectedResponse = RPC.Response.newBuilder().setType(procType).setResult(expectedResult.toByteString()).build(); - - doReturn(expectedResponse).when(rpcGateway).call(RPC.ProcedureType.IS_CONNECTED); - - final IsConnected.Result actualResult = sut.qlua_isConnected(); - - verify(rpcGateway).isOpened(); - verify(rpcGateway).call(RPC.ProcedureType.IS_CONNECTED); - - assertEquals(expectedResult.toByteString(), actualResult.toByteString()); - } +// @Test +// public void test() throws Exception { +// +// final ZmqTcpRpcGatewayImpl rpcGateway = mock(ZmqTcpRpcGatewayImpl.class); +// +// doReturn(true).when(rpcGateway).isOpened(); +// +// Whitebox.setInternalState(sut, "rpcGateway", rpcGateway); +// +// final RPC.ProcedureType procType = RPC.ProcedureType.IS_CONNECTED; +// final IsConnected.Result expectedResult = IsConnected.Result.newBuilder().setIsConnected(1).build(); +// final RPC.Response expectedResponse = RPC.Response.newBuilder().setType(procType).setResult(expectedResult.toByteString()).build(); +// +// doReturn(expectedResponse).when(rpcGateway).call(RPC.ProcedureType.IS_CONNECTED); +// +// final IsConnected.Result actualResult = sut.qlua_isConnected(); +// +// verify(rpcGateway).isOpened(); +// verify(rpcGateway).call(RPC.ProcedureType.IS_CONNECTED); +// +// assertEquals(expectedResult.toByteString(), actualResult.toByteString()); +// } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java new file mode 100644 index 0000000..e242b2a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetInfoParamJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetInfoParam.Request requestObj; + private static GetInfoParam.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetInfoParam.Request("1"); + + resultObj = new GetInfoParam.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("getInfoParam.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getInfoParam.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetInfoParam.Result actualResultObj = sut.readValue(resultJson, GetInfoParam.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java new file mode 100644 index 0000000..392bfb2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java @@ -0,0 +1,63 @@ +package com.enfernuz.quik.lua.rpc.events.api.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.GetItem; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetItemJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetItem.Request requestObj; + private static GetItem.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetItem.Request("1", 2); + + final ImmutableMap.Builder tableRow = ImmutableMap.builder(); + tableRow.put("field_1", "value_1"); + tableRow.put("field_2", "value_2"); + tableRow.put("field_3", "value_3"); + tableRow.put("field_...", "value_..."); + tableRow.put("field_n", "value_n"); + + resultObj = new GetItem.Result( tableRow.build() ); + + requestJson = + Resources.toString(Resources.getResource("getItem.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getItem.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetItem.Result actualResultObj = sut.readValue(resultJson, GetItem.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getInfoParam.request.json b/src/test/resources/getInfoParam.request.json new file mode 100644 index 0000000..59aba61 --- /dev/null +++ b/src/test/resources/getInfoParam.request.json @@ -0,0 +1,6 @@ +{ + "method" : "getInfoParam", + "args" : { + "param_name" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/getInfoParam.result.json b/src/test/resources/getInfoParam.result.json new file mode 100644 index 0000000..33a84b9 --- /dev/null +++ b/src/test/resources/getInfoParam.result.json @@ -0,0 +1,3 @@ +{ + "info_param" : "1" +} \ No newline at end of file diff --git a/src/test/resources/getItem.request.json b/src/test/resources/getItem.request.json new file mode 100644 index 0000000..843002f --- /dev/null +++ b/src/test/resources/getItem.request.json @@ -0,0 +1,7 @@ +{ + "method" : "getItem", + "args" : { + "table_name" : "1", + "index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/getItem.result.json b/src/test/resources/getItem.result.json new file mode 100644 index 0000000..c56d2c0 --- /dev/null +++ b/src/test/resources/getItem.result.json @@ -0,0 +1,7 @@ +{ + "field_1" : "value_1", + "field_2" : "value_2", + "field_3" : "value_3", + "field_..." : "value_...", + "field_n" : "value_n" +} \ No newline at end of file From ca281bba5906a7ae2f8893b09a6efb0821718a99 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 4 Aug 2018 01:18:07 +0300 Subject: [PATCH 056/549] Added request-result pairs for GetLabelParams. Moved the RPC-message classes to a separate package. --- .../quik/lua/rpc/api/QluaRpcClient.java | 6 +- .../{structures => messages}/AddColumn.java | 2 +- .../{structures => messages}/AddLabel.java | 2 +- .../{structures => messages}/AllocTable.java | 2 +- .../{structures => messages}/CalcBuySell.java | 2 +- .../CancelParamRequest.java | 2 +- .../api/{structures => messages}/Clear.java | 2 +- .../CreateWindow.java | 2 +- .../DelAllLabels.java | 2 +- .../{structures => messages}/DelLabel.java | 2 +- .../{structures => messages}/DeleteRow.java | 2 +- .../DestroyTable.java | 2 +- .../GetBuySellInfo.java | 2 +- .../GetBuySellInfoEx.java | 2 +- .../GetCandlesByIndex.java | 2 +- .../api/{structures => messages}/GetCell.java | 2 +- .../GetClassInfo.java | 6 +- .../GetClassSecurities.java | 2 +- .../GetClassesList.java | 2 +- .../api/{structures => messages}/GetDepo.java | 6 +- .../{structures => messages}/GetDepoEx.java | 6 +- .../GetFuturesHolding.java | 3 +- .../GetFuturesLimit.java | 3 +- .../GetInfoParam.java | 2 +- .../api/{structures => messages}/GetItem.java | 4 +- .../lua/rpc/api/messages/GetLabelParams.java | 48 ++++++++++++++ .../api/{structures => messages}/Message.java | 2 +- .../api/structures/AccountBalance.java | 2 +- .../api/structures/AccountPosition.java | 2 +- .../{events => }/api/structures/AllTrade.java | 3 +- .../api/structures/ConnectedEventInfo.java | 2 +- .../api/structures/DepoLimitDelete.java | 2 +- .../rpc/{events => }/api/structures/Firm.java | 5 +- .../api/structures/FuturesLimitDelete.java | 2 +- .../api/structures/MoneyLimit.java | 2 +- .../api/structures/MoneyLimitDelete.java | 2 +- .../{events => }/api/structures/NegDeal.java | 3 +- .../{events => }/api/structures/NegTrade.java | 2 +- .../{events => }/api/structures/Order.java | 3 +- .../api/structures/ParamEventInfo.java | 2 +- .../api/structures/QuoteEventInfo.java | 2 +- .../api/structures/StopEventInfo.java | 2 +- .../api/structures/StopOrder.java | 3 +- .../{events => }/api/structures/Trade.java | 3 +- .../api/structures/TransReply.java | 3 +- .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 8 +-- .../rpc/events/api/LoggingEventHandler.java | 5 +- .../lua/rpc/events/api/QluaEventHandler.java | 5 +- .../events/impl/ZmqTcpQluaEventProcessor.java | 5 +- .../quik/lua/rpc/serde/SerdeModule.java | 4 -- .../AccountBalanceJsonDeserializer.java | 2 +- .../AccountPositionJsonDeserializer.java | 3 +- .../AddColumnRequestJsonSerializer.java | 2 +- .../AddColumnResultJsonDeserializer.java | 2 +- .../AddLabelRequestJsonSerializer.java | 2 +- .../AddLabelResultJsonDeserializer.java | 2 +- .../jackson/AllTradeJsonDeserializer.java | 2 +- .../AllocTableRequestJsonSerializer.java | 2 +- .../AllocTableResultJsonDeserializer.java | 2 +- .../BuySellInfoExJsonDeserializer.java | 4 +- .../jackson/BuySellInfoJsonDeserializer.java | 2 +- .../CalcBuySellRequestJsonSerializer.java | 2 +- .../CalcBuySellResultJsonDeserializer.java | 2 +- ...ncelParamRequestRequestJsonSerializer.java | 2 +- ...celParamRequestResultJsonDeserializer.java | 2 +- .../jackson/ClearRequestJsonSerializer.java | 2 +- .../jackson/ClearResultJsonDeserializer.java | 2 +- .../ConnectedEventInfoJsonDeserializer.java | 2 +- .../CreateWindowRequestJsonSerializer.java | 2 +- .../CreateWindowResultJsonDeserializer.java | 2 +- .../DelAllLabelsRequestJsonSerializer.java | 2 +- .../DelAllLabelsResultJsonDeserializer.java | 2 +- .../DelLabelRequestJsonSerializer.java | 2 +- .../DelLabelResultJsonDeserializer.java | 2 +- .../DeleteRowRequestJsonSerializer.java | 2 +- .../DeleteRowResultJsonDeserializer.java | 2 +- .../DepoLimitDeleteJsonDeserializer.java | 2 +- .../DestroyTableRequestJsonSerializer.java | 2 +- .../DestroyTableResultJsonDeserializer.java | 2 +- .../FuturesLimitDeleteJsonDeserializer.java | 2 +- ...GetBuySellInfoExRequestJsonSerializer.java | 2 +- ...etBuySellInfoExResultJsonDeserializer.java | 4 +- .../GetBuySellInfoRequestJsonSerializer.java | 2 +- .../GetBuySellInfoResultJsonDeserializer.java | 2 +- ...etCandlesByIndexRequestJsonSerializer.java | 2 +- ...tCandlesByIndexResultJsonDeserializer.java | 2 +- .../jackson/GetCellRequestJsonSerializer.java | 2 +- .../GetCellResultJsonDeserializer.java | 2 +- .../GetClassInfoRequestJsonSerializer.java | 2 +- .../GetClassInfoResultJsonDeserializer.java | 2 +- ...tClassSecuritiesRequestJsonSerializer.java | 2 +- ...ClassSecuritiesResultJsonDeserializer.java | 2 +- .../GetClassesListRequestJsonSerializer.java | 2 +- .../GetClassesListResultJsonDeserializer.java | 2 +- .../GetDepoExRequestJsonSerializer.java | 2 +- .../GetDepoExResultJsonDeserializer.java | 2 +- .../jackson/GetDepoRequestJsonSerializer.java | 2 +- .../GetDepoResultJsonDeserializer.java | 2 +- ...etFuturesHoldingRequestJsonSerializer.java | 2 +- .../GetFuturesLimitRequestJsonSerializer.java | 2 +- .../GetInfoParamRequestJsonSerializer.java | 2 +- .../jackson/GetItemRequestJsonSerializer.java | 2 +- .../GetLabelParamsRequestJsonSerializer.java | 22 +++++++ .../jackson/MessageRequestJsonSerializer.java | 2 +- .../MessageResultJsonDeserializer.java | 2 +- .../MoneyLimitDeleteJsonDeserializer.java | 2 +- .../jackson/MoneyLimitJsonDeserializer.java | 2 +- .../json/jackson/NegDealJsonDeserializer.java | 2 +- .../jackson/NegTradeJsonDeserializer.java | 2 +- .../json/jackson/OrderJsonDeserializer.java | 2 +- .../ParamEventInfoJsonDeserializer.java | 2 +- .../jackson/QluaJsonJacksonDeserializers.java | 2 +- .../jackson/QluaJsonJacksonSerializers.java | 5 +- .../QuoteEventInfoJsonDeserializer.java | 2 +- .../StopEventInfoJsonDeserializer.java | 2 +- .../jackson/StopOrderJsonDeserializer.java | 2 +- .../json/jackson/TradeJsonDeserializer.java | 2 +- .../jackson/TransReplyJsonDeserializer.java | 2 +- .../protobuf/ProtobufFirmDeserializer.java | 2 +- .../ProtobufMoneyLimitDeserializer.java | 2 +- .../serde/protobuf/ProtobufSerdeModule.java | 5 +- .../GetFuturesHoldingJsonSerdeTest.java | 4 +- .../GetFuturesLimitJsonSerdeTest.java | 4 +- .../messages}/GetInfoParamJsonSerdeTest.java | 4 +- .../messages}/GetItemJsonSerdeTest.java | 4 +- .../api/messages/GetLabelParamsSerdeTest.java | 64 +++++++++++++++++++ .../api/structures/FirmJsonSerdeTest.java | 2 +- .../FuturesClientHoldingJsonSerdeTest.java | 2 +- .../structures/FuturesLimitJsonSerdeTest.java | 2 +- .../resources/GetLabelParams.request.json | 7 ++ src/test/resources/GetLabelParams.result.json | 7 ++ 131 files changed, 295 insertions(+), 170 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/AddColumn.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/AddLabel.java (95%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/AllocTable.java (89%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/CalcBuySell.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/CancelParamRequest.java (95%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/Clear.java (92%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/CreateWindow.java (92%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/DelAllLabels.java (93%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/DelLabel.java (94%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/DeleteRow.java (93%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/DestroyTable.java (92%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetBuySellInfo.java (99%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetBuySellInfoEx.java (98%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetCandlesByIndex.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetCell.java (96%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetClassInfo.java (81%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetClassSecurities.java (93%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetClassesList.java (89%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetDepo.java (90%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetDepoEx.java (90%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetFuturesHolding.java (92%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetFuturesLimit.java (93%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetInfoParam.java (95%) rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/GetItem.java (93%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java rename src/main/java/com/enfernuz/quik/lua/rpc/api/{structures => messages}/Message.java (95%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/AccountBalance.java (98%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/AccountPosition.java (99%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/AllTrade.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/ConnectedEventInfo.java (83%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/DepoLimitDelete.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/Firm.java (90%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FuturesLimitDelete.java (96%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/MoneyLimit.java (98%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/MoneyLimitDelete.java (97%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/NegDeal.java (99%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/NegTrade.java (99%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/Order.java (98%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/ParamEventInfo.java (96%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/QuoteEventInfo.java (96%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/StopEventInfo.java (83%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/StopOrder.java (98%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/Trade.java (99%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/TransReply.java (97%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java rename src/test/java/com/enfernuz/quik/lua/rpc/{events/api/structures => api/messages}/GetFuturesHoldingJsonSerdeTest.java (95%) rename src/test/java/com/enfernuz/quik/lua/rpc/{events/api/structures => api/messages}/GetFuturesLimitJsonSerdeTest.java (95%) rename src/test/java/com/enfernuz/quik/lua/rpc/{events/api/structures => api/messages}/GetInfoParamJsonSerdeTest.java (93%) rename src/test/java/com/enfernuz/quik/lua/rpc/{events/api/structures => api/messages}/GetItemJsonSerdeTest.java (94%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java rename src/test/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FirmJsonSerdeTest.java (95%) rename src/test/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FuturesClientHoldingJsonSerdeTest.java (97%) rename src/test/java/com/enfernuz/quik/lua/rpc/{events => }/api/structures/FuturesLimitJsonSerdeTest.java (96%) create mode 100644 src/test/resources/GetLabelParams.request.json create mode 100644 src/test/resources/GetLabelParams.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 9d5fd17..ae16097 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -1,11 +1,9 @@ package com.enfernuz.quik.lua.rpc.api; +import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.security.Securable; -import com.enfernuz.quik.lua.rpc.api.structures.*; -import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.io.Gateway; -import qlua.rpc.bit.*; -import qlua.rpc.datasource.*; /** * Компонент, представляющий собой Java-обёртку над API QLua терминала QUIK. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java index 69de8f4..2d31123 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java similarity index 95% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java index eb4a771..01f4169 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AddLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java similarity index 89% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java index f7e3cce..ab8a582 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllocTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java index e782099..ecfb192 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CalcBuySell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java similarity index 95% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java index 092435a..a535442 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CancelParamRequest.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java similarity index 92% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java index 5cf3757..df47cdd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Clear.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java similarity index 92% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java index a156b83..a807c10 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CreateWindow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java index 35aaef4..4e76fd9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelAllLabels.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java similarity index 94% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java index fda003b..c8c20a8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DelLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.NonNull; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java index cba786a..279796a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DeleteRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java similarity index 92% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java index df57853..20d21ea 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DestroyTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java similarity index 99% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java index 0177c88..84f4a09 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.*; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java index e5799e1..1f5ac3a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetBuySellInfoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.*; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java index 7694bf9..8ddd1f3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCandlesByIndex.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; import com.google.common.base.MoreObjects; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java similarity index 96% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java index 029edb8..e31abcb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetCell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java similarity index 81% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java index 1ef536e..ceee87a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; @@ -24,7 +25,8 @@ public String toString() { @Value public static class Result { - @NonNull ClassInfo classInfo; + @NonNull + ClassInfo classInfo; @Override public String toString() { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java index 0f86cb7..168022d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassSecurities.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.NonNull; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java similarity index 89% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java index 09ff8a9..5759cdc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetClassesList.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java similarity index 90% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java index cb7f512..48e7837 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.structures.Depo; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.NonNull; @@ -44,7 +45,8 @@ public String toString() { @Value public static class Result { - @NonNull Depo depo; + @NonNull + Depo depo; @Override public String toString() { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java similarity index 90% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index 0ce72a4..6ce5d60 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.NonNull; @@ -48,7 +49,8 @@ public String toString() { @Value public static class Result { - @NonNull DepoLimit depoEx; + @NonNull + DepoLimit depoEx; @Override public String toString() { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java similarity index 92% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index 2f65cb6..4168b37 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index b209e70..03b2e0e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java similarity index 95% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java index 62555d8..a47bb5a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetInfoParam.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index b91ca7e..da9118f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -36,7 +36,7 @@ public String toString() { public static class Result { @JsonProperty(value = "table_row") - Map tableRow; + Map tableRow; @JsonCreator public Result(final @NonNull Map tableRow) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java new file mode 100644 index 0000000..afbb591 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +import java.util.Map; + +public final class GetLabelParams { + + private GetLabelParams() {} + + @Value + public static class Request { + + @NonNull String chartTag; + int labelId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("chart_tag", chartTag) + .add("label_id", labelId) + .toString(); + } + } + + @Value + public static class Result { + + @JsonProperty(value = "label_params") + Map labelParams; + + @JsonCreator + public Result(final @NonNull Map labelParams) { + this.labelParams = labelParams; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("label_params", labelParams) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java similarity index 95% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java index 4d9446c..60c8d9d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Message.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java index dd9f55c..aaa4141 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java similarity index 99% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java index cc23aac..eb4e530 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AccountPosition.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 16a738e..64e6e73 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java similarity index 83% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java index 9d81a7b..0c66320 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ConnectedEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java index 90b703c..2b71df0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/DepoLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java similarity index 90% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index a07a14f..7ef8364 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -1,12 +1,9 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; import com.google.common.base.MoreObjects; -import com.sun.istack.internal.NotNull; import lombok.*; import lombok.experimental.NonFinal; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java similarity index 96% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java index 1fee944..236590e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java index 88e8e6b..6b8fc47 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java index 98da010..3d60d13 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/MoneyLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java similarity index 99% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java index 322615b..3b645cb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegDeal.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java similarity index 99% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java index 5c439dd..c20e7d2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/NegTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java index 9bec828..705023e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Order.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java similarity index 96% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java index 441bbc5..e94a778 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/ParamEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java similarity index 96% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java index 72d0edb..faa1cc2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/QuoteEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.AccessLevel; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java similarity index 83% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java index c4667f0..e454c3a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.google.common.base.MoreObjects; import lombok.Value; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java similarity index 98% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java index 9bdafcd..83080fa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/StopOrder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java similarity index 99% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java index b46bb23..d9180db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/Trade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java similarity index 97% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java index 07cd168..9930331 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/structures/TransReply.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index f373147..8416d41 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -1,21 +1,17 @@ package com.enfernuz.quik.lua.rpc.api.zmq.impl; +import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; -import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; -import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; import org.zeromq.ZFrame; import org.zeromq.ZMQ; import org.zeromq.ZMsg; -import qlua.rpc.RPC; -import qlua.rpc.bit.*; -import qlua.rpc.datasource.*; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index 1210cc6..b111ca6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,9 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.events.api.structures.*; +import com.enfernuz.quik.lua.rpc.api.structures.*; import org.slf4j.*; /** diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index 8137683..f418c7f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,9 +1,6 @@ package com.enfernuz.quik.lua.rpc.events.api; -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.events.api.structures.*; +import com.enfernuz.quik.lua.rpc.api.structures.*; /** * Обработчик событий API QLua терминала QUIK. diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java index 9a4ef31..644a63a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java @@ -1,11 +1,8 @@ package com.enfernuz.quik.lua.rpc.events.impl; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.*; -import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.*; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java index 3b89b2c..a5acbb0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java @@ -1,9 +1,5 @@ package com.enfernuz.quik.lua.rpc.serde; -import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; - public interface SerdeModule { byte[] serialize(T t); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java index b1c2c75..cff572d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java index df1c4e1..c0813a9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java @@ -1,8 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java index c4f5a82..a1f52b8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java index 03e4b81..6163fc4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AddColumn; +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java index 28e3864..3594fe2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java index 001dc68..1a42eb5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AddLabel; +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java index 721be62..8d0f964 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java index b377cc1..cbf3a96 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java index 6020854..325c3a7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.AllocTable; +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java index 7d35750..720e8db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java index 3ee181d..ccce622 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java index 0b4f0d5..4efbf27 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java index 14b6207..65ca021 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CalcBuySell; +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java index 1a02a30..81fd731 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java index 348a08b..b61fd8a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java index d768d40..92819e8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.Clear; +import com.enfernuz.quik.lua.rpc.api.messages.Clear; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java index 64cd854..29982ba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.Clear; +import com.enfernuz.quik.lua.rpc.api.messages.Clear; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java index 8b835a4..8b228b0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.ConnectedEventInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java index fa9f4b0..3a65c0c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CreateWindow; +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java index 3919da0..115fd31 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.CreateWindow; +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java index 68efd04..e182c69 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DelAllLabels; +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java index 5ab8435..b21ec36 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DelAllLabels; +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java index 7897c5b..dcc3c84 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DelLabel; +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java index af9b223..653ff5f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DelLabel; +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java index 96eac65..3bd4c26 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DeleteRow; +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java index 3a3d333..14c76b9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DeleteRow; +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java index afa2bb6..df701d3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.DepoLimitDelete; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java index 91d16ec..8809f19 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DestroyTable; +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java index 29cd37f..25805e1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.DestroyTable; +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java index ca0ce61..5dd547f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.FuturesLimitDelete; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java index 5d00665..08f4932 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java index 2d10184..0553509 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java @@ -1,9 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java index 4c4971e..b4f2d5e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java index 4df659a..5864d91 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java index 67a988e..3c32b4a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java index a171ab6..85d5e87 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java index 5791636..83a078f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetCell; +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java index 7b2a5be..3895b85 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetCell; +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java index 9d08bac..eaa27c3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java index 25e0708..abc6e1c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java index d2c15d1..a6ec160 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java index 9c22d30..5e7c36e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java index f97042d..68729b4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassesList; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java index d529f3a..8312063 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetClassesList; +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java index b5cc0e6..e99ac60 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java index ee36ab0..fc7734f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.api.structures.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java index cb0b078..94a8f6d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetDepo; +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java index 2ddc733..258239f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.enfernuz.quik.lua.rpc.api.structures.GetDepo; +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java index b29e3d8..e3cf4c4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java index ef65fcf..52d3e0c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java index 77cec6a..8b7dbb0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetInfoParam; +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java index 012eb84..f97455e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.GetItem; +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java new file mode 100644 index 0000000..29706f4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetLabelParamsRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetLabelParams.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetLabelParams"); + + gen.writeStringField("chart_tag", value.getChartTag()); + gen.writeNumberField("label_id", value.getLabelId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java index d1595dd..1bc2986 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.Message; +import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java index 0e7ba47..ff14225 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.Message; +import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java index f49436f..9cc9383 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimitDelete; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java index 52d6bcd..cc41e6a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java index 2ec678b..676b4bc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.NegDeal; +import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java index e1eefa6..5ad75ee 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.NegTrade; +import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java index 4fa0e53..277eff4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.Order; +import com.enfernuz.quik.lua.rpc.api.structures.Order; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java index 0862097..1f8c662 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.ParamEventInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 3079e0a..29071f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; +import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.structures.*; -import com.enfernuz.quik.lua.rpc.events.api.structures.*; import com.fasterxml.jackson.databind.module.SimpleDeserializers; final class QluaJsonJacksonDeserializers extends SimpleDeserializers { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index a462715..bc8f876 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.structures.*; -import com.enfernuz.quik.lua.rpc.api.structures.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -34,6 +34,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetFuturesLimit.Request.class, new GetFuturesLimitRequestJsonSerializer()); super.addSerializer(GetInfoParam.Request.class, new GetInfoParamRequestJsonSerializer()); super.addSerializer(GetItem.Request.class, new GetItemRequestJsonSerializer()); + super.addSerializer(GetLabelParams.Request.class, new GetLabelParamsRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java index fe66a57..6de40fe 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.QuoteEventInfo; +import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java index 939fbc6..78cd77e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.events.api.structures.StopEventInfo; +import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java index 6dbd19a..b6584ab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.StopOrder; +import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java index ec792b7..6400b60 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.Trade; +import com.enfernuz.quik.lua.rpc.api.structures.Trade; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java index 6f90427..bd62ca3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java @@ -1,7 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.events.api.structures.TransReply; +import com.enfernuz.quik.lua.rpc.api.structures.TransReply; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index c2d95a5..450740d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import qlua.structs.QluaStructures; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index 007864b..3b23091 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import qlua.structs.QluaStructures; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index d04de43..11ae6b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,10 +1,9 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.events.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.Serde; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java similarity index 95% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java index 41d19f7..905aef8 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java @@ -1,7 +1,7 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesHolding; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java similarity index 95% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index 0ed11ee..d2127c5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -1,7 +1,7 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.api.structures.GetFuturesLimit; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java similarity index 93% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java index e242b2a..905fadc 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetInfoParamJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java @@ -1,6 +1,6 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.structures.GetInfoParam; +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java similarity index 94% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java index 392bfb2..b7e6200 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/GetItemJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java @@ -1,6 +1,6 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.structures.GetItem; +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java new file mode 100644 index 0000000..f6b8c56 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetLabelParamsSerdeTest { + + private static ObjectMapper sut; + + private static GetLabelParams.Request requestObj; + private static GetLabelParams.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetLabelParams.Request("1", 2); + + final ImmutableMap.Builder labelParams = ImmutableMap.builder(); + labelParams.put("param_1", "value_1"); + labelParams.put("param_2", "value_2"); + labelParams.put("param_3", "value_3"); + labelParams.put("param_...", "value_..."); + labelParams.put("param_n", "value_n"); + + resultObj = new GetLabelParams.Result( labelParams.build() ); + + requestJson = + Resources.toString(Resources.getResource("GetLabelParams.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("GetLabelParams.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetLabelParams.Result actualResultObj = sut.readValue(resultJson, GetLabelParams.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java similarity index 95% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java index 6e86859..6082455 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FirmJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java similarity index 97% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java index 6c6e67b..d32b3d4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesClientHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java similarity index 96% rename from src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java index 9e74fee..72d9c20 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/events/api/structures/FuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.events.api.structures; +package com.enfernuz.quik.lua.rpc.api.structures; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/resources/GetLabelParams.request.json b/src/test/resources/GetLabelParams.request.json new file mode 100644 index 0000000..cf841aa --- /dev/null +++ b/src/test/resources/GetLabelParams.request.json @@ -0,0 +1,7 @@ +{ + "method" : "GetLabelParams", + "args" : { + "chart_tag" : "1", + "label_id" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/GetLabelParams.result.json b/src/test/resources/GetLabelParams.result.json new file mode 100644 index 0000000..d5086aa --- /dev/null +++ b/src/test/resources/GetLabelParams.result.json @@ -0,0 +1,7 @@ +{ + "param_1" : "value_1", + "param_2" : "value_2", + "param_3" : "value_3", + "param_..." : "value_...", + "param_n" : "value_n" +} \ No newline at end of file From 7327f10123556e541eb38bde2e79fec9d33e11d7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 4 Aug 2018 01:26:55 +0300 Subject: [PATCH 057/549] Added request-result pairs for GetLinesCount. --- .../quik/lua/rpc/api/messages/GetItem.java | 3 +- .../lua/rpc/api/messages/GetLinesCount.java | 43 +++++++++++++++ .../GetLinesCountRequestJsonSerializer.java | 21 ++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ....java => GetLabelParamsJsonSerdeTest.java} | 4 +- .../messages/GetLinesCountJsonSerdeTest.java | 54 +++++++++++++++++++ src/test/resources/getLinesCount.request.json | 6 +++ src/test/resources/getLinesCount.result.json | 3 ++ 8 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{GetLabelParamsSerdeTest.java => GetLabelParamsJsonSerdeTest.java} (92%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java create mode 100644 src/test/resources/getLinesCount.request.json create mode 100644 src/test/resources/getLinesCount.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index da9118f..f6160a9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -35,11 +35,10 @@ public String toString() { @Value public static class Result { - @JsonProperty(value = "table_row") Map tableRow; @JsonCreator - public Result(final @NonNull Map tableRow) { + public Result(final @JsonProperty(value = "table_row" ,required = true) @NonNull Map tableRow) { this.tableRow = tableRow; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java new file mode 100644 index 0000000..737b566 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetLinesCount { + + private GetLinesCount() {} + + @Value + public static class Request { + + @NonNull String tag; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("tag", tag) + .toString(); + } + } + + @Value + public static class Result { + + int linesCount; + + @JsonCreator + public Result(final @JsonProperty(value = "lines_count", required = true) int linesCount) { + this.linesCount = linesCount; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("lines_count", linesCount) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java new file mode 100644 index 0000000..6e17bc6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetLinesCountRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetLinesCount.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getLinesCount"); + + gen.writeStringField("tag", value.getTag()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index bc8f876..3b5adf7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -35,6 +35,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetInfoParam.Request.class, new GetInfoParamRequestJsonSerializer()); super.addSerializer(GetItem.Request.class, new GetItemRequestJsonSerializer()); super.addSerializer(GetLabelParams.Request.class, new GetLabelParamsRequestJsonSerializer()); + super.addSerializer(GetLinesCount.Request.class, new GetLinesCountRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java similarity index 92% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java index f6b8c56..a1bb20e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java @@ -1,7 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -14,7 +12,7 @@ import static org.junit.Assert.assertEquals; -public class GetLabelParamsSerdeTest { +public class GetLabelParamsJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java new file mode 100644 index 0000000..8ab87dc --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetLinesCountJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetLinesCount.Request requestObj; + private static GetLinesCount.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetLinesCount.Request("1"); + + resultObj = new GetLinesCount.Result(1); + + requestJson = + Resources.toString(Resources.getResource("getLinesCount.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getLinesCount.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetLinesCount.Result actualResultObj = sut.readValue(resultJson, GetLinesCount.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getLinesCount.request.json b/src/test/resources/getLinesCount.request.json new file mode 100644 index 0000000..ec2c5c0 --- /dev/null +++ b/src/test/resources/getLinesCount.request.json @@ -0,0 +1,6 @@ +{ + "method" : "getLinesCount", + "args" : { + "tag" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/getLinesCount.result.json b/src/test/resources/getLinesCount.result.json new file mode 100644 index 0000000..23c3e9e --- /dev/null +++ b/src/test/resources/getLinesCount.result.json @@ -0,0 +1,3 @@ +{ + "lines_count" : 1 +} \ No newline at end of file From 77c7c25e9552223e49e89b9aebe5f1d2ef531711 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 4 Aug 2018 01:39:06 +0300 Subject: [PATCH 058/549] Added the Money domain class. --- .../quik/lua/rpc/api/structures/Money.java | 106 ++++++++++++++++++ .../api/structures/MoneyJsonSerdeTest.java | 43 +++++++ src/test/resources/money.json | 9 ++ 3 files changed, 158 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java create mode 100644 src/test/resources/money.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java new file mode 100644 index 0000000..c9c0ba5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java @@ -0,0 +1,106 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class Money { + + String moneyOpenLimit; + String moneyLimitLockedNonMarginalValue; + String moneyLimitLocked; + String moneyOpenBalance; + String moneyCurrentLimit; + String moneyCurrentBalance; + String moneyLimitAvailable; + + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + private @JsonIgnore @NonFinal transient String asString; + + @Builder + @JsonCreator + private Money( + final @JsonProperty("money_open_limit") String moneyOpenLimit, + final @JsonProperty("money_limit_locked_nonmarginal_value") String moneyLimitLockedNonMarginalValue, + final @JsonProperty("money_limit_locked") String moneyLimitLocked, + final @JsonProperty("money_open_balance") String moneyOpenBalance, + final @JsonProperty("money_current_limit") String moneyCurrentLimit, + final @JsonProperty("money_current_balance") String moneyCurrentBalance, + final @JsonProperty("money_limit_available") String moneyLimitAvailable) { + + this.moneyOpenLimit = moneyOpenLimit; + this.moneyLimitLockedNonMarginalValue = moneyLimitLockedNonMarginalValue; + this.moneyLimitLocked = moneyLimitLocked; + this.moneyOpenBalance = moneyOpenBalance; + this.moneyCurrentLimit = moneyCurrentLimit; + this.moneyCurrentBalance = moneyCurrentBalance; + this.moneyLimitAvailable = moneyLimitAvailable; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Money) ) { + return false; + } else { + final Money money = (Money) o; + return Objects.equals(moneyOpenLimit, money.moneyOpenLimit) && + Objects.equals(moneyLimitLockedNonMarginalValue, money.moneyLimitLockedNonMarginalValue) && + Objects.equals(moneyLimitLocked, money.moneyLimitLocked) && + Objects.equals(moneyOpenBalance, money.moneyOpenBalance) && + Objects.equals(moneyCurrentLimit, money.moneyCurrentLimit) && + Objects.equals(moneyCurrentBalance, money.moneyCurrentBalance) && + Objects.equals(moneyLimitAvailable, money.moneyLimitAvailable); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + moneyOpenLimit, + moneyLimitLockedNonMarginalValue, + moneyLimitLocked, + moneyOpenBalance, + moneyCurrentLimit, + moneyCurrentBalance, + moneyLimitAvailable + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("money_open_limit", moneyOpenLimit) + .add("money_limit_locked_nonmarginal_value", moneyLimitLockedNonMarginalValue) + .add("money_limit_locked", moneyLimitLocked) + .add("money_open_balance", moneyOpenBalance) + .add("money_current_limit", moneyCurrentLimit) + .add("money_current_balance", moneyCurrentBalance) + .add("money_limit_available", moneyLimitAvailable) + .toString(); + } + + return asString; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java new file mode 100644 index 0000000..b52e623 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class MoneyJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static Money money; + private static String moneyAsJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + money = Money.builder() + .moneyOpenLimit("1") + .moneyLimitLockedNonMarginalValue("2") + .moneyLimitLocked("3") + .moneyOpenBalance("4") + .moneyCurrentLimit("5") + .moneyCurrentBalance("6") + .moneyLimitAvailable("7") + .build(); + + moneyAsJson = Resources.toString(Resources.getResource("money.json"), Charsets.UTF_8); + } + + @Test + public void testDeserialize() throws IOException { + + final Money actual = sut.readValue(moneyAsJson, Money.class); + + assertEquals(money, actual); + } +} diff --git a/src/test/resources/money.json b/src/test/resources/money.json new file mode 100644 index 0000000..1bf5570 --- /dev/null +++ b/src/test/resources/money.json @@ -0,0 +1,9 @@ +{ + "money_open_limit" : "1", + "money_limit_locked_nonmarginal_value" : "2", + "money_limit_locked" : "3", + "money_open_balance" : "4", + "money_current_limit" : "5", + "money_current_balance" : "6", + "money_limit_available" : "7" +} \ No newline at end of file From 2e3bf50046f22c491bdb2dc446a9ec7261618181 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 4 Aug 2018 01:48:10 +0300 Subject: [PATCH 059/549] Added request-result pairs for GetMoney. --- .../quik/lua/rpc/api/messages/GetMoney.java | 64 +++++++++++++++++ .../GetMoneyRequestJsonSerializer.java | 24 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetFuturesLimitJsonSerdeTest.java | 1 - .../api/messages/GetMoneyJsonSerdeTest.java | 70 +++++++++++++++++++ src/test/resources/getMoney.request.json | 9 +++ src/test/resources/getMoney.result.json | 11 +++ 7 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java create mode 100644 src/test/resources/getMoney.request.json create mode 100644 src/test/resources/getMoney.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java new file mode 100644 index 0000000..5a0a8c2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetMoney { + + private GetMoney() {} + + @Value + public static class Request { + + String clientCode; + String firmId; + String tag; + String currCode; + + @Builder + private Request( + final @NonNull String clientCode, + final @NonNull String firmId, + final @NonNull String tag, + final @NonNull String currCode) { + + this.clientCode = clientCode; + this.firmId = firmId; + this.tag = tag; + this.currCode = currCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("client_code", clientCode) + .add("firmid", firmId) + .add("tag", tag) + .add("currcode", currCode) + .toString(); + } + } + + @Value + public static class Result { + + Money money; + + @JsonCreator + public Result(final @JsonProperty(value = "money", required = true) @NonNull Money money) { + this.money = money; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("money", money) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java new file mode 100644 index 0000000..5d038e7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetMoneyRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetMoney.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getMoney"); + + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("tag", value.getTag()); + gen.writeStringField("currcode", value.getCurrCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 3b5adf7..96f7e75 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -36,6 +36,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetItem.Request.class, new GetItemRequestJsonSerializer()); super.addSerializer(GetLabelParams.Request.class, new GetLabelParamsRequestJsonSerializer()); super.addSerializer(GetLinesCount.Request.class, new GetLinesCountRequestJsonSerializer()); + super.addSerializer(GetMoney.Request.class, new GetMoneyRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index d2127c5..58f9c39 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java new file mode 100644 index 0000000..78322dc --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetMoneyJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetMoney.Request requestObj; + private static GetMoney.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetMoney.Request.builder() + .clientCode("1") + .firmId("2") + .tag("3") + .currCode("4") + .build(); + + final Money money = Money.builder() + .moneyOpenLimit("1") + .moneyLimitLockedNonMarginalValue("2") + .moneyLimitLocked("3") + .moneyOpenBalance("4") + .moneyCurrentLimit("5") + .moneyCurrentBalance("6") + .moneyLimitAvailable("7") + .build(); + + resultObj = new GetMoney.Result(money); + + requestJson = + Resources.toString(Resources.getResource("getMoney.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getMoney.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetMoney.Result actualResultObj = sut.readValue(resultJson, GetMoney.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getMoney.request.json b/src/test/resources/getMoney.request.json new file mode 100644 index 0000000..4b35278 --- /dev/null +++ b/src/test/resources/getMoney.request.json @@ -0,0 +1,9 @@ +{ + "method" : "getMoney", + "args" : { + "client_code" : "1", + "firmid" : "2", + "tag" : "3", + "currcode" : "4" + } +} \ No newline at end of file diff --git a/src/test/resources/getMoney.result.json b/src/test/resources/getMoney.result.json new file mode 100644 index 0000000..78f6937 --- /dev/null +++ b/src/test/resources/getMoney.result.json @@ -0,0 +1,11 @@ +{ + "money" : { + "money_open_limit" : "1", + "money_limit_locked_nonmarginal_value" : "2", + "money_limit_locked" : "3", + "money_open_balance" : "4", + "money_current_limit" : "5", + "money_current_balance" : "6", + "money_limit_available" : "7" + } +} \ No newline at end of file From 72603cf39d13617511a1d6eecc5b5daea43f0da3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 20:29:06 +0300 Subject: [PATCH 060/549] Added request-result pairs for GetMoneyEx. --- .../quik/lua/rpc/api/messages/GetMoneyEx.java | 68 ++++++++++++++++ .../GetMoneyExRequestJsonSerializer.java | 25 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../api/messages/GetMoneyExJsonSerdeTest.java | 77 +++++++++++++++++++ src/test/resources/getMoneyEx.request.json | 10 +++ src/test/resources/getMoneyEx.result.json | 17 ++++ 6 files changed, 198 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java create mode 100644 src/test/resources/getMoneyEx.request.json create mode 100644 src/test/resources/getMoneyEx.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java new file mode 100644 index 0000000..c0093c8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetMoneyEx { + + private GetMoneyEx() {} + + @Value + public static class Request { + + String firmId; + String clientCode; + String tag; + String currCode; + int limitKind; + + @Builder + private Request(final @NonNull String firmId, + final @NonNull String clientCode, + final @NonNull String tag, + final @NonNull String currCode, + int limitKind) { + + this.firmId = firmId; + this.clientCode = clientCode; + this.tag = tag; + this.currCode = currCode; + this.limitKind = limitKind; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firmid", firmId) + .add("client_code", clientCode) + .add("tag", tag) + .add("currcode", currCode) + .add("limit_kind", limitKind) + .toString(); + } + } + + @Value + public static class Result { + + + MoneyLimit moneyEx; + + @JsonCreator + public Result(final @JsonProperty(value = "money_ex", required = true) @NonNull MoneyLimit moneyEx) { + this.moneyEx = moneyEx; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("money_ex", moneyEx) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java new file mode 100644 index 0000000..d365870 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetMoneyExRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetMoneyEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getMoneyEx"); + + gen.writeStringField("firmid", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeStringField("tag", value.getTag()); + gen.writeStringField("currcode", value.getCurrCode()); + gen.writeNumberField("limit_kind", value.getLimitKind()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 96f7e75..97ff9a3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -37,6 +37,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetLabelParams.Request.class, new GetLabelParamsRequestJsonSerializer()); super.addSerializer(GetLinesCount.Request.class, new GetLinesCountRequestJsonSerializer()); super.addSerializer(GetMoney.Request.class, new GetMoneyRequestJsonSerializer()); + super.addSerializer(GetMoneyEx.Request.class, new GetMoneyExRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java new file mode 100644 index 0000000..b02e78a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java @@ -0,0 +1,77 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetMoneyExJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetMoneyEx.Request requestObj; + private static GetMoneyEx.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetMoneyEx.Request.builder() + .firmId("1") + .clientCode("2") + .tag("3") + .currCode("4") + .limitKind(5) + .build(); + + final MoneyLimit moneyEx = MoneyLimit.builder() + .currCode("1") + .tag("2") + .firmId("3") + .clientCode("4") + .openBal("5") + .openLimit("6") + .currentBal("7") + .currentLimit("8") + .locked("9") + .lockedValueCoef("10") + .lockedMarginValue("11") + .leverage("12") + .limitKind(13) + .build(); + + resultObj = new GetMoneyEx.Result(moneyEx); + + requestJson = + Resources.toString(Resources.getResource("getMoneyEx.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("getMoneyEx.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetMoneyEx.Result actualResultObj = sut.readValue(resultJson, GetMoneyEx.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/getMoneyEx.request.json b/src/test/resources/getMoneyEx.request.json new file mode 100644 index 0000000..ae5f90a --- /dev/null +++ b/src/test/resources/getMoneyEx.request.json @@ -0,0 +1,10 @@ +{ + "method" : "getMoneyEx", + "args" : { + "firmid" : "1", + "client_code" : "2", + "tag" : "3", + "currcode" : "4", + "limit_kind" : 5 + } +} \ No newline at end of file diff --git a/src/test/resources/getMoneyEx.result.json b/src/test/resources/getMoneyEx.result.json new file mode 100644 index 0000000..e7c66b1 --- /dev/null +++ b/src/test/resources/getMoneyEx.result.json @@ -0,0 +1,17 @@ +{ + "money_ex" : { + "currcode" : "1", + "tag" : "2", + "firmid" : "3", + "client_code" : "4", + "openbal" : "5", + "openlimit" : "6", + "currentbal" : "7", + "currentlimit" : "8", + "locked" : "9", + "locked_value_coef" : "10", + "locked_margin_value" : "11", + "leverage" : "12", + "limit_kind" : 13 + } +} \ No newline at end of file From e9882a0f996cfc1f3c543ec301be621dab2855d6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 20:40:44 +0300 Subject: [PATCH 061/549] Fixed deserialization of GetItem.Result. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index f6160a9..b28ab77 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -38,7 +38,7 @@ public static class Result { Map tableRow; @JsonCreator - public Result(final @JsonProperty(value = "table_row" ,required = true) @NonNull Map tableRow) { + public Result(@NonNull Map tableRow) { this.tableRow = tableRow; } From 1e09e2916b6b445cfe1b4544ba8d0153555acef2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 20:41:33 +0300 Subject: [PATCH 062/549] Moved JSON files to a separate folder. --- .../lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java | 4 ++-- .../lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java | 4 ++-- .../quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java | 4 ++-- .../quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java | 5 ++--- .../lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java | 4 ++-- .../lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java | 4 ++-- .../quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java | 4 ++-- .../quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java | 4 ++-- .../quik/lua/rpc/api/structures/FirmJsonSerdeTest.java | 2 +- .../api/structures/FuturesClientHoldingJsonSerdeTest.java | 2 +- .../lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java | 2 +- .../quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java | 2 +- src/test/resources/{ => json}/GetLabelParams.request.json | 0 src/test/resources/{ => json}/GetLabelParams.result.json | 0 src/test/resources/{ => json}/firm.json | 0 src/test/resources/{ => json}/futures_client_holding.json | 0 src/test/resources/{ => json}/futures_limit.json | 0 src/test/resources/{ => json}/getFuturesHolding.request.json | 0 src/test/resources/{ => json}/getFuturesHolding.result.json | 0 src/test/resources/{ => json}/getFuturesLimit.request.json | 0 src/test/resources/{ => json}/getFuturesLimit.result.json | 0 src/test/resources/{ => json}/getInfoParam.request.json | 0 src/test/resources/{ => json}/getInfoParam.result.json | 0 src/test/resources/{ => json}/getItem.request.json | 0 src/test/resources/{ => json}/getItem.result.json | 0 src/test/resources/{ => json}/getLinesCount.request.json | 0 src/test/resources/{ => json}/getLinesCount.result.json | 0 src/test/resources/{ => json}/getMoney.request.json | 0 src/test/resources/{ => json}/getMoney.result.json | 0 src/test/resources/{ => json}/getMoneyEx.request.json | 0 src/test/resources/{ => json}/getMoneyEx.result.json | 0 src/test/resources/{ => json}/money.json | 0 32 files changed, 20 insertions(+), 21 deletions(-) rename src/test/resources/{ => json}/GetLabelParams.request.json (100%) rename src/test/resources/{ => json}/GetLabelParams.result.json (100%) rename src/test/resources/{ => json}/firm.json (100%) rename src/test/resources/{ => json}/futures_client_holding.json (100%) rename src/test/resources/{ => json}/futures_limit.json (100%) rename src/test/resources/{ => json}/getFuturesHolding.request.json (100%) rename src/test/resources/{ => json}/getFuturesHolding.result.json (100%) rename src/test/resources/{ => json}/getFuturesLimit.request.json (100%) rename src/test/resources/{ => json}/getFuturesLimit.result.json (100%) rename src/test/resources/{ => json}/getInfoParam.request.json (100%) rename src/test/resources/{ => json}/getInfoParam.result.json (100%) rename src/test/resources/{ => json}/getItem.request.json (100%) rename src/test/resources/{ => json}/getItem.result.json (100%) rename src/test/resources/{ => json}/getLinesCount.request.json (100%) rename src/test/resources/{ => json}/getLinesCount.result.json (100%) rename src/test/resources/{ => json}/getMoney.request.json (100%) rename src/test/resources/{ => json}/getMoney.result.json (100%) rename src/test/resources/{ => json}/getMoneyEx.request.json (100%) rename src/test/resources/{ => json}/getMoneyEx.result.json (100%) rename src/test/resources/{ => json}/money.json (100%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java index 905aef8..1f5cdbc 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java @@ -60,9 +60,9 @@ public static void globalSetup() throws IOException { resultObj = new GetFuturesHolding.Result(futuresClientHolding); requestJson = - Resources.toString(Resources.getResource("getFuturesHolding.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getFuturesHolding.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getFuturesHolding.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getFuturesHolding.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index 58f9c39..61d41f2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -57,9 +57,9 @@ public static void globalSetup() throws IOException { resultObj = new GetFuturesLimit.Result(futuresLimit); requestJson = - Resources.toString(Resources.getResource("getFuturesLimit.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getFuturesLimit.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getFuturesLimit.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getFuturesLimit.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java index 905fadc..d24378e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java @@ -32,9 +32,9 @@ public static void globalSetup() throws IOException { resultObj = new GetInfoParam.Result("1"); requestJson = - Resources.toString(Resources.getResource("getInfoParam.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getInfoParam.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getInfoParam.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getInfoParam.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java index b7e6200..3620531 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -40,9 +39,9 @@ public static void globalSetup() throws IOException { resultObj = new GetItem.Result( tableRow.build() ); requestJson = - Resources.toString(Resources.getResource("getItem.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getItem.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getItem.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getItem.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java index a1bb20e..2bb191a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java @@ -39,9 +39,9 @@ public static void globalSetup() throws IOException { resultObj = new GetLabelParams.Result( labelParams.build() ); requestJson = - Resources.toString(Resources.getResource("GetLabelParams.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/GetLabelParams.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("GetLabelParams.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/GetLabelParams.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java index 8ab87dc..9cdfe3c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java @@ -31,9 +31,9 @@ public static void globalSetup() throws IOException { resultObj = new GetLinesCount.Result(1); requestJson = - Resources.toString(Resources.getResource("getLinesCount.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getLinesCount.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getLinesCount.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getLinesCount.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java index b02e78a..a7432cf 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java @@ -54,9 +54,9 @@ public static void globalSetup() throws IOException { resultObj = new GetMoneyEx.Result(moneyEx); requestJson = - Resources.toString(Resources.getResource("getMoneyEx.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getMoneyEx.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getMoneyEx.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getMoneyEx.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java index 78322dc..dbb1102 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java @@ -47,9 +47,9 @@ public static void globalSetup() throws IOException { resultObj = new GetMoney.Result(money); requestJson = - Resources.toString(Resources.getResource("getMoney.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getMoney.request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("getMoney.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/getMoney.result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java index 6082455..aa5028b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java @@ -27,7 +27,7 @@ public static void globalSetup() throws IOException { .exchange("4") .build(); - firmAsJson = Resources.toString(Resources.getResource("firm.json"), Charsets.UTF_8); + firmAsJson = Resources.toString(Resources.getResource("json/firm.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java index d32b3d4..df4a94a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java @@ -44,7 +44,7 @@ public static void globalSetup() throws IOException { .build(); futuresClientHoldingAsJson = - Resources.toString(Resources.getResource("futures_client_holding.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/futures_client_holding.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java index 72d9c20..bdd7662 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java @@ -41,7 +41,7 @@ public static void globalSetup() throws IOException { .realVarMargin("17") .build(); - expectedJson = Resources.toString(Resources.getResource("futures_limit.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/futures_limit.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java index b52e623..9bdd432 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java @@ -30,7 +30,7 @@ public static void globalSetup() throws IOException { .moneyLimitAvailable("7") .build(); - moneyAsJson = Resources.toString(Resources.getResource("money.json"), Charsets.UTF_8); + moneyAsJson = Resources.toString(Resources.getResource("json/money.json"), Charsets.UTF_8); } @Test diff --git a/src/test/resources/GetLabelParams.request.json b/src/test/resources/json/GetLabelParams.request.json similarity index 100% rename from src/test/resources/GetLabelParams.request.json rename to src/test/resources/json/GetLabelParams.request.json diff --git a/src/test/resources/GetLabelParams.result.json b/src/test/resources/json/GetLabelParams.result.json similarity index 100% rename from src/test/resources/GetLabelParams.result.json rename to src/test/resources/json/GetLabelParams.result.json diff --git a/src/test/resources/firm.json b/src/test/resources/json/firm.json similarity index 100% rename from src/test/resources/firm.json rename to src/test/resources/json/firm.json diff --git a/src/test/resources/futures_client_holding.json b/src/test/resources/json/futures_client_holding.json similarity index 100% rename from src/test/resources/futures_client_holding.json rename to src/test/resources/json/futures_client_holding.json diff --git a/src/test/resources/futures_limit.json b/src/test/resources/json/futures_limit.json similarity index 100% rename from src/test/resources/futures_limit.json rename to src/test/resources/json/futures_limit.json diff --git a/src/test/resources/getFuturesHolding.request.json b/src/test/resources/json/getFuturesHolding.request.json similarity index 100% rename from src/test/resources/getFuturesHolding.request.json rename to src/test/resources/json/getFuturesHolding.request.json diff --git a/src/test/resources/getFuturesHolding.result.json b/src/test/resources/json/getFuturesHolding.result.json similarity index 100% rename from src/test/resources/getFuturesHolding.result.json rename to src/test/resources/json/getFuturesHolding.result.json diff --git a/src/test/resources/getFuturesLimit.request.json b/src/test/resources/json/getFuturesLimit.request.json similarity index 100% rename from src/test/resources/getFuturesLimit.request.json rename to src/test/resources/json/getFuturesLimit.request.json diff --git a/src/test/resources/getFuturesLimit.result.json b/src/test/resources/json/getFuturesLimit.result.json similarity index 100% rename from src/test/resources/getFuturesLimit.result.json rename to src/test/resources/json/getFuturesLimit.result.json diff --git a/src/test/resources/getInfoParam.request.json b/src/test/resources/json/getInfoParam.request.json similarity index 100% rename from src/test/resources/getInfoParam.request.json rename to src/test/resources/json/getInfoParam.request.json diff --git a/src/test/resources/getInfoParam.result.json b/src/test/resources/json/getInfoParam.result.json similarity index 100% rename from src/test/resources/getInfoParam.result.json rename to src/test/resources/json/getInfoParam.result.json diff --git a/src/test/resources/getItem.request.json b/src/test/resources/json/getItem.request.json similarity index 100% rename from src/test/resources/getItem.request.json rename to src/test/resources/json/getItem.request.json diff --git a/src/test/resources/getItem.result.json b/src/test/resources/json/getItem.result.json similarity index 100% rename from src/test/resources/getItem.result.json rename to src/test/resources/json/getItem.result.json diff --git a/src/test/resources/getLinesCount.request.json b/src/test/resources/json/getLinesCount.request.json similarity index 100% rename from src/test/resources/getLinesCount.request.json rename to src/test/resources/json/getLinesCount.request.json diff --git a/src/test/resources/getLinesCount.result.json b/src/test/resources/json/getLinesCount.result.json similarity index 100% rename from src/test/resources/getLinesCount.result.json rename to src/test/resources/json/getLinesCount.result.json diff --git a/src/test/resources/getMoney.request.json b/src/test/resources/json/getMoney.request.json similarity index 100% rename from src/test/resources/getMoney.request.json rename to src/test/resources/json/getMoney.request.json diff --git a/src/test/resources/getMoney.result.json b/src/test/resources/json/getMoney.result.json similarity index 100% rename from src/test/resources/getMoney.result.json rename to src/test/resources/json/getMoney.result.json diff --git a/src/test/resources/getMoneyEx.request.json b/src/test/resources/json/getMoneyEx.request.json similarity index 100% rename from src/test/resources/getMoneyEx.request.json rename to src/test/resources/json/getMoneyEx.request.json diff --git a/src/test/resources/getMoneyEx.result.json b/src/test/resources/json/getMoneyEx.result.json similarity index 100% rename from src/test/resources/getMoneyEx.result.json rename to src/test/resources/json/getMoneyEx.result.json diff --git a/src/test/resources/money.json b/src/test/resources/json/money.json similarity index 100% rename from src/test/resources/money.json rename to src/test/resources/json/money.json From afff60387c45ab8c4dc663bd3f0fd20987786d49 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 20:42:04 +0300 Subject: [PATCH 063/549] Added request-result pairs for GetNumberOf. --- .../lua/rpc/api/messages/GetNumberOf.java | 41 ++++++++++++++ .../GetNumberOfRequestJsonSerializer.java | 21 ++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetNumberOfJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/getNumberOf.request.json | 6 +++ .../resources/json/getNumberOf.result.json | 3 ++ 6 files changed, 126 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java create mode 100644 src/test/resources/json/getNumberOf.request.json create mode 100644 src/test/resources/json/getNumberOf.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java new file mode 100644 index 0000000..8dd13da --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetNumberOf { + + @Value + public static class Request { + + @NonNull String tableName; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table_name", tableName) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java new file mode 100644 index 0000000..32c7dd8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetNumberOfRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetNumberOf.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getNumberOf"); + + gen.writeStringField("table_name", value.getTableName()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 97ff9a3..f457e06 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -38,6 +38,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetLinesCount.Request.class, new GetLinesCountRequestJsonSerializer()); super.addSerializer(GetMoney.Request.class, new GetMoneyRequestJsonSerializer()); super.addSerializer(GetMoneyEx.Request.class, new GetMoneyExRequestJsonSerializer()); + super.addSerializer(GetNumberOf.Request.class, new GetNumberOfRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java new file mode 100644 index 0000000..c79dfa2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetNumberOfJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetNumberOf.Request requestObj; + private static GetNumberOf.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetNumberOf.Request("1"); + + resultObj = new GetNumberOf.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/getNumberOf.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getNumberOf.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetNumberOf.Result actualResultObj = sut.readValue(resultJson, GetNumberOf.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getNumberOf.request.json b/src/test/resources/json/getNumberOf.request.json new file mode 100644 index 0000000..25b041f --- /dev/null +++ b/src/test/resources/json/getNumberOf.request.json @@ -0,0 +1,6 @@ +{ + "method" : "getNumberOf", + "args" : { + "table_name" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getNumberOf.result.json b/src/test/resources/json/getNumberOf.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/getNumberOf.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From b10fa6033507e2e8bd76541ec15ec66a0c530b50 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 20:47:14 +0300 Subject: [PATCH 064/549] Added request-result pairs for GetNumCandles. --- .../lua/rpc/api/messages/GetNumCandles.java | 43 +++++++++++++++ .../GetNumCandlesRequestJsonSerializer.java | 21 ++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetNumCandlesJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/getNumCandles.request.json | 6 +++ .../resources/json/getNumCandles.result.json | 3 ++ 6 files changed, 128 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java create mode 100644 src/test/resources/json/getNumCandles.request.json create mode 100644 src/test/resources/json/getNumCandles.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java new file mode 100644 index 0000000..dc7e1ec --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetNumCandles { + + private GetNumCandles() {} + + @Value + public static class Request { + + @NonNull String tag; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("tag", tag) + .toString(); + } + } + + @Value + public static class Result { + + int numCandles; + + @JsonCreator + public Result(final @JsonProperty(value = "num_candles", required = true) int numCandles) { + this.numCandles = numCandles; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("num_candles", numCandles) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java new file mode 100644 index 0000000..a7e4a3b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetNumCandlesRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetNumCandles.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getNumCandles"); + + gen.writeStringField("tag", value.getTag()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index f457e06..16a1a14 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -39,6 +39,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetMoney.Request.class, new GetMoneyRequestJsonSerializer()); super.addSerializer(GetMoneyEx.Request.class, new GetMoneyExRequestJsonSerializer()); super.addSerializer(GetNumberOf.Request.class, new GetNumberOfRequestJsonSerializer()); + super.addSerializer(GetNumCandles.Request.class, new GetNumCandlesRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java new file mode 100644 index 0000000..e542421 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetNumCandlesJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetNumCandles.Request requestObj; + private static GetNumCandles.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetNumCandles.Request("1"); + + resultObj = new GetNumCandles.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/getNumCandles.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getNumCandles.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetNumCandles.Result actualResultObj = sut.readValue(resultJson, GetNumCandles.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getNumCandles.request.json b/src/test/resources/json/getNumCandles.request.json new file mode 100644 index 0000000..d4f081b --- /dev/null +++ b/src/test/resources/json/getNumCandles.request.json @@ -0,0 +1,6 @@ +{ + "method" : "getNumCandles", + "args" : { + "tag" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getNumCandles.result.json b/src/test/resources/json/getNumCandles.result.json new file mode 100644 index 0000000..4f3b559 --- /dev/null +++ b/src/test/resources/json/getNumCandles.result.json @@ -0,0 +1,3 @@ +{ + "num_candles" : 1 +} \ No newline at end of file From b0651ced995fad105e548d87fc8eed32727283ce Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 5 Aug 2018 21:11:06 +0300 Subject: [PATCH 065/549] Added request-result pairs for GetOrderByNumber. --- .../rpc/api/messages/GetOrderByNumber.java | 50 +++++++ ...GetOrderByNumberRequestJsonSerializer.java | 22 +++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetOrderByNumberJsonSerdeTest.java | 125 ++++++++++++++++++ .../json/getOrderByNumber.request.json | 7 + .../json/getOrderByNumber.result.json | 67 ++++++++++ 6 files changed, 272 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java create mode 100644 src/test/resources/json/getOrderByNumber.request.json create mode 100644 src/test/resources/json/getOrderByNumber.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java new file mode 100644 index 0000000..0cb5d24 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetOrderByNumber { + + @Value + public static class Request { + + String classCode; + long orderId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("order_id", orderId) + .toString(); + } + } + + @Value + public static class Result { + + Order order; + int indx; + + @JsonCreator + public Result( + final @JsonProperty(value = "order", required = true) @NonNull Order order, + final @JsonProperty(value = "indx", required = true) int indx) { + + this.order = order; + this.indx = indx; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("order", order) + .add("indx", indx) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java new file mode 100644 index 0000000..cfcb63c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetOrderByNumberRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetOrderByNumber.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getOrderByNumber"); + + gen.writeStringField("class_code", value.getClassCode()); + gen.writeNumberField("order_id", value.getOrderId()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 16a1a14..3af8cfc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -40,6 +40,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetMoneyEx.Request.class, new GetMoneyExRequestJsonSerializer()); super.addSerializer(GetNumberOf.Request.class, new GetNumberOfRequestJsonSerializer()); super.addSerializer(GetNumCandles.Request.class, new GetNumCandlesRequestJsonSerializer()); + super.addSerializer(GetOrderByNumber.Request.class, new GetOrderByNumberRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java new file mode 100644 index 0000000..28bfbde --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java @@ -0,0 +1,125 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetOrderByNumberJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetOrderByNumber.Request requestObj; + private static GetOrderByNumber.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetOrderByNumber.Request("1", 12345678909876577L); + + final DateTimeEntry datetime = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + final DateTimeEntry withdrawDatetime = DateTimeEntry.builder() + .mcs(9) + .ms(8) + .sec(7) + .min(6) + .hour(5) + .day(4) + .weekDay(3) + .month(2) + .year(1) + .build(); + + final Order order = Order.builder() + .orderNum(12345678909876577L) + .flags(2) + .brokerRef("3") + .userId("4") + .firmId("5") + .account("6") + .price("7") + .qty(8) + .balance("9") + .value("10") + .accruedInt("11") + .yield("12") + .transId("13") + .clientCode("14") + .price2("15") + .settleCode("16") + .uid("17") + .canceledUid("18") + .exchangeCode("19") + .activationTime("20") + .linkedOrder("21") + .expiry("22") + .secCode("23") + .classCode("24") + .datetime(datetime) + .withdrawDatetime(withdrawDatetime) + .bankAccId("27") + .valueEntryType(28) + .repoTerm("29") + .repoValue("30") + .repo2Value("31") + .repoValueBalance("32") + .startDiscount("33") + .rejectReason("34") + .extOrderFlags("35") + .minQty(36) + .execType(37) + .sideQualifier(38) + .acntType(39) + .capacity(40) + .passiveOnlyOrder(41) + .visible(42) + .build(); + + resultObj = new GetOrderByNumber.Result(order, 2); + + requestJson = + Resources.toString(Resources.getResource("json/getOrderByNumber.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getOrderByNumber.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetOrderByNumber.Result actualResultObj = sut.readValue(resultJson, GetOrderByNumber.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getOrderByNumber.request.json b/src/test/resources/json/getOrderByNumber.request.json new file mode 100644 index 0000000..59e5079 --- /dev/null +++ b/src/test/resources/json/getOrderByNumber.request.json @@ -0,0 +1,7 @@ +{ + "method" : "getOrderByNumber", + "args" : { + "class_code" : "1", + "order_id" : 12345678909876577 + } +} \ No newline at end of file diff --git a/src/test/resources/json/getOrderByNumber.result.json b/src/test/resources/json/getOrderByNumber.result.json new file mode 100644 index 0000000..95856a0 --- /dev/null +++ b/src/test/resources/json/getOrderByNumber.result.json @@ -0,0 +1,67 @@ +{ + "order" : { + "order_num" : 12345678909876577, + "flags" : 2, + "brokerref" : "3", + "userid" : "4", + "firmid" : "5", + "account" : "6", + "price" : "7", + "qty" : 8, + "balance" : "9", + "value" : "10", + "accruedint" : "11", + "yield" : "12", + "trans_id" : "13", + "client_code" : "14", + "price2" : "15", + "settlecode" : "16", + "uid" : "17", + "canceled_uid" : "18", + "exchange_code" : "19", + "activation_time" : "20", + "linkedorder" : "21", + "expiry" : "22", + "sec_code" : "23", + "class_code" : "24", + "datetime" : { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 + }, + "withdraw_datetime" : { + "mcs" : 9, + "ms" : 8, + "sec" : 7, + "min" : 6, + "hour" : 5, + "day" : 4, + "week_day" : 3, + "month" : 2, + "year" : 1 + }, + "bank_acc_id" : "27", + "value_entry_type" : 28, + "repoterm" : "29", + "repovalue" : "30", + "repo2value" : "31", + "repo_value_balance" : "32", + "start_discount" : "33", + "reject_reason" : "34", + "ext_order_flags" : "35", + "min_qty" : 36, + "exec_type" : 37, + "side_qualifier" : 38, + "acnt_type" : 39, + "capacity" : 40, + "passive_only_order" : 41, + "visible" : 42 + }, + "indx" : 2 +} From b7914f158f9e13aa597c7f4a61eb3925393742cd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 6 Aug 2018 00:08:20 +0300 Subject: [PATCH 066/549] Added the PortfolioInfo domain class. --- .../lua/rpc/api/structures/PortfolioInfo.java | 306 ++++++++++++++++++ .../PortfolioInfoJsonSerdeTest.java | 84 +++++ src/test/resources/json/portfolio_info.json | 42 +++ 3 files changed, 432 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java create mode 100644 src/test/resources/json/portfolio_info.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java new file mode 100644 index 0000000..5b43a40 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java @@ -0,0 +1,306 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class PortfolioInfo { + + @JsonProperty("is_leverage") String isLeverage; + @JsonProperty("in_assets") String inAssets; + @JsonProperty("leverage") String leverage; + @JsonProperty("open_limit") String openLimit; + @JsonProperty("val_short") String valShort; + @JsonProperty("val_long") String valLong; + @JsonProperty("val_long_margin") String valLongMargin; + @JsonProperty("val_long_asset") String valLongAsset; + @JsonProperty("assets") String assets; + @JsonProperty("cur_leverage") String curLeverage; + @JsonProperty("margin") String margin; + @JsonProperty("lim_all") String limAll; + @JsonProperty("av_lim_all") String avLimAll; + @JsonProperty("locked_buy") String lockedBuy; + @JsonProperty("locked_buy_margin") String lockedBuyMargin; + @JsonProperty("locked_buy_asset") String lockedBuyAsset; + @JsonProperty("locked_sell") String lockedSell; + @JsonProperty("locked_value_coef") String lockedValueCoef; + @JsonProperty("in_all_assets") String inAllAssets; + @JsonProperty("all_assets") String allAssets; + @JsonProperty("profit_loss") String profitLoss; + @JsonProperty("rate_change") String rateChange; + @JsonProperty("lim_buy") String limBuy; + @JsonProperty("lim_sell") String limSell; + @JsonProperty("lim_non_margin") String limNonMargin; + @JsonProperty("lim_buy_asset") String limBuyAsset; + @JsonProperty("val_short_net") String valShortNet; + @JsonProperty("val_long_net") String valLongNet; + @JsonProperty("total_money_bal") String totalMoneyBal; + @JsonProperty("total_locked_money") String totalLockedMoney; + @JsonProperty("haircuts") String haircuts; + @JsonProperty("assets_without_hc") String assetsWithoutHc; + @JsonProperty("status_coef") String statusCoef; + @JsonProperty("varmargin") String varMargin; + @JsonProperty("go_for_positions") String goForPositions; + @JsonProperty("go_for_orders") String goForOrders; + @JsonProperty("rate_futures") String rateFutures; + @JsonProperty("is_qual_client") String isQualClient; + @JsonProperty("is_futures") String isFutures; + @JsonProperty("curr_tag") String currTag; + + @Getter(AccessLevel.NONE) + @JsonIgnore + private @NonFinal transient int hashCode; + + @Getter(AccessLevel.NONE) + @JsonIgnore + private @NonFinal transient String asString; + + @Builder + @JsonCreator + private PortfolioInfo( + final @JsonProperty("is_leverage") String isLeverage, + final @JsonProperty("in_assets") String inAssets, + final @JsonProperty("leverage") String leverage, + final @JsonProperty("open_limit") String openLimit, + final @JsonProperty("val_short") String valShort, + final @JsonProperty("val_long") String valLong, + final @JsonProperty("val_long_margin") String valLongMargin, + final @JsonProperty("val_long_asset") String valLongAsset, + final @JsonProperty("assets") String assets, + final @JsonProperty("cur_leverage") String curLeverage, + final @JsonProperty("margin") String margin, + final @JsonProperty("lim_all") String limAll, + final @JsonProperty("av_lim_all") String avLimAll, + final @JsonProperty("locked_buy") String lockedBuy, + final @JsonProperty("locked_buy_margin") String lockedBuyMargin, + final @JsonProperty("locked_buy_asset") String lockedBuyAsset, + final @JsonProperty("locked_sell") String lockedSell, + final @JsonProperty("locked_value_coef") String lockedValueCoef, + final @JsonProperty("in_all_assets") String inAllAssets, + final @JsonProperty("all_assets") String allAssets, + final @JsonProperty("profit_loss") String profitLoss, + final @JsonProperty("rate_change") String rateChange, + final @JsonProperty("lim_buy") String limBuy, + final @JsonProperty("lim_sell") String limSell, + final @JsonProperty("lim_non_margin") String limNonMargin, + final @JsonProperty("lim_buy_asset") String limBuyAsset, + final @JsonProperty("val_short_net") String valShortNet, + final @JsonProperty("val_long_net") String valLongNet, + final @JsonProperty("total_money_bal") String totalMoneyBal, + final @JsonProperty("total_locked_money") String totalLockedMoney, + final @JsonProperty("haircuts") String haircuts, + final @JsonProperty("assets_without_hc") String assetsWithoutHc, + final @JsonProperty("status_coef") String statusCoef, + final @JsonProperty("varmargin") String varMargin, + final @JsonProperty("go_for_positions") String goForPositions, + final @JsonProperty("go_for_orders") String goForOrders, + final @JsonProperty("rate_futures") String rateFutures, + final @JsonProperty("is_qual_client") String isQualClient, + final @JsonProperty("is_futures") String isFutures, + final @JsonProperty("curr_tag") String currTag) { + + this.isLeverage = isLeverage; + this.inAssets = inAssets; + this.leverage = leverage; + this.openLimit = openLimit; + this.valShort = valShort; + this.valLong = valLong; + this.valLongMargin = valLongMargin; + this.valLongAsset = valLongAsset; + this.assets = assets; + this.curLeverage = curLeverage; + this.margin = margin; + this.limAll = limAll; + this.avLimAll = avLimAll; + this.lockedBuy = lockedBuy; + this.lockedBuyMargin = lockedBuyMargin; + this.lockedBuyAsset = lockedBuyAsset; + this.lockedSell = lockedSell; + this.lockedValueCoef = lockedValueCoef; + this.inAllAssets = inAllAssets; + this.allAssets = allAssets; + this.profitLoss = profitLoss; + this.rateChange = rateChange; + this.limBuy = limBuy; + this.limSell = limSell; + this.limNonMargin = limNonMargin; + this.limBuyAsset = limBuyAsset; + this.valShortNet = valShortNet; + this.valLongNet = valLongNet; + this.totalMoneyBal = totalMoneyBal; + this.totalLockedMoney = totalLockedMoney; + this.haircuts = haircuts; + this.assetsWithoutHc = assetsWithoutHc; + this.statusCoef = statusCoef; + this.varMargin = varMargin; + this.goForPositions = goForPositions; + this.goForOrders = goForOrders; + this.rateFutures = rateFutures; + this.isQualClient = isQualClient; + this.isFutures = isFutures; + this.currTag = currTag; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof PortfolioInfo) ) { + return false; + } else { + final PortfolioInfo that = (PortfolioInfo) o; + return Objects.equals(isLeverage, that.isLeverage) && + Objects.equals(inAssets, that.inAssets) && + Objects.equals(leverage, that.leverage) && + Objects.equals(openLimit, that.openLimit) && + Objects.equals(valShort, that.valShort) && + Objects.equals(valLong, that.valLong) && + Objects.equals(valLongMargin, that.valLongMargin) && + Objects.equals(valLongAsset, that.valLongAsset) && + Objects.equals(assets, that.assets) && + Objects.equals(curLeverage, that.curLeverage) && + Objects.equals(margin, that.margin) && + Objects.equals(limAll, that.limAll) && + Objects.equals(avLimAll, that.avLimAll) && + Objects.equals(lockedBuy, that.lockedBuy) && + Objects.equals(lockedBuyMargin, that.lockedBuyMargin) && + Objects.equals(lockedBuyAsset, that.lockedBuyAsset) && + Objects.equals(lockedSell, that.lockedSell) && + Objects.equals(lockedValueCoef, that.lockedValueCoef) && + Objects.equals(inAllAssets, that.inAllAssets) && + Objects.equals(allAssets, that.allAssets) && + Objects.equals(profitLoss, that.profitLoss) && + Objects.equals(rateChange, that.rateChange) && + Objects.equals(limBuy, that.limBuy) && + Objects.equals(limSell, that.limSell) && + Objects.equals(limNonMargin, that.limNonMargin) && + Objects.equals(limBuyAsset, that.limBuyAsset) && + Objects.equals(valShortNet, that.valShortNet) && + Objects.equals(valLongNet, that.valLongNet) && + Objects.equals(totalMoneyBal, that.totalMoneyBal) && + Objects.equals(totalLockedMoney, that.totalLockedMoney) && + Objects.equals(haircuts, that.haircuts) && + Objects.equals(assetsWithoutHc, that.assetsWithoutHc) && + Objects.equals(statusCoef, that.statusCoef) && + Objects.equals(varMargin, that.varMargin) && + Objects.equals(goForPositions, that.goForPositions) && + Objects.equals(goForOrders, that.goForOrders) && + Objects.equals(rateFutures, that.rateFutures) && + Objects.equals(isQualClient, that.isQualClient) && + Objects.equals(isFutures, that.isFutures) && + Objects.equals(currTag, that.currTag); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + isLeverage, + inAssets, + leverage, + openLimit, + valShort, + valLong, + valLongMargin, + valLongAsset, + assets, + curLeverage, + margin, + limAll, + avLimAll, + lockedBuy, + lockedBuyMargin, + lockedBuyAsset, + lockedSell, + lockedValueCoef, + inAllAssets, + allAssets, + profitLoss, + rateChange, + limBuy, + limSell, + limNonMargin, + limBuyAsset, + valShortNet, + valLongNet, + totalMoneyBal, + totalLockedMoney, + haircuts, + assetsWithoutHc, + statusCoef, + varMargin, + goForPositions, + goForOrders, + rateFutures, + isQualClient, + isFutures, + currTag + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("is_leverage", isLeverage) + .add("in_assets", inAssets) + .add("leverage", leverage) + .add("open_limit", openLimit) + .add("val_short", valShort) + .add("val_long", valLong) + .add("val_long_margin", valLongMargin) + .add("val_long_asset", valLongAsset) + .add("assets", assets) + .add("cur_leverage", curLeverage) + .add("margin", margin) + .add("lim_all", limAll) + .add("av_lim_all", avLimAll) + .add("locked_buy", lockedBuy) + .add("locked_buy_margin", lockedBuyMargin) + .add("locked_buy_asset", lockedBuyAsset) + .add("locked_sell", lockedSell) + .add("locked_value_coef", lockedValueCoef) + .add("in_all_assets", inAllAssets) + .add("all_assets", allAssets) + .add("profit_loss", profitLoss) + .add("rate_change", rateChange) + .add("lim_buy", limBuy) + .add("lim_sell", limSell) + .add("lim_non_margin", limNonMargin) + .add("lim_buy_asset", limBuyAsset) + .add("val_short_net", valShortNet) + .add("val_long_net", valLongNet) + .add("total_money_bal", totalMoneyBal) + .add("total_locked_money", totalLockedMoney) + .add("haircuts", haircuts) + .add("assets_without_hc", assetsWithoutHc) + .add("status_coef", statusCoef) + .add("varmargin", varMargin) + .add("go_for_positions", goForPositions) + .add("go_for_orders", goForOrders) + .add("rate_futures", rateFutures) + .add("is_qual_client", isQualClient) + .add("is_futures", isFutures) + .add("curr_tag", currTag) + .toString(); + } + + return asString; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java new file mode 100644 index 0000000..da9c54f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java @@ -0,0 +1,84 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class PortfolioInfoJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static PortfolioInfo portfolioInfo; + private static String portfolioInfoAsJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + portfolioInfo = PortfolioInfo.builder() + .isLeverage("1") + .inAssets("2") + .leverage("3") + .openLimit("4") + .valShort("5") + .valLong("6") + .valLongMargin("7") + .valLongAsset("8") + .assets("9") + .curLeverage("10") + .margin("11") + .limAll("12") + .avLimAll("13") + .lockedBuy("14") + .lockedBuyMargin("15") + .lockedBuyAsset("16") + .lockedSell("17") + .lockedValueCoef("18") + .inAllAssets("19") + .allAssets("20") + .profitLoss("21") + .rateChange("22") + .limBuy("23") + .limSell("24") + .limNonMargin("25") + .limBuyAsset("26") + .valShortNet("27") + .valLongNet("28") + .totalMoneyBal("29") + .totalLockedMoney("30") + .haircuts("31") + .assetsWithoutHc("32") + .statusCoef("33") + .varMargin("34") + .goForPositions("35") + .goForOrders("36") + .rateFutures("37") + .isQualClient("38") + .isFutures("39") + .currTag("40") + .build(); + + portfolioInfoAsJson = Resources.toString(Resources.getResource("json/portfolio_info.json"), Charsets.UTF_8); + } + + @Test + public void testSerialize() throws IOException { + + final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(portfolioInfo); + + assertEquals(portfolioInfoAsJson, actual); + } + + @Test + public void testDeserialize() throws IOException { + + final PortfolioInfo actual = sut.readValue(portfolioInfoAsJson, PortfolioInfo.class); + + assertEquals(portfolioInfo, actual); + } +} diff --git a/src/test/resources/json/portfolio_info.json b/src/test/resources/json/portfolio_info.json new file mode 100644 index 0000000..f46098e --- /dev/null +++ b/src/test/resources/json/portfolio_info.json @@ -0,0 +1,42 @@ +{ + "is_leverage" : "1", + "in_assets" : "2", + "leverage" : "3", + "open_limit" : "4", + "val_short" : "5", + "val_long" : "6", + "val_long_margin" : "7", + "val_long_asset" : "8", + "assets" : "9", + "cur_leverage" : "10", + "margin" : "11", + "lim_all" : "12", + "av_lim_all" : "13", + "locked_buy" : "14", + "locked_buy_margin" : "15", + "locked_buy_asset" : "16", + "locked_sell" : "17", + "locked_value_coef" : "18", + "in_all_assets" : "19", + "all_assets" : "20", + "profit_loss" : "21", + "rate_change" : "22", + "lim_buy" : "23", + "lim_sell" : "24", + "lim_non_margin" : "25", + "lim_buy_asset" : "26", + "val_short_net" : "27", + "val_long_net" : "28", + "total_money_bal" : "29", + "total_locked_money" : "30", + "haircuts" : "31", + "assets_without_hc" : "32", + "status_coef" : "33", + "varmargin" : "34", + "go_for_positions" : "35", + "go_for_orders" : "36", + "rate_futures" : "37", + "is_qual_client" : "38", + "is_futures" : "39", + "curr_tag" : "40" +} \ No newline at end of file From c565bcc0dfc82b7c49c698b80832be2ff11db672 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 6 Aug 2018 00:16:42 +0300 Subject: [PATCH 067/549] Added request-result pairs for GetPortfolioInfo. --- .../rpc/api/messages/GetPortfolioInfo.java | 51 +++++++++ ...GetPortfolioInfoRequestJsonSerializer.java | 22 ++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetPortfolioInfoJsonSerdeTest.java | 101 ++++++++++++++++++ .../json/getPortfolioInfo.request.json | 7 ++ .../json/getPortfolioInfo.result.json | 44 ++++++++ 6 files changed, 226 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java create mode 100644 src/test/resources/json/getPortfolioInfo.request.json create mode 100644 src/test/resources/json/getPortfolioInfo.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java new file mode 100644 index 0000000..5254b16 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetPortfolioInfo { + + @Value + public static class Request { + + @NonNull String firmId; + @NonNull String clientCode; + + @Builder + private Request(final String firmId, final String clientCode) { + this.firmId = firmId; + this.clientCode = clientCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firm_id", firmId) + .add("client_code", clientCode) + .toString(); + } + } + + @Value + public static class Result { + + PortfolioInfo portfolioInfo; + + @JsonCreator + public Result(final @JsonProperty(value = "portfolio_info", required = true) @NonNull PortfolioInfo portfolioInfo) { + this.portfolioInfo = portfolioInfo; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("portfolio_info", portfolioInfo) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java new file mode 100644 index 0000000..7b72ce4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetPortfolioInfoRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetPortfolioInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getPortfolioInfo"); + + gen.writeStringField("firm_id", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 3af8cfc..a943d38 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -41,6 +41,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetNumberOf.Request.class, new GetNumberOfRequestJsonSerializer()); super.addSerializer(GetNumCandles.Request.class, new GetNumCandlesRequestJsonSerializer()); super.addSerializer(GetOrderByNumber.Request.class, new GetOrderByNumberRequestJsonSerializer()); + super.addSerializer(GetPortfolioInfo.Request.class, new GetPortfolioInfoRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java new file mode 100644 index 0000000..407a60b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java @@ -0,0 +1,101 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetPortfolioInfoJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetPortfolioInfo.Request requestObj; + private static GetPortfolioInfo.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetPortfolioInfo.Request.builder() + .firmId("1") + .clientCode("2") + .build(); + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage("1") + .inAssets("2") + .leverage("3") + .openLimit("4") + .valShort("5") + .valLong("6") + .valLongMargin("7") + .valLongAsset("8") + .assets("9") + .curLeverage("10") + .margin("11") + .limAll("12") + .avLimAll("13") + .lockedBuy("14") + .lockedBuyMargin("15") + .lockedBuyAsset("16") + .lockedSell("17") + .lockedValueCoef("18") + .inAllAssets("19") + .allAssets("20") + .profitLoss("21") + .rateChange("22") + .limBuy("23") + .limSell("24") + .limNonMargin("25") + .limBuyAsset("26") + .valShortNet("27") + .valLongNet("28") + .totalMoneyBal("29") + .totalLockedMoney("30") + .haircuts("31") + .assetsWithoutHc("32") + .statusCoef("33") + .varMargin("34") + .goForPositions("35") + .goForOrders("36") + .rateFutures("37") + .isQualClient("38") + .isFutures("39") + .currTag("40") + .build(); + + resultObj = new GetPortfolioInfo.Result(portfolioInfo); + + requestJson = + Resources.toString(Resources.getResource("json/getPortfolioInfo.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getPortfolioInfo.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetPortfolioInfo.Result actualResultObj = sut.readValue(resultJson, GetPortfolioInfo.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getPortfolioInfo.request.json b/src/test/resources/json/getPortfolioInfo.request.json new file mode 100644 index 0000000..5b58c0a --- /dev/null +++ b/src/test/resources/json/getPortfolioInfo.request.json @@ -0,0 +1,7 @@ +{ + "method" : "getPortfolioInfo", + "args" : { + "firm_id" : "1", + "client_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfo.result.json b/src/test/resources/json/getPortfolioInfo.result.json new file mode 100644 index 0000000..66e44b5 --- /dev/null +++ b/src/test/resources/json/getPortfolioInfo.result.json @@ -0,0 +1,44 @@ +{ + "portfolio_info" : { + "is_leverage" : "1", + "in_assets" : "2", + "leverage" : "3", + "open_limit" : "4", + "val_short" : "5", + "val_long" : "6", + "val_long_margin" : "7", + "val_long_asset" : "8", + "assets" : "9", + "cur_leverage" : "10", + "margin" : "11", + "lim_all" : "12", + "av_lim_all" : "13", + "locked_buy" : "14", + "locked_buy_margin" : "15", + "locked_buy_asset" : "16", + "locked_sell" : "17", + "locked_value_coef" : "18", + "in_all_assets" : "19", + "all_assets" : "20", + "profit_loss" : "21", + "rate_change" : "22", + "lim_buy" : "23", + "lim_sell" : "24", + "lim_non_margin" : "25", + "lim_buy_asset" : "26", + "val_short_net" : "27", + "val_long_net" : "28", + "total_money_bal" : "29", + "total_locked_money" : "30", + "haircuts" : "31", + "assets_without_hc" : "32", + "status_coef" : "33", + "varmargin" : "34", + "go_for_positions" : "35", + "go_for_orders" : "36", + "rate_futures" : "37", + "is_qual_client" : "38", + "is_futures" : "39", + "curr_tag" : "40" + } +} \ No newline at end of file From 70984e47f60213d63ed6f1f63ab3939aa1ae5ffe Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 11:43:18 +0300 Subject: [PATCH 068/549] Added request-result pairs for GetPortfolioInfoEx. --- .../rpc/api/messages/GetPortfolioInfoEx.java | 224 ++++++++++++++++++ ...tPortfolioInfoExRequestJsonSerializer.java | 23 ++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetPortfolioInfoExJsonSerdeTest.java | 126 ++++++++++ .../json/getPortfolioInfoEx.request.json | 8 + .../json/getPortfolioInfoEx.result.json | 66 ++++++ 6 files changed, 448 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java create mode 100644 src/test/resources/json/getPortfolioInfoEx.request.json create mode 100644 src/test/resources/json/getPortfolioInfoEx.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java new file mode 100644 index 0000000..0ffabce --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java @@ -0,0 +1,224 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.*; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class GetPortfolioInfoEx { + + private GetPortfolioInfoEx() {} + + @Value + public static class Request { + + @NonNull String firmId; + @NonNull String clientCode; + int limitKind; + + @Builder + private Request(final String firmId, final String clientCode, final int limitKind) { + this.firmId = firmId; + this.clientCode = clientCode; + this.limitKind = limitKind; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("firm_id", firmId) + .add("client_code", clientCode) + .add("limit_kind", limitKind) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull PortfolioInfo portfolioInfo; + String initMargin; + String minMargin; + String correctedMargin; + String clientType; + String portfolioValue; + String startLimitOpenPos; + String totalLimitOpenPos; + String limitOpenPos; + String usedLimOpenPos; + String accVarMargin; + String clVarMargin; + String optLiquidCost; + String futAsset; + String futTotalAsset; + String futDebt; + String futRateAsset; + String futRateAssetOpen; + String futRateGo; + String planedRateGo; + String cashLeverage; + String futPositionType; + String futAccruedInt; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + @Builder + private Result(final @JsonProperty(value = "portfolio_info", required = true) PortfolioInfo portfolioInfo, + final @JsonProperty(value = "init_margin") String initMargin, + final @JsonProperty(value = "min_margin") String minMargin, + final @JsonProperty(value = "corrected_margin") String correctedMargin, + final @JsonProperty(value = "client_type") String clientType, + final @JsonProperty(value = "portfolio_value") String portfolioValue, + final @JsonProperty(value = "start_limit_open_pos") String startLimitOpenPos, + final @JsonProperty(value = "total_limit_open_pos") String totalLimitOpenPos, + final @JsonProperty(value = "limit_open_pos") String limitOpenPos, + final @JsonProperty(value = "used_lim_open_pos") String usedLimOpenPos, + final @JsonProperty(value = "acc_var_margin") String accVarMargin, + final @JsonProperty(value = "cl_var_margin") String clVarMargin, + final @JsonProperty(value = "opt_liquid_cost") String optLiquidCost, + final @JsonProperty(value = "fut_asset") String futAsset, + final @JsonProperty(value = "fut_total_asset") String futTotalAsset, + final @JsonProperty(value = "fut_debt") String futDebt, + final @JsonProperty(value = "fut_rate_asset") String futRateAsset, + final @JsonProperty(value = "fut_rate_asset_open") String futRateAssetOpen, + final @JsonProperty(value = "fut_rate_go") String futRateGo, + final @JsonProperty(value = "planed_rate_go") String planedRateGo, + final @JsonProperty(value = "cash_leverage") String cashLeverage, + final @JsonProperty(value = "fut_position_type") String futPositionType, + final @JsonProperty(value = "fut_accured_int") String futAccruedInt) { + + this.portfolioInfo = portfolioInfo; + this.initMargin = initMargin; + this.minMargin = minMargin; + this.correctedMargin = correctedMargin; + this.clientType = clientType; + this.portfolioValue = portfolioValue; + this.startLimitOpenPos = startLimitOpenPos; + this.totalLimitOpenPos = totalLimitOpenPos; + this.limitOpenPos = limitOpenPos; + this.usedLimOpenPos = usedLimOpenPos; + this.accVarMargin = accVarMargin; + this.clVarMargin = clVarMargin; + this.optLiquidCost = optLiquidCost; + this.futAsset = futAsset; + this.futTotalAsset = futTotalAsset; + this.futDebt = futDebt; + this.futRateAsset = futRateAsset; + this.futRateAssetOpen = futRateAssetOpen; + this.futRateGo = futRateGo; + this.planedRateGo = planedRateGo; + this.cashLeverage = cashLeverage; + this.futPositionType = futPositionType; + this.futAccruedInt = futAccruedInt; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(portfolioInfo, result.portfolioInfo) && + Objects.equals(initMargin, result.initMargin) && + Objects.equals(minMargin, result.minMargin) && + Objects.equals(correctedMargin, result.correctedMargin) && + Objects.equals(clientType, result.clientType) && + Objects.equals(portfolioValue, result.portfolioValue) && + Objects.equals(startLimitOpenPos, result.startLimitOpenPos) && + Objects.equals(totalLimitOpenPos, result.totalLimitOpenPos) && + Objects.equals(limitOpenPos, result.limitOpenPos) && + Objects.equals(usedLimOpenPos, result.usedLimOpenPos) && + Objects.equals(accVarMargin, result.accVarMargin) && + Objects.equals(clVarMargin, result.clVarMargin) && + Objects.equals(optLiquidCost, result.optLiquidCost) && + Objects.equals(futAsset, result.futAsset) && + Objects.equals(futTotalAsset, result.futTotalAsset) && + Objects.equals(futDebt, result.futDebt) && + Objects.equals(futRateAsset, result.futRateAsset) && + Objects.equals(futRateAssetOpen, result.futRateAssetOpen) && + Objects.equals(futRateGo, result.futRateGo) && + Objects.equals(planedRateGo, result.planedRateGo) && + Objects.equals(cashLeverage, result.cashLeverage) && + Objects.equals(futPositionType, result.futPositionType) && + Objects.equals(futAccruedInt, result.futAccruedInt); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + portfolioInfo, + initMargin, + minMargin, + correctedMargin, + clientType, + portfolioValue, + startLimitOpenPos, + totalLimitOpenPos, + limitOpenPos, + usedLimOpenPos, + accVarMargin, + clVarMargin, + optLiquidCost, + futAsset, + futTotalAsset, + futDebt, + futRateAsset, + futRateAssetOpen, + futRateGo, + planedRateGo, + cashLeverage, + futPositionType, + futAccruedInt + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("portfolio_info", portfolioInfo) + .add("init_margin", initMargin) + .add("min_margin", minMargin) + .add("corrected_margin", correctedMargin) + .add("client_type", clientType) + .add("portfolio_value", portfolioValue) + .add("start_limit_open_pos", startLimitOpenPos) + .add("total_limit_open_pos", totalLimitOpenPos) + .add("limit_open_pos", limitOpenPos) + .add("used_lim_open_pos", usedLimOpenPos) + .add("acc_var_margin", accVarMargin) + .add("cl_var_margin", clVarMargin) + .add("opt_liquid_cost", optLiquidCost) + .add("fut_asset", futAsset) + .add("fut_total_asset", futTotalAsset) + .add("fut_debt", futDebt) + .add("fut_rate_asset", futRateAsset) + .add("fut_rate_asset_open", futRateAssetOpen) + .add("fut_rate_go", futRateGo) + .add("planed_rate_go", planedRateGo) + .add("cash_leverage", cashLeverage) + .add("fut_position_type", futPositionType) + .add("fut_accured_int", futAccruedInt) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java new file mode 100644 index 0000000..7f534aa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetPortfolioInfoExRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetPortfolioInfoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getPortfolioInfoEx"); + + gen.writeStringField("firm_id", value.getFirmId()); + gen.writeStringField("client_code", value.getClientCode()); + gen.writeNumberField("limit_kind", value.getLimitKind()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index a943d38..3e42609 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -42,6 +42,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetNumCandles.Request.class, new GetNumCandlesRequestJsonSerializer()); super.addSerializer(GetOrderByNumber.Request.class, new GetOrderByNumberRequestJsonSerializer()); super.addSerializer(GetPortfolioInfo.Request.class, new GetPortfolioInfoRequestJsonSerializer()); + super.addSerializer(GetPortfolioInfoEx.Request.class, new GetPortfolioInfoExRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java new file mode 100644 index 0000000..d03c231 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java @@ -0,0 +1,126 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetPortfolioInfoExJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetPortfolioInfoEx.Request requestObj; + private static GetPortfolioInfoEx.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetPortfolioInfoEx.Request.builder() + .firmId("1") + .clientCode("2") + .limitKind(3) + .build(); + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage("1") + .inAssets("2") + .leverage("3") + .openLimit("4") + .valShort("5") + .valLong("6") + .valLongMargin("7") + .valLongAsset("8") + .assets("9") + .curLeverage("10") + .margin("11") + .limAll("12") + .avLimAll("13") + .lockedBuy("14") + .lockedBuyMargin("15") + .lockedBuyAsset("16") + .lockedSell("17") + .lockedValueCoef("18") + .inAllAssets("19") + .allAssets("20") + .profitLoss("21") + .rateChange("22") + .limBuy("23") + .limSell("24") + .limNonMargin("25") + .limBuyAsset("26") + .valShortNet("27") + .valLongNet("28") + .totalMoneyBal("29") + .totalLockedMoney("30") + .haircuts("31") + .assetsWithoutHc("32") + .statusCoef("33") + .varMargin("34") + .goForPositions("35") + .goForOrders("36") + .rateFutures("37") + .isQualClient("38") + .isFutures("39") + .currTag("40") + .build(); + + resultObj = GetPortfolioInfoEx.Result.builder() + .portfolioInfo(portfolioInfo) + .initMargin("2") + .minMargin("3") + .correctedMargin("4") + .clientType("5") + .portfolioValue("6") + .startLimitOpenPos("7") + .totalLimitOpenPos("8") + .limitOpenPos("9") + .usedLimOpenPos("10") + .accVarMargin("11") + .clVarMargin("12") + .optLiquidCost("13") + .futAsset("14") + .futTotalAsset("15") + .futDebt("16") + .futRateAsset("17") + .futRateAssetOpen("18") + .futRateGo("19") + .planedRateGo("20") + .cashLeverage("21") + .futPositionType("22") + .futAccruedInt("23") + .build(); + + requestJson = + Resources.toString(Resources.getResource("json/getPortfolioInfoEx.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getPortfolioInfoEx.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetPortfolioInfoEx.Result actualResultObj = sut.readValue(resultJson, GetPortfolioInfoEx.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getPortfolioInfoEx.request.json b/src/test/resources/json/getPortfolioInfoEx.request.json new file mode 100644 index 0000000..307116e --- /dev/null +++ b/src/test/resources/json/getPortfolioInfoEx.request.json @@ -0,0 +1,8 @@ +{ + "method" : "getPortfolioInfoEx", + "args" : { + "firm_id" : "1", + "client_code" : "2", + "limit_kind" : 3 + } +} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfoEx.result.json b/src/test/resources/json/getPortfolioInfoEx.result.json new file mode 100644 index 0000000..109251d --- /dev/null +++ b/src/test/resources/json/getPortfolioInfoEx.result.json @@ -0,0 +1,66 @@ +{ + "portfolio_info" : { + "is_leverage" : "1", + "in_assets" : "2", + "leverage" : "3", + "open_limit" : "4", + "val_short" : "5", + "val_long" : "6", + "val_long_margin" : "7", + "val_long_asset" : "8", + "assets" : "9", + "cur_leverage" : "10", + "margin" : "11", + "lim_all" : "12", + "av_lim_all" : "13", + "locked_buy" : "14", + "locked_buy_margin" : "15", + "locked_buy_asset" : "16", + "locked_sell" : "17", + "locked_value_coef" : "18", + "in_all_assets" : "19", + "all_assets" : "20", + "profit_loss" : "21", + "rate_change" : "22", + "lim_buy" : "23", + "lim_sell" : "24", + "lim_non_margin" : "25", + "lim_buy_asset" : "26", + "val_short_net" : "27", + "val_long_net" : "28", + "total_money_bal" : "29", + "total_locked_money" : "30", + "haircuts" : "31", + "assets_without_hc" : "32", + "status_coef" : "33", + "varmargin" : "34", + "go_for_positions" : "35", + "go_for_orders" : "36", + "rate_futures" : "37", + "is_qual_client" : "38", + "is_futures" : "39", + "curr_tag" : "40" + }, + "init_margin" : "2", + "min_margin" : "3", + "corrected_margin" : "4", + "client_type" : "5", + "portfolio_value" : "6", + "start_limit_open_pos" : "7", + "total_limit_open_pos" : "8", + "limit_open_pos" : "9", + "used_lim_open_pos" : "10", + "acc_var_margin" : "11", + "cl_var_margin" : "12", + "opt_liquid_cost" : "13", + "fut_asset" : "14", + "fut_total_asset" : "15", + "fut_debt" : "16", + "fut_rate_asset" : "17", + "fut_rate_asset_open" : "18", + "fut_rate_go" : "19", + "planed_rate_go" : "20", + "cash_leverage" : "21", + "fut_position_type" : "22", + "fut_accured_int" : "23" +} \ No newline at end of file From 074c3074d49f3ebb7ef4d0c6fd16124b391bd6ae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 11:43:41 +0300 Subject: [PATCH 069/549] Removed unnecessary new line. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java index c0093c8..d4b33bd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java @@ -50,7 +50,6 @@ public String toString() { @Value public static class Result { - MoneyLimit moneyEx; @JsonCreator From a51517ed8954f1869cc4c1351a9bfdc7670661e6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 12:13:54 +0300 Subject: [PATCH 070/549] Added request-result pairs for GetQuoteLevel2. --- .../lua/rpc/api/messages/GetQuoteLevel2.java | 159 ++++++++++++++++++ .../GetQuoteLevel2RequestJsonSerializer.java | 22 +++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetQuoteLevel2JsonSerdeTest.java | 78 +++++++++ .../json/getQuoteLevel2.request.json | 7 + .../resources/json/getQuoteLevel2.result.json | 28 +++ 6 files changed, 295 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java create mode 100644 src/test/resources/json/getQuoteLevel2.request.json create mode 100644 src/test/resources/json/getQuoteLevel2.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java new file mode 100644 index 0000000..4bb3adf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java @@ -0,0 +1,159 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import lombok.*; +import lombok.experimental.NonFinal; + +import java.util.List; +import java.util.Objects; + +public final class GetQuoteLevel2 { + + @Value + public static class QuoteEntry { + + @NonNull String price; + @NonNull String quantity; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @Builder + @JsonCreator + private QuoteEntry( + final @JsonProperty(value = "price", required = true) String price, + final @JsonProperty(value = "quantity", required = true) String quantity) { + + this.price = price; + this.quantity = quantity; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof QuoteEntry) ) { + return false; + } else { + final QuoteEntry that = (QuoteEntry) o; + return Objects.equals(price, that.price) && + Objects.equals(quantity, that.quantity); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(price, quantity); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("price", price) + .add("quantity", quantity) + .toString(); + } + + return asString; + } + } + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + + @Builder + private Request(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull String bidCount; + @NonNull String offerCount; + @NonNull List bids; + @NonNull List offers; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @Builder + @JsonCreator + private Result( + final @JsonProperty(value = "bid_count", required = true) String bidCount, + final @JsonProperty(value = "offer_count", required = true) String offerCount, + final @JsonProperty(value = "bids", required = true) Iterable bids, + final @JsonProperty(value = "offers", required = true) Iterable offers) { + + this.bidCount = bidCount; + this.offerCount = offerCount; + this.bids = ImmutableList.copyOf(bids); + this.offers = ImmutableList.copyOf(offers); + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(bidCount, result.bidCount) && + Objects.equals(offerCount, result.offerCount) && + Objects.equals(bids, result.bids) && + Objects.equals(offers, result.offers); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(bidCount, offerCount, bids, offers); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("bid_count", bidCount) + .add("offer_count", offerCount) + .add("bids", bids) + .add("offers", offers) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java new file mode 100644 index 0000000..17bd680 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java @@ -0,0 +1,22 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetQuoteLevel2RequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetQuoteLevel2.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getQuoteLevel2"); + + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 3e42609..091541e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -43,6 +43,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetOrderByNumber.Request.class, new GetOrderByNumberRequestJsonSerializer()); super.addSerializer(GetPortfolioInfo.Request.class, new GetPortfolioInfoRequestJsonSerializer()); super.addSerializer(GetPortfolioInfoEx.Request.class, new GetPortfolioInfoExRequestJsonSerializer()); + super.addSerializer(GetQuoteLevel2.Request.class, new GetQuoteLevel2RequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java new file mode 100644 index 0000000..cd79c34 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2.QuoteEntry; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableList; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class GetQuoteLevel2JsonSerdeTest { + + private static ObjectMapper sut; + + private static GetQuoteLevel2.Request requestObj; + private static GetQuoteLevel2.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetQuoteLevel2.Request.builder() + .classCode("1") + .secCode("2") + .build(); + + final List bids = + ImmutableList.of( + QuoteEntry.builder().price("100").quantity("42").build(), + QuoteEntry.builder().price("200").quantity("20").build(), + QuoteEntry.builder().price("300").quantity("1").build() + ); + + final List offers = + ImmutableList.of( + QuoteEntry.builder().price("350").quantity("25").build(), + QuoteEntry.builder().price("999").quantity("5000").build() + ); + + resultObj = GetQuoteLevel2.Result.builder() + .bidCount("3") + .offerCount("2") + .bids(bids) + .offers(offers) + .build(); + + requestJson = + Resources.toString(Resources.getResource("json/getQuoteLevel2.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getQuoteLevel2.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetQuoteLevel2.Result actualResultObj = sut.readValue(resultJson, GetQuoteLevel2.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getQuoteLevel2.request.json b/src/test/resources/json/getQuoteLevel2.request.json new file mode 100644 index 0000000..cbc080d --- /dev/null +++ b/src/test/resources/json/getQuoteLevel2.request.json @@ -0,0 +1,7 @@ +{ + "method" : "getQuoteLevel2", + "args" : { + "class_code" : "1", + "sec_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getQuoteLevel2.result.json b/src/test/resources/json/getQuoteLevel2.result.json new file mode 100644 index 0000000..06bc3c0 --- /dev/null +++ b/src/test/resources/json/getQuoteLevel2.result.json @@ -0,0 +1,28 @@ +{ + "bid_count" : "3", + "offer_count" : "2", + "bids" : [ + { + "price" : "100", + "quantity" : "42" + }, + { + "price" : "200", + "quantity" : "20" + }, + { + "price" : "300", + "quantity" : "1" + } + ], + "offers" : [ + { + "price" : "350", + "quantity" : "25" + }, + { + "price" : "999", + "quantity" : "5000" + } + ] +} \ No newline at end of file From b0f106573414f13f78761d6bdf1c56b3e881917a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 12:27:06 +0300 Subject: [PATCH 071/549] Make the default constructor of GetQuoteLevel2 hidden. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java index 4bb3adf..d932da2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java @@ -12,6 +12,8 @@ public final class GetQuoteLevel2 { + private GetQuoteLevel2() {} + @Value public static class QuoteEntry { From 86406ba377ceb377405716368c67746498ef9e85 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 12:27:39 +0300 Subject: [PATCH 072/549] Added request-result pairs for GetScriptPath. --- .../lua/rpc/api/messages/GetScriptPath.java | 30 +++++++++++ .../GetScriptPathRequestJsonSerializer.java | 18 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetScriptPathJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/getScriptPath.request.json | 4 ++ .../resources/json/getScriptPath.result.json | 3 ++ 6 files changed, 110 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java create mode 100644 src/test/resources/json/getScriptPath.request.json create mode 100644 src/test/resources/json/getScriptPath.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java new file mode 100644 index 0000000..3705850 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetScriptPath { + + private GetScriptPath() {} + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + @NonNull String scriptPath; + + public Result(final @JsonProperty(value = "script_path", required = true) String scriptPath) { + this.scriptPath = scriptPath; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("script_path", scriptPath) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java new file mode 100644 index 0000000..c297fba --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetScriptPathRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetScriptPath.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getScriptPath"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 091541e..5d6dfe2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -44,6 +44,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetPortfolioInfo.Request.class, new GetPortfolioInfoRequestJsonSerializer()); super.addSerializer(GetPortfolioInfoEx.Request.class, new GetPortfolioInfoExRequestJsonSerializer()); super.addSerializer(GetQuoteLevel2.Request.class, new GetQuoteLevel2RequestJsonSerializer()); + super.addSerializer(GetScriptPath.Request.class, new GetScriptPathRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java new file mode 100644 index 0000000..2c3a9a1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetScriptPathJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetScriptPath.Request requestObj; + private static GetScriptPath.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetScriptPath.Request.INSTANCE; + + resultObj = new GetScriptPath.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/getScriptPath.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getScriptPath.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetScriptPath.Result actualResultObj = sut.readValue(resultJson, GetScriptPath.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getScriptPath.request.json b/src/test/resources/json/getScriptPath.request.json new file mode 100644 index 0000000..0a240cb --- /dev/null +++ b/src/test/resources/json/getScriptPath.request.json @@ -0,0 +1,4 @@ +{ + "method" : "getScriptPath", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/getScriptPath.result.json b/src/test/resources/json/getScriptPath.result.json new file mode 100644 index 0000000..c878c6b --- /dev/null +++ b/src/test/resources/json/getScriptPath.result.json @@ -0,0 +1,3 @@ +{ + "script_path" : "1" +} \ No newline at end of file From c6a6e81c8fd1ebca73c07e2aaee564e1d16ecd18 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 18:10:14 +0300 Subject: [PATCH 073/549] Added request-result pairs for GetSecurityInfo. --- .../lua/rpc/api/messages/GetSecurityInfo.java | 51 +++++++ .../quik/lua/rpc/api/structures/Security.java | 132 ++++++++++++++++++ .../GetSecurityInfoRequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetSecurityInfoJsonSerdeTest.java | 73 ++++++++++ .../json/getSecurityInfo.request.json | 7 + .../json/getSecurityInfo.result.json | 16 +++ 7 files changed, 300 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java create mode 100644 src/test/resources/json/getSecurityInfo.request.json create mode 100644 src/test/resources/json/getSecurityInfo.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java new file mode 100644 index 0000000..b77d7a4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetSecurityInfo { + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + + @Builder + private Request(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull Security securityInfo; + + @JsonCreator + public Result(final @JsonProperty(value = "security_info", required = true) Security securityInfo) { + this.securityInfo = securityInfo; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("security_info", securityInfo) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java new file mode 100644 index 0000000..8dce22f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java @@ -0,0 +1,132 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +@Value +public class Security { + + String code; + String name; + String shortName; + String classCode; + String className; + String faceValue; + String faceUnit; + String scale; + String matDate; + String lotSize; + String isinCode; + String minPriceStep; + + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + + @Builder + @JsonCreator + private Security( + final @JsonProperty("code") String code, + final @JsonProperty("name") String name, + final @JsonProperty("short_name") String shortName, + final @JsonProperty("class_code") String classCode, + final @JsonProperty("class_name") String className, + final @JsonProperty("face_value") String faceValue, + final @JsonProperty("face_unit") String faceUnit, + final @JsonProperty("scale") String scale, + final @JsonProperty("mat_date") String matDate, + final @JsonProperty("lot_size") String lotSize, + final @JsonProperty("isin_code") String isinCode, + final @JsonProperty("min_price_step") String minPriceStep) { + + this.code = code; + this.name = name; + this.shortName = shortName; + this.classCode = classCode; + this.className = className; + this.faceValue = faceValue; + this.faceUnit = faceUnit; + this.scale = scale; + this.matDate = matDate; + this.lotSize = lotSize; + this.isinCode = isinCode; + this.minPriceStep = minPriceStep; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Security) ) { + return false; + } else { + final Security security = (Security) o; + return Objects.equals(code, security.code) && + Objects.equals(name, security.name) && + Objects.equals(shortName, security.shortName) && + Objects.equals(classCode, security.classCode) && + Objects.equals(className, security.className) && + Objects.equals(faceValue, security.faceValue) && + Objects.equals(faceUnit, security.faceUnit) && + Objects.equals(scale, security.scale) && + Objects.equals(matDate, security.matDate) && + Objects.equals(lotSize, security.lotSize) && + Objects.equals(isinCode, security.isinCode) && + Objects.equals(minPriceStep, security.minPriceStep); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash( + code, + name, + shortName, + classCode, + className, + faceValue, + faceUnit, + scale, + matDate, + lotSize, + isinCode, + minPriceStep + ); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("code", code) + .add("name", name) + .add("short_name", shortName) + .add("class_code", classCode) + .add("class_name", className) + .add("face_value", faceValue) + .add("face_unit", faceUnit) + .add("scale", scale) + .add("mat_date", matDate) + .add("lot_size", lotSize) + .add("isin_code", isinCode) + .add("min_price_step", minPriceStep) + .toString(); + } + + return asString; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java new file mode 100644 index 0000000..879164e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetSecurityInfoRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetSecurityInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getSecurityInfo"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 5d6dfe2..e164547 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -45,6 +45,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetPortfolioInfoEx.Request.class, new GetPortfolioInfoExRequestJsonSerializer()); super.addSerializer(GetQuoteLevel2.Request.class, new GetQuoteLevel2RequestJsonSerializer()); super.addSerializer(GetScriptPath.Request.class, new GetScriptPathRequestJsonSerializer()); + super.addSerializer(GetSecurityInfo.Request.class, new GetSecurityInfoRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java new file mode 100644 index 0000000..53153c9 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetSecurityInfoJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetSecurityInfo.Request requestObj; + private static GetSecurityInfo.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetSecurityInfo.Request.builder() + .classCode("1") + .secCode("2") + .build(); + + final Security securityInfo = Security.builder() + .code("1") + .name("2") + .shortName("3") + .classCode("4") + .className("5") + .faceValue("6") + .faceUnit("7") + .scale("8") + .matDate("9") + .lotSize("10") + .isinCode("11") + .minPriceStep("12") + .build(); + + resultObj = new GetSecurityInfo.Result(securityInfo); + + requestJson = + Resources.toString(Resources.getResource("json/getSecurityInfo.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getSecurityInfo.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetSecurityInfo.Result actualResultObj = sut.readValue(resultJson, GetSecurityInfo.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getSecurityInfo.request.json b/src/test/resources/json/getSecurityInfo.request.json new file mode 100644 index 0000000..d79ec5d --- /dev/null +++ b/src/test/resources/json/getSecurityInfo.request.json @@ -0,0 +1,7 @@ +{ + "method" : "getSecurityInfo", + "args" : { + "class_code" : "1", + "sec_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getSecurityInfo.result.json b/src/test/resources/json/getSecurityInfo.result.json new file mode 100644 index 0000000..85101e9 --- /dev/null +++ b/src/test/resources/json/getSecurityInfo.result.json @@ -0,0 +1,16 @@ +{ + "security_info" : { + "code" : "1", + "name" : "2", + "short_name" : "3", + "class_code" : "4", + "class_name" : "5", + "face_value" : "6", + "face_unit" : "7", + "scale" : "8", + "mat_date" : "9", + "lot_size" : "10", + "isin_code" : "11", + "min_price_step" : "12" + } +} \ No newline at end of file From cab534e71dba5ef844f6ec26aee6a360040e905c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 19:31:26 +0300 Subject: [PATCH 074/549] Make the default constructor of GetSecurityInfo hidden. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java index b77d7a4..f6829d1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java @@ -10,6 +10,8 @@ public final class GetSecurityInfo { + private GetSecurityInfo() {} + @Value public static class Request { From e73ab25281e5e8bb941cc0fcc1f934dd25d56e43 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 19:31:52 +0300 Subject: [PATCH 075/549] Added request-result pairs for GetTableSize. --- .../lua/rpc/api/messages/GetTableSize.java | 45 +++++++++++++++ .../GetTableSizeRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetTableSizeJsonSerdeTest.java | 57 +++++++++++++++++++ .../resources/json/GetTableSize.request.json | 6 ++ .../resources/json/GetTableSize.result.json | 4 ++ 6 files changed, 132 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java create mode 100644 src/test/resources/json/GetTableSize.request.json create mode 100644 src/test/resources/json/GetTableSize.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java new file mode 100644 index 0000000..f4ed81f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class GetTableSize { + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + int rows; + int col; + + @Builder + @JsonCreator + private Result(final @JsonProperty("rows") int rows, final @JsonProperty("col") int col) { + this.rows = rows; + this.col = col; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("rows", rows) + .add("col", col) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java new file mode 100644 index 0000000..8b626e8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetTableSizeRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetTableSize.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetTableSize"); + gen.writeNumberField("t_id", value.getTId()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index e164547..da4b660 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -46,6 +46,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetQuoteLevel2.Request.class, new GetQuoteLevel2RequestJsonSerializer()); super.addSerializer(GetScriptPath.Request.class, new GetScriptPathRequestJsonSerializer()); super.addSerializer(GetSecurityInfo.Request.class, new GetSecurityInfoRequestJsonSerializer()); + super.addSerializer(GetTableSize.Request.class, new GetTableSizeRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java new file mode 100644 index 0000000..3341d3f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetTableSizeJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetTableSize.Request requestObj; + private static GetTableSize.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetTableSize.Request(1); + + resultObj = GetTableSize.Result.builder() + .rows(1) + .col(2) + .build(); + + requestJson = + Resources.toString(Resources.getResource("json/GetTableSize.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/GetTableSize.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetTableSize.Result actualResultObj = sut.readValue(resultJson, GetTableSize.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/GetTableSize.request.json b/src/test/resources/json/GetTableSize.request.json new file mode 100644 index 0000000..fbfc684 --- /dev/null +++ b/src/test/resources/json/GetTableSize.request.json @@ -0,0 +1,6 @@ +{ + "method" : "GetTableSize", + "args" : { + "t_id" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/GetTableSize.result.json b/src/test/resources/json/GetTableSize.result.json new file mode 100644 index 0000000..d2dfba9 --- /dev/null +++ b/src/test/resources/json/GetTableSize.result.json @@ -0,0 +1,4 @@ +{ + "rows" : 1, + "col" : 2 +} \ No newline at end of file From 8725e01b58393d442c575db7a2fed930a61742c6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 19:45:32 +0300 Subject: [PATCH 076/549] Make the default constructor of GetTableSize hidden. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java index f4ed81f..9fbeb9c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -8,6 +8,8 @@ public final class GetTableSize { + private GetTableSize() {} + @Value public static class Request { From a53c47dca0871bde2eca38b853d6db0cfd558f71 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 19:45:54 +0300 Subject: [PATCH 077/549] Added request-result pairs for GetTradeDate. --- .../lua/rpc/api/messages/GetTradeDate.java | 101 ++++++++++++++++++ .../GetTradeDateRequestJsonSerializer.java | 18 ++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetTradeDateJsonSerdeTest.java | 61 +++++++++++ .../resources/json/getTradeDate.request.json | 4 + .../resources/json/getTradeDate.result.json | 8 ++ 6 files changed, 193 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java create mode 100644 src/test/resources/json/getTradeDate.request.json create mode 100644 src/test/resources/json/getTradeDate.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java new file mode 100644 index 0000000..c501c6b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java @@ -0,0 +1,101 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.*; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class GetTradeDate { + + private GetTradeDate() {} + + @Value + public static class TradeDate { + + @NonNull String date; + int year; + int month; + int day; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @Builder + @JsonCreator + private TradeDate( + final @JsonProperty(value = "date", required = true) String date, + final @JsonProperty(value = "year", required = true) int year, + final @JsonProperty(value = "month", required = true) int month, + final @JsonProperty(value = "day", required = true) int day) { + + this.date = date; + this.year = year; + this.month = month; + this.day = day; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof TradeDate) ) { + return false; + } else { + final TradeDate tradeDate = (TradeDate) o; + return year == tradeDate.year && + month == tradeDate.month && + day == tradeDate.day && + Objects.equals(date, tradeDate.date); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(date, year, month, day); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("date", date) + .add("year", year) + .add("month", month) + .add("day", day) + .toString(); + } + + return asString; + } + } + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + @NonNull TradeDate tradeDate; + + @JsonCreator + public Result(final @JsonProperty(value = "trade_date", required = true) TradeDate tradeDate) { + this.tradeDate = tradeDate; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("trade_date", tradeDate) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java new file mode 100644 index 0000000..de3091a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetTradeDateRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetTradeDate.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getTradeDate"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index da4b660..655db07 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -47,6 +47,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetScriptPath.Request.class, new GetScriptPathRequestJsonSerializer()); super.addSerializer(GetSecurityInfo.Request.class, new GetSecurityInfoRequestJsonSerializer()); super.addSerializer(GetTableSize.Request.class, new GetTableSizeRequestJsonSerializer()); + super.addSerializer(GetTradeDate.Request.class, new GetTradeDateRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java new file mode 100644 index 0000000..0ccf99b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetTradeDateJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetTradeDate.Request requestObj; + private static GetTradeDate.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetTradeDate.Request.INSTANCE; + + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date("1") + .year(2) + .month(3) + .day(4) + .build(); + + resultObj = new GetTradeDate.Result(tradeDate); + + requestJson = + Resources.toString(Resources.getResource("json/getTradeDate.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getTradeDate.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetTradeDate.Result actualResultObj = sut.readValue(resultJson, GetTradeDate.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getTradeDate.request.json b/src/test/resources/json/getTradeDate.request.json new file mode 100644 index 0000000..22c8b4a --- /dev/null +++ b/src/test/resources/json/getTradeDate.request.json @@ -0,0 +1,4 @@ +{ + "method" : "getTradeDate", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/getTradeDate.result.json b/src/test/resources/json/getTradeDate.result.json new file mode 100644 index 0000000..048f3f0 --- /dev/null +++ b/src/test/resources/json/getTradeDate.result.json @@ -0,0 +1,8 @@ +{ + "trade_date" : { + "date" : "1", + "year" : 2, + "month" : 3, + "day" : 4 + } +} \ No newline at end of file From 361c2958f9e22bf6abcbcf670f3b563fbbc3147b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 20:20:17 +0300 Subject: [PATCH 078/549] Added request-result pairs for GetWindowCaption. --- .../rpc/api/messages/GetWindowCaption.java | 42 +++++++++++++++ ...GetWindowCaptionRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetWindowCaptionJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/GetWindowCaption.request.json | 6 +++ .../json/GetWindowCaption.result.json | 3 ++ 6 files changed, 125 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java create mode 100644 src/test/resources/json/GetWindowCaption.request.json create mode 100644 src/test/resources/json/GetWindowCaption.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java new file mode 100644 index 0000000..3589a3a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class GetWindowCaption { + + private GetWindowCaption() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + String caption; + + @JsonCreator + public Result(final @JsonProperty("caption") String caption) { + this.caption = caption; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("caption", caption) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java new file mode 100644 index 0000000..639c74a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetWindowCaptionRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetWindowCaption.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetWindowCaption"); + gen.writeNumberField("t_id", value.getTId()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 655db07..09c7048 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -48,6 +48,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetSecurityInfo.Request.class, new GetSecurityInfoRequestJsonSerializer()); super.addSerializer(GetTableSize.Request.class, new GetTableSizeRequestJsonSerializer()); super.addSerializer(GetTradeDate.Request.class, new GetTradeDateRequestJsonSerializer()); + super.addSerializer(GetWindowCaption.Request.class, new GetWindowCaptionRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java new file mode 100644 index 0000000..ba00429 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetWindowCaptionJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetWindowCaption.Request requestObj; + private static GetWindowCaption.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetWindowCaption.Request(1); + + resultObj = new GetWindowCaption.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/GetWindowCaption.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/GetWindowCaption.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetWindowCaption.Result actualResultObj = sut.readValue(resultJson, GetWindowCaption.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/GetWindowCaption.request.json b/src/test/resources/json/GetWindowCaption.request.json new file mode 100644 index 0000000..0584b61 --- /dev/null +++ b/src/test/resources/json/GetWindowCaption.request.json @@ -0,0 +1,6 @@ +{ + "method" : "GetWindowCaption", + "args" : { + "t_id" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowCaption.result.json b/src/test/resources/json/GetWindowCaption.result.json new file mode 100644 index 0000000..032390e --- /dev/null +++ b/src/test/resources/json/GetWindowCaption.result.json @@ -0,0 +1,3 @@ +{ + "caption" : "1" +} \ No newline at end of file From 46fd619227d19d4f4be17fa73cf58ddced99f53b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 20:26:59 +0300 Subject: [PATCH 079/549] Added request-result pairs for GetWindowRect. --- .../lua/rpc/api/messages/GetWindowRect.java | 58 ++++++++++++++++++ .../GetWindowRectRequestJsonSerializer.java | 19 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetWindowRectJsonSerdeTest.java | 59 +++++++++++++++++++ .../resources/json/GetWindowRect.request.json | 6 ++ .../resources/json/GetWindowRect.result.json | 6 ++ 6 files changed, 149 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java create mode 100644 src/test/resources/json/GetWindowRect.request.json create mode 100644 src/test/resources/json/GetWindowRect.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java new file mode 100644 index 0000000..163bd28 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class GetWindowRect { + + private GetWindowRect() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + int top; + int left; + int bottom; + int right; + + @Builder + @JsonCreator + private Result( + final @JsonProperty(value = "top", required = true) int top, + final @JsonProperty(value = "left", required = true) int left, + final @JsonProperty(value = "bottom", required = true) int bottom, + final @JsonProperty(value = "right", required = true) int right) { + + this.top = top; + this.left = left; + this.bottom = bottom; + this.right = right; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("top", top) + .add("left", left) + .add("bottom", bottom) + .add("right", right) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java new file mode 100644 index 0000000..901e0cf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetWindowRectRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetWindowRect.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetWindowRect"); + gen.writeNumberField("t_id", value.getTId()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 09c7048..b7aed3f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -49,6 +49,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetTableSize.Request.class, new GetTableSizeRequestJsonSerializer()); super.addSerializer(GetTradeDate.Request.class, new GetTradeDateRequestJsonSerializer()); super.addSerializer(GetWindowCaption.Request.class, new GetWindowCaptionRequestJsonSerializer()); + super.addSerializer(GetWindowRect.Request.class, new GetWindowRectRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java new file mode 100644 index 0000000..a0f92b8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetWindowRectJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetWindowRect.Request requestObj; + private static GetWindowRect.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetWindowRect.Request(1); + + resultObj = GetWindowRect.Result.builder() + .top(1) + .left(2) + .bottom(3) + .right(4) + .build(); + + requestJson = + Resources.toString(Resources.getResource("json/GetWindowRect.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/GetWindowRect.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetWindowRect.Result actualResultObj = sut.readValue(resultJson, GetWindowRect.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/GetWindowRect.request.json b/src/test/resources/json/GetWindowRect.request.json new file mode 100644 index 0000000..27fd011 --- /dev/null +++ b/src/test/resources/json/GetWindowRect.request.json @@ -0,0 +1,6 @@ +{ + "method" : "GetWindowRect", + "args" : { + "t_id" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowRect.result.json b/src/test/resources/json/GetWindowRect.result.json new file mode 100644 index 0000000..85becef --- /dev/null +++ b/src/test/resources/json/GetWindowRect.result.json @@ -0,0 +1,6 @@ +{ + "top" : 1, + "left" : 2, + "bottom" : 3, + "right" : 4 +} \ No newline at end of file From 7845125898d61a559f4a4155a2a98b38f8ca8bcb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 20:32:13 +0300 Subject: [PATCH 080/549] Added request-result pairs for GetWorkingFolder. --- .../rpc/api/messages/GetWorkingFolder.java | 30 +++++++++++ ...GetWorkingFolderRequestJsonSerializer.java | 18 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../GetWorkingFolderJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/getWorkingFolder.request.json | 4 ++ .../json/getWorkingFolder.result.json | 3 ++ 6 files changed, 110 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java create mode 100644 src/test/resources/json/getWorkingFolder.request.json create mode 100644 src/test/resources/json/getWorkingFolder.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java new file mode 100644 index 0000000..2043a7f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class GetWorkingFolder { + + private GetWorkingFolder() {} + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + @NonNull String workingFolder; + + public Result(final @JsonProperty(value = "working_folder", required = true) String workingFolder) { + this.workingFolder = workingFolder; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("working_folder", workingFolder) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java new file mode 100644 index 0000000..2600a0a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class GetWorkingFolderRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetWorkingFolder.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getWorkingFolder"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index b7aed3f..a78d259 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -50,6 +50,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetTradeDate.Request.class, new GetTradeDateRequestJsonSerializer()); super.addSerializer(GetWindowCaption.Request.class, new GetWindowCaptionRequestJsonSerializer()); super.addSerializer(GetWindowRect.Request.class, new GetWindowRectRequestJsonSerializer()); + super.addSerializer(GetWorkingFolder.Request.class, new GetWorkingFolderRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java new file mode 100644 index 0000000..c5f0499 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetWorkingFolderJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetWorkingFolder.Request requestObj; + private static GetWorkingFolder.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetWorkingFolder.Request.INSTANCE; + + resultObj = new GetWorkingFolder.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/getWorkingFolder.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getWorkingFolder.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetWorkingFolder.Result actualResultObj = sut.readValue(resultJson, GetWorkingFolder.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getWorkingFolder.request.json b/src/test/resources/json/getWorkingFolder.request.json new file mode 100644 index 0000000..0af8913 --- /dev/null +++ b/src/test/resources/json/getWorkingFolder.request.json @@ -0,0 +1,4 @@ +{ + "method" : "getWorkingFolder", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/getWorkingFolder.result.json b/src/test/resources/json/getWorkingFolder.result.json new file mode 100644 index 0000000..6514703 --- /dev/null +++ b/src/test/resources/json/getWorkingFolder.result.json @@ -0,0 +1,3 @@ +{ + "working_folder" : "1" +} \ No newline at end of file From 2ed813736c138905e59e3e3495048d45a95c9655 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 21:19:23 +0300 Subject: [PATCH 081/549] Added request-result pairs for Highlight. --- .../quik/lua/rpc/api/messages/Highlight.java | 70 +++++++++++++++++++ .../HighlightRequestJsonSerializer.java | 24 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../api/messages/HighlightJsonSerdeTest.java | 61 ++++++++++++++++ .../resources/json/Highlight.request.json | 11 +++ src/test/resources/json/Highlight.result.json | 3 + 6 files changed, 170 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java create mode 100644 src/test/resources/json/Highlight.request.json create mode 100644 src/test/resources/json/Highlight.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java new file mode 100644 index 0000000..4ee27e7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class Highlight { + + private Highlight() {} + + @Value + public static class Request { + + int tId; + int row; + int col; + int bColor; + int fColor; + int timeout; + + @Builder + private Request( + final int tId, + final int row, + final int col, + final int bColor, + final int fColor, + final int timeout) { + + this.tId = tId; + this.row = row; + this.col = col; + this.bColor = bColor; + this.fColor = fColor; + this.timeout = timeout; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("row", row) + .add("col", col) + .add("b_color", bColor) + .add("f_color", fColor) + .add("timeout", timeout) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java new file mode 100644 index 0000000..a6649c4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class HighlightRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Highlight.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Highlight"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("row", value.getRow()); + gen.writeNumberField("col", value.getCol()); + gen.writeNumberField("b_color", value.getBColor()); + gen.writeNumberField("f_color", value.getFColor()); + gen.writeNumberField("timeout", value.getTimeout()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index a78d259..ff544b4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -51,6 +51,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetWindowCaption.Request.class, new GetWindowCaptionRequestJsonSerializer()); super.addSerializer(GetWindowRect.Request.class, new GetWindowRectRequestJsonSerializer()); super.addSerializer(GetWorkingFolder.Request.class, new GetWorkingFolderRequestJsonSerializer()); + super.addSerializer(Highlight.Request.class, new HighlightRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java new file mode 100644 index 0000000..100614c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class HighlightJsonSerdeTest { + + private static ObjectMapper sut; + + private static Highlight.Request requestObj; + private static Highlight.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = Highlight.Request.builder() + .tId(1) + .row(2) + .col(3) + .bColor(4) + .fColor(5) + .timeout(6) + .build(); + + resultObj = new Highlight.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/Highlight.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/Highlight.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Highlight.Result actualResultObj = sut.readValue(resultJson, Highlight.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/Highlight.request.json b/src/test/resources/json/Highlight.request.json new file mode 100644 index 0000000..ddbf3a0 --- /dev/null +++ b/src/test/resources/json/Highlight.request.json @@ -0,0 +1,11 @@ +{ + "method" : "Highlight", + "args" : { + "t_id" : 1, + "row" : 2, + "col" : 3, + "b_color" : 4, + "f_color" : 5, + "timeout" : 6 + } +} \ No newline at end of file diff --git a/src/test/resources/json/Highlight.result.json b/src/test/resources/json/Highlight.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/Highlight.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From f8803706a97b7cd6316ba6660e5e4e32b760f15a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 21:30:49 +0300 Subject: [PATCH 082/549] Added request-result pairs for InsertRow. --- .../quik/lua/rpc/api/messages/InsertRow.java | 52 +++++++++++++++++ .../InsertRowRequestJsonSerializer.java | 20 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../api/messages/InsertRowJsonSerdeTest.java | 57 +++++++++++++++++++ .../resources/json/InsertRow.request.json | 7 +++ src/test/resources/json/InsertRow.result.json | 3 + 6 files changed, 140 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java create mode 100644 src/test/resources/json/InsertRow.request.json create mode 100644 src/test/resources/json/InsertRow.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java new file mode 100644 index 0000000..7ab9579 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class InsertRow { + + private InsertRow() {} + + @Value + public static class Request { + + int tId; + int key; + + @Builder + private Request(final int tId, final int key) { + + this.tId = tId; + this.key = key; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("key", key) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java new file mode 100644 index 0000000..ca53653 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class InsertRowRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final InsertRow.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "InsertRow"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("key", value.getKey()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index ff544b4..6429309 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -52,6 +52,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetWindowRect.Request.class, new GetWindowRectRequestJsonSerializer()); super.addSerializer(GetWorkingFolder.Request.class, new GetWorkingFolderRequestJsonSerializer()); super.addSerializer(Highlight.Request.class, new HighlightRequestJsonSerializer()); + super.addSerializer(InsertRow.Request.class, new InsertRowRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java new file mode 100644 index 0000000..30dd258 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class InsertRowJsonSerdeTest { + + private static ObjectMapper sut; + + private static InsertRow.Request requestObj; + private static InsertRow.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = InsertRow.Request.builder() + .tId(1) + .key(2) + .build(); + + resultObj = new InsertRow.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/InsertRow.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/InsertRow.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final InsertRow.Result actualResultObj = sut.readValue(resultJson, InsertRow.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/InsertRow.request.json b/src/test/resources/json/InsertRow.request.json new file mode 100644 index 0000000..553a595 --- /dev/null +++ b/src/test/resources/json/InsertRow.request.json @@ -0,0 +1,7 @@ +{ + "method" : "InsertRow", + "args" : { + "t_id" : 1, + "key" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/InsertRow.result.json b/src/test/resources/json/InsertRow.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/InsertRow.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From a3c269fad98cb53ac0546edfc4484a9b8bebe355 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 21:36:03 +0300 Subject: [PATCH 083/549] Added request-result pairs for IsConnected. --- .../lua/rpc/api/messages/IsConnected.java | 31 +++++++++++ .../IsConnectedRequestJsonSerializer.java | 18 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/IsConnectedJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/isConnected.request.json | 4 ++ .../resources/json/isConnected.result.json | 3 ++ 6 files changed, 111 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java create mode 100644 src/test/resources/json/isConnected.request.json create mode 100644 src/test/resources/json/isConnected.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java new file mode 100644 index 0000000..ed2dea8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class IsConnected { + + private IsConnected() {} + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + int isConnected; + + @JsonCreator + public Result(final @JsonProperty(value = "is_connected", required = true) int isConnected) { + this.isConnected = isConnected; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("is_connected", isConnected) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java new file mode 100644 index 0000000..ff7e1c2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class IsConnectedRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final IsConnected.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "isConnected"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 6429309..8045835 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -53,6 +53,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(GetWorkingFolder.Request.class, new GetWorkingFolderRequestJsonSerializer()); super.addSerializer(Highlight.Request.class, new HighlightRequestJsonSerializer()); super.addSerializer(InsertRow.Request.class, new InsertRowRequestJsonSerializer()); + super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java new file mode 100644 index 0000000..c572eb2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class IsConnectedJsonSerdeTest { + + private static ObjectMapper sut; + + private static IsConnected.Request requestObj; + private static IsConnected.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = IsConnected.Request.INSTANCE; + + resultObj = new IsConnected.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/isConnected.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/isConnected.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final IsConnected.Result actualResultObj = sut.readValue(resultJson, IsConnected.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/isConnected.request.json b/src/test/resources/json/isConnected.request.json new file mode 100644 index 0000000..07536ef --- /dev/null +++ b/src/test/resources/json/isConnected.request.json @@ -0,0 +1,4 @@ +{ + "method" : "isConnected", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/isConnected.result.json b/src/test/resources/json/isConnected.result.json new file mode 100644 index 0000000..30eb778 --- /dev/null +++ b/src/test/resources/json/isConnected.result.json @@ -0,0 +1,3 @@ +{ + "is_connected" : 1 +} \ No newline at end of file From 61a79b230dd2ef2676bb180ba0400ee0a4fd13e8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 23:25:26 +0300 Subject: [PATCH 084/549] Added request-result pairs for IsSubscribedLevel2Quotes. --- .../messages/IsSubscribedLevel2Quotes.java | 53 +++++++++++++++++ ...ibedLevel2QuotesRequestJsonSerializer.java | 20 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ...IsSubscribedLevel2QuotesJsonSerdeTest.java | 57 +++++++++++++++++++ .../IsSubscribed_Level_II_Quotes.request.json | 7 +++ .../IsSubscribed_Level_II_Quotes.result.json | 3 + 6 files changed, 141 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java create mode 100644 src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java new file mode 100644 index 0000000..ec71be7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class IsSubscribedLevel2Quotes { + + private IsSubscribedLevel2Quotes() {} + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + + @Builder + private Request(final String classCode, final String secCode) { + + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java new file mode 100644 index 0000000..1565d31 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class IsSubscribedLevel2QuotesRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final IsSubscribedLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "IsSubscribed_Level_II_Quotes"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 8045835..e82afce 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -54,6 +54,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Highlight.Request.class, new HighlightRequestJsonSerializer()); super.addSerializer(InsertRow.Request.class, new InsertRowRequestJsonSerializer()); super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); + super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java new file mode 100644 index 0000000..d6b9249 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class IsSubscribedLevel2QuotesJsonSerdeTest { + + private static ObjectMapper sut; + + private static IsSubscribedLevel2Quotes.Request requestObj; + private static IsSubscribedLevel2Quotes.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = IsSubscribedLevel2Quotes.Request.builder() + .classCode("1") + .secCode("2") + .build(); + + resultObj = new IsSubscribedLevel2Quotes.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final IsSubscribedLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, IsSubscribedLevel2Quotes.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json new file mode 100644 index 0000000..d88e361 --- /dev/null +++ b/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json @@ -0,0 +1,7 @@ +{ + "method" : "IsSubscribed_Level_II_Quotes", + "args" : { + "class_code" : "1", + "sec_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 24daa148b89b66603bd0d9f84f9e89fc0d4f7c14 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 25 Aug 2018 23:53:39 +0300 Subject: [PATCH 085/549] Added request-result pairs for IsWindowClosed. --- .../lua/rpc/api/messages/IsWindowClosed.java | 40 ++++++++++++++ .../IsWindowClosedRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/IsWindowClosedJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/IsWindowClosed.request.json | 6 +++ .../resources/json/IsWindowClosed.result.json | 3 ++ 6 files changed, 123 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java create mode 100644 src/test/resources/json/IsWindowClosed.request.json create mode 100644 src/test/resources/json/IsWindowClosed.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java new file mode 100644 index 0000000..8fda40a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class IsWindowClosed { + + private IsWindowClosed() {} + + @Value + public static class Request { + + int tId; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java new file mode 100644 index 0000000..aee2d10 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public final class IsWindowClosedRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final IsWindowClosed.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "IsWindowClosed"); + gen.writeNumberField("t_id", value.getTId()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index e82afce..160d75c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -55,6 +55,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(InsertRow.Request.class, new InsertRowRequestJsonSerializer()); super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); + super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java new file mode 100644 index 0000000..0e176ca --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class IsWindowClosedJsonSerdeTest { + + private static ObjectMapper sut; + + private static IsWindowClosed.Request requestObj; + private static IsWindowClosed.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new IsWindowClosed.Request(1); + + resultObj = new IsWindowClosed.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/IsWindowClosed.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/IsWindowClosed.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final IsWindowClosed.Result actualResultObj = sut.readValue(resultJson, IsWindowClosed.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/IsWindowClosed.request.json b/src/test/resources/json/IsWindowClosed.request.json new file mode 100644 index 0000000..b502d28 --- /dev/null +++ b/src/test/resources/json/IsWindowClosed.request.json @@ -0,0 +1,6 @@ +{ + "method" : "IsWindowClosed", + "args" : { + "t_id" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.json b/src/test/resources/json/IsWindowClosed.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/IsWindowClosed.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From c2ea58f4394e086ae8cd816d22d0fe08ff5eeb88 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 00:09:04 +0300 Subject: [PATCH 086/549] Refactored Message JSON ser/deser. --- .../quik/lua/rpc/api/messages/Message.java | 18 +++-- .../jackson/MessageRequestJsonSerializer.java | 6 +- .../MessageResultJsonDeserializer.java | 19 ------ .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../api/messages/MessageJsonSerdeTest.java | 67 +++++++++++++++++++ .../json/message.request_full_args.json | 7 ++ .../json/message.request_required_args.json | 6 ++ src/test/resources/json/message.result.json | 3 + 8 files changed, 100 insertions(+), 27 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java create mode 100644 src/test/resources/json/message.request_full_args.json create mode 100644 src/test/resources/json/message.request_required_args.json create mode 100644 src/test/resources/json/message.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java index 60c8d9d..de50457 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java @@ -1,7 +1,8 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -12,11 +13,14 @@ private Message() {} @Value public static class Request { - String message; + @NonNull String message; IconType iconType; - @Builder - private Request(final @NonNull String message, final @NonNull IconType iconType) { + public Request(final String message) { + this(message, null); + } + + public Request(final String message, final IconType iconType) { this.message = message; this.iconType = iconType; } @@ -35,6 +39,11 @@ public static class Result { int result; + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -44,6 +53,7 @@ public String toString() { } public static enum IconType { + INFO(1), WARNING(2), ERROR(3); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java index 1bc2986..213938a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java @@ -13,10 +13,10 @@ final class MessageRequestJsonSerializer extends JsonSerializer public void serialize(final Message.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "message"); - gen.writeStringField("message", value.getMessage()); - gen.writeNumberField("icon_type", value.getIconType().value); - + if (value.getIconType() != null) { + gen.writeNumberField("icon_type", value.getIconType().value); + } QluaJsonJacksonUtils.finishJsonGenerator(gen); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java deleted file mode 100644 index ff14225..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class MessageResultJsonDeserializer extends JsonDeserializer { - - @Override - public Message.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new Message.Result( node.get("result").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 29071f6..57fad7c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -55,6 +55,5 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(Depo.class, new DepoJsonDeserializer()); super.addDeserializer(GetDepo.Result.class, new GetDepoResultJsonDeserializer()); super.addDeserializer(GetDepoEx.Result.class, new GetDepoExResultJsonDeserializer()); - super.addDeserializer(Message.Result.class, new MessageResultJsonDeserializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java new file mode 100644 index 0000000..a04c24d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class MessageJsonSerdeTest { + + private static ObjectMapper sut; + + private static Message.Request fullArgsRequestObject; + private static Message.Request requiredArgsRequestObject; + private static Message.Result resultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = new Message.Request("1", Message.IconType.WARNING); + requiredArgsRequestObject = new Message.Request("1"); + + resultObj = new Message.Result(1); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/message.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/message.request_required_args.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/message.result.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Message.Result actualResultObj = sut.readValue(resultJson, Message.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/message.request_full_args.json b/src/test/resources/json/message.request_full_args.json new file mode 100644 index 0000000..c8edf8c --- /dev/null +++ b/src/test/resources/json/message.request_full_args.json @@ -0,0 +1,7 @@ +{ + "method" : "message", + "args" : { + "message" : "1", + "icon_type" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/message.request_required_args.json b/src/test/resources/json/message.request_required_args.json new file mode 100644 index 0000000..80d0f70 --- /dev/null +++ b/src/test/resources/json/message.request_required_args.json @@ -0,0 +1,6 @@ +{ + "method" : "message", + "args" : { + "message" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/message.result.json b/src/test/resources/json/message.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/message.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From a3ce1ce09ad1882039f8bee837008510e1ad27a5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 00:09:28 +0300 Subject: [PATCH 087/549] Made the classes package-private. --- .../json/jackson/GetPortfolioInfoExRequestJsonSerializer.java | 2 +- .../serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java | 2 +- .../serde/json/jackson/GetScriptPathRequestJsonSerializer.java | 2 +- .../json/jackson/GetSecurityInfoRequestJsonSerializer.java | 2 +- .../serde/json/jackson/GetTableSizeRequestJsonSerializer.java | 2 +- .../serde/json/jackson/GetTradeDateRequestJsonSerializer.java | 2 +- .../json/jackson/GetWindowCaptionRequestJsonSerializer.java | 2 +- .../serde/json/jackson/GetWindowRectRequestJsonSerializer.java | 2 +- .../json/jackson/GetWorkingFolderRequestJsonSerializer.java | 2 +- .../rpc/serde/json/jackson/HighlightRequestJsonSerializer.java | 2 +- .../rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java | 2 +- .../serde/json/jackson/IsConnectedRequestJsonSerializer.java | 2 +- .../jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java | 2 +- .../serde/json/jackson/IsWindowClosedRequestJsonSerializer.java | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java index 7f534aa..db1cf70 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetPortfolioInfoExRequestJsonSerializer extends JsonSerializer { +final class GetPortfolioInfoExRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetPortfolioInfoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java index 17bd680..e2c658a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetQuoteLevel2RequestJsonSerializer extends JsonSerializer { +final class GetQuoteLevel2RequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetQuoteLevel2.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java index c297fba..2d97f25 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetScriptPathRequestJsonSerializer extends JsonSerializer { +final class GetScriptPathRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetScriptPath.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java index 879164e..08921f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetSecurityInfoRequestJsonSerializer extends JsonSerializer { +final class GetSecurityInfoRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetSecurityInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java index 8b626e8..d3a3f79 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetTableSizeRequestJsonSerializer extends JsonSerializer { +final class GetTableSizeRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetTableSize.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java index de3091a..de6fce5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetTradeDateRequestJsonSerializer extends JsonSerializer { +final class GetTradeDateRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetTradeDate.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java index 639c74a..68cce1b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetWindowCaptionRequestJsonSerializer extends JsonSerializer { +final class GetWindowCaptionRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetWindowCaption.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java index 901e0cf..cea2e2d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetWindowRectRequestJsonSerializer extends JsonSerializer { +final class GetWindowRectRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetWindowRect.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java index 2600a0a..95474dc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class GetWorkingFolderRequestJsonSerializer extends JsonSerializer { +final class GetWorkingFolderRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final GetWorkingFolder.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java index a6649c4..eea0769 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class HighlightRequestJsonSerializer extends JsonSerializer { +final class HighlightRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final Highlight.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java index ca53653..ba14612 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class InsertRowRequestJsonSerializer extends JsonSerializer { +final class InsertRowRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final InsertRow.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java index ff7e1c2..5fc3b52 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class IsConnectedRequestJsonSerializer extends JsonSerializer { +final class IsConnectedRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final IsConnected.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java index 1565d31..8c9496c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class IsSubscribedLevel2QuotesRequestJsonSerializer extends JsonSerializer { +final class IsSubscribedLevel2QuotesRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final IsSubscribedLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java index aee2d10..be3a697 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java @@ -7,7 +7,7 @@ import java.io.IOException; -public final class IsWindowClosedRequestJsonSerializer extends JsonSerializer { +final class IsWindowClosedRequestJsonSerializer extends JsonSerializer { @Override public void serialize(final IsWindowClosed.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { From 4861ae486d39963421edc86e16e26f71da41f4cd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 01:16:21 +0300 Subject: [PATCH 088/549] Added request-result pairs for ParamRequest. --- .../lua/rpc/api/messages/ParamRequest.java | 53 +++++++++++++++++ .../ParamRequestRequestJsonSerializer.java | 21 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/ParamRequestJsonSerdeTest.java | 58 +++++++++++++++++++ .../resources/json/ParamRequest.request.json | 8 +++ .../resources/json/ParamRequest.result.json | 3 + 6 files changed, 144 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java create mode 100644 src/test/resources/json/ParamRequest.request.json create mode 100644 src/test/resources/json/ParamRequest.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java new file mode 100644 index 0000000..cb4e1d2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class ParamRequest { + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + @NonNull String dbName; + + @Builder + private Request(final String classCode, final String secCode, final String dbName) { + this.classCode = classCode; + this.secCode = secCode; + this.dbName = dbName; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("db_name", dbName) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java new file mode 100644 index 0000000..0fc6940 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class ParamRequestRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final ParamRequest.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "ParamRequest"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("db_name", value.getDbName()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 160d75c..b5d862b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -56,6 +56,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); + super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java new file mode 100644 index 0000000..7663dca --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class ParamRequestJsonSerdeTest { + + private static ObjectMapper sut; + + private static ParamRequest.Request requestObj; + private static ParamRequest.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = ParamRequest.Request.builder() + .classCode("1") + .secCode("2") + .dbName("3") + .build(); + + resultObj = new ParamRequest.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/ParamRequest.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/ParamRequest.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final ParamRequest.Result actualResultObj = sut.readValue(resultJson, ParamRequest.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/ParamRequest.request.json b/src/test/resources/json/ParamRequest.request.json new file mode 100644 index 0000000..d82a733 --- /dev/null +++ b/src/test/resources/json/ParamRequest.request.json @@ -0,0 +1,8 @@ +{ + "method" : "ParamRequest", + "args" : { + "class_code" : "1", + "sec_code" : "2", + "db_name" : "3" + } +} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest.result.json b/src/test/resources/json/ParamRequest.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/ParamRequest.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 97316186b9a25345485f17e4f217e112b2781be1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 01:21:20 +0300 Subject: [PATCH 089/549] Added request-result pairs for PrintDbgStr. --- .../lua/rpc/api/messages/PrintDbgStr.java | 29 ++++++++++ .../PrintDbgStrRequestJsonSerializer.java | 18 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/PrintDbgStrJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/PrintDbgStr.request.json | 4 ++ .../resources/json/PrintDbgStr.result.json | 3 ++ 6 files changed, 109 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java create mode 100644 src/test/resources/json/PrintDbgStr.request.json create mode 100644 src/test/resources/json/PrintDbgStr.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java new file mode 100644 index 0000000..e326ea0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class PrintDbgStr { + + private PrintDbgStr() {} + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + String s; + + public Result(final @JsonProperty("s") String s) { + this.s = s; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("s", s) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java new file mode 100644 index 0000000..8956e04 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class PrintDbgStrRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final PrintDbgStr.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "PrintDbgStr"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index b5d862b..13ba9b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -57,6 +57,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); + super.addSerializer(PrintDbgStr.Request.class, new PrintDbgStrRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java new file mode 100644 index 0000000..c004d80 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class PrintDbgStrJsonSerdeTest { + + private static ObjectMapper sut; + + private static PrintDbgStr.Request requestObj; + private static PrintDbgStr.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = PrintDbgStr.Request.INSTANCE; + + resultObj = new PrintDbgStr.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/PrintDbgStr.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/PrintDbgStr.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final PrintDbgStr.Result actualResultObj = sut.readValue(resultJson, PrintDbgStr.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/PrintDbgStr.request.json b/src/test/resources/json/PrintDbgStr.request.json new file mode 100644 index 0000000..7f758ee --- /dev/null +++ b/src/test/resources/json/PrintDbgStr.request.json @@ -0,0 +1,4 @@ +{ + "method" : "PrintDbgStr", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/PrintDbgStr.result.json b/src/test/resources/json/PrintDbgStr.result.json new file mode 100644 index 0000000..a4fe9aa --- /dev/null +++ b/src/test/resources/json/PrintDbgStr.result.json @@ -0,0 +1,3 @@ +{ + "s" : "1" +} \ No newline at end of file From 10cd9a289ed135ca9d472be1f5f536dc1c264b1a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 13:17:49 +0300 Subject: [PATCH 090/549] Added request-result pairs for RGB. --- .../quik/lua/rpc/api/messages/RGB.java | 54 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../jackson/RGBRequestJsonSerializer.java | 21 +++++++ .../rpc/api/messages/RGBJsonSerdeTest.java | 58 +++++++++++++++++++ src/test/resources/json/RGB.request.json | 8 +++ src/test/resources/json/RGB.result.json | 3 + 6 files changed, 145 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java create mode 100644 src/test/resources/json/RGB.request.json create mode 100644 src/test/resources/json/RGB.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java new file mode 100644 index 0000000..545e023 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class RGB { + + private RGB() {} + + @Value + public static class Request { + + int red; + int green; + int blue; + + @Builder + private Request(final int red, final int green, final int blue) { + this.red = red; + this.green = green; + this.blue = blue; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("red", red) + .add("green", green) + .add("blue", blue) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 13ba9b6..a0ec0c9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -58,6 +58,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); super.addSerializer(PrintDbgStr.Request.class, new PrintDbgStrRequestJsonSerializer()); + super.addSerializer(RGB.Request.class, new RGBRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java new file mode 100644 index 0000000..4ffb6da --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class RGBRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final RGB.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "RGB"); + gen.writeNumberField("red", value.getRed()); + gen.writeNumberField("blue", value.getBlue()); + gen.writeNumberField("green", value.getGreen()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java new file mode 100644 index 0000000..b50bb14 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class RGBJsonSerdeTest { + + private static ObjectMapper sut; + + private static RGB.Request requestObj; + private static RGB.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = RGB.Request.builder() + .red(1) + .blue(2) + .green(3) + .build(); + + resultObj = new RGB.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/RGB.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/RGB.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final RGB.Result actualResultObj = sut.readValue(resultJson, RGB.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/RGB.request.json b/src/test/resources/json/RGB.request.json new file mode 100644 index 0000000..997c5fd --- /dev/null +++ b/src/test/resources/json/RGB.request.json @@ -0,0 +1,8 @@ +{ + "method" : "RGB", + "args" : { + "red" : 1, + "blue" : 2, + "green" : 3 + } +} \ No newline at end of file diff --git a/src/test/resources/json/RGB.result.json b/src/test/resources/json/RGB.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/RGB.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From b0d1d61e5e2c626ae15c7dcfbffb3e526317e624 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 13:34:24 +0300 Subject: [PATCH 091/549] Added request-result pairs for SearchItems. --- .../lua/rpc/api/messages/SearchItems.java | 71 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SearchItemsRequestJsonSerializer.java | 27 +++++++ .../messages/SearchItemsJsonSerdeTest.java | 79 +++++++++++++++++++ .../json/SearchItems.request_full_args.json | 10 +++ .../SearchItems.request_required_args.json | 9 +++ .../resources/json/SearchItems.result.json | 3 + 7 files changed, 200 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java create mode 100644 src/test/resources/json/SearchItems.request_full_args.json create mode 100644 src/test/resources/json/SearchItems.request_required_args.json create mode 100644 src/test/resources/json/SearchItems.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java new file mode 100644 index 0000000..15bc957 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java @@ -0,0 +1,71 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.*; + +import java.util.Arrays; + +public final class SearchItems { + + private SearchItems() {} + + @Value + public static class Request { + + @NonNull String tableName; + int startIndex; + int endIndex; + @NonNull String fnDef; + String params; + + @Builder + private Request( + final String tableName, + final int startIndex, + final int endIndex, + final String fnDef, + final String params) { + + this.tableName = tableName; + this.startIndex = startIndex; + this.endIndex = endIndex; + this.fnDef = fnDef; + this.params = params; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table_name", tableName) + .add("start_index", startIndex) + .add("end_index", endIndex) + .add("fn_def", fnDef) + .add("params", params) + .toString(); + } + } + + @Value + public static class Result { + + @Getter(AccessLevel.NONE) int[] items_indices; + + @JsonCreator + public Result(final @JsonProperty(value = "items_indices", required = true) int[] items_indices) { + this.items_indices = items_indices; + } + + public int[] getItemsIndices() { + return items_indices.clone(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("items_indices", Arrays.toString(items_indices)) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index a0ec0c9..32f01d7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -59,6 +59,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); super.addSerializer(PrintDbgStr.Request.class, new PrintDbgStrRequestJsonSerializer()); super.addSerializer(RGB.Request.class, new RGBRequestJsonSerializer()); + super.addSerializer(SearchItems.Request.class, new SearchItemsRequestJsonSerializer()); super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java new file mode 100644 index 0000000..fdfe299 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.google.common.base.Strings; + +import java.io.IOException; + +final class SearchItemsRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SearchItems.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SearchItems"); + gen.writeStringField("table_name", value.getTableName()); + gen.writeNumberField("start_index", value.getStartIndex()); + gen.writeNumberField("end_index", value.getEndIndex()); + gen.writeStringField("fn_def", value.getFnDef()); + final String params = value.getParams(); + if ( !Strings.isNullOrEmpty(params) ) { + gen.writeStringField("params", params); + } + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java new file mode 100644 index 0000000..53277fa --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SearchItemsJsonSerdeTest { + + private static ObjectMapper sut; + + private static SearchItems.Request fullArgsRequestObject; + private static SearchItems.Request requiredArgsRequestObject; + private static SearchItems.Result resultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = SearchItems.Request.builder() + .tableName("1") + .startIndex(2) + .endIndex(3) + .fnDef("4") + .params("5") + .build(); + + requiredArgsRequestObject = SearchItems.Request.builder() + .tableName("1") + .startIndex(2) + .endIndex(3) + .fnDef("4") + .build(); + + resultObj = new SearchItems.Result(new int[] {1, 3, 5, 7, 9}); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/SearchItems.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/SearchItems.request_required_args.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SearchItems.result.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SearchItems.Result actualResultObj = sut.readValue(resultJson, SearchItems.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SearchItems.request_full_args.json b/src/test/resources/json/SearchItems.request_full_args.json new file mode 100644 index 0000000..815d539 --- /dev/null +++ b/src/test/resources/json/SearchItems.request_full_args.json @@ -0,0 +1,10 @@ +{ + "method" : "SearchItems", + "args" : { + "table_name" : "1", + "start_index" : 2, + "end_index" : 3, + "fn_def" : "4", + "params" : "5" + } +} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems.request_required_args.json b/src/test/resources/json/SearchItems.request_required_args.json new file mode 100644 index 0000000..e3d8aa0 --- /dev/null +++ b/src/test/resources/json/SearchItems.request_required_args.json @@ -0,0 +1,9 @@ +{ + "method" : "SearchItems", + "args" : { + "table_name" : "1", + "start_index" : 2, + "end_index" : 3, + "fn_def" : "4" + } +} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems.result.json b/src/test/resources/json/SearchItems.result.json new file mode 100644 index 0000000..fc21df9 --- /dev/null +++ b/src/test/resources/json/SearchItems.result.json @@ -0,0 +1,3 @@ +{ + "items_indices" : [1, 3, 5, 7, 9] +} \ No newline at end of file From b68568fc2d0b9e0186d1740596ef11be372a7b52 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 14:47:22 +0300 Subject: [PATCH 092/549] Added request-result pairs for SendTransaction. --- .../lua/rpc/api/messages/SendTransaction.java | 85 +++++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 3 +- .../SendTransactionRequestJsonSerializer.java | 24 ++++++ .../SendTransactionJsonSerdeTest.java | 62 ++++++++++++++ .../json/sendTransaction.request.json | 10 +++ .../json/sendTransaction.result.json | 3 + 6 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java create mode 100644 src/test/resources/json/sendTransaction.request.json create mode 100644 src/test/resources/json/sendTransaction.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java new file mode 100644 index 0000000..842ad51 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java @@ -0,0 +1,85 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableMap; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Map; +import java.util.Objects; + +public final class SendTransaction { + + private SendTransaction() {} + + @Value + public static class Request { + + Map transaction; + + private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; + private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + + public Request(final Map transaction) { + this.transaction = ImmutableMap.copyOf(transaction); + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Request) ) { + return false; + } else { + final Request request = (Request) o; + return Objects.equals(transaction, request.transaction); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(transaction); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("transaction", transaction) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + @NonNull String result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) String result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 32f01d7..663ed55 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -56,10 +56,11 @@ public QluaJsonJacksonSerializers() { super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); + super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); super.addSerializer(PrintDbgStr.Request.class, new PrintDbgStrRequestJsonSerializer()); super.addSerializer(RGB.Request.class, new RGBRequestJsonSerializer()); super.addSerializer(SearchItems.Request.class, new SearchItemsRequestJsonSerializer()); - super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); + super.addSerializer(SendTransaction.Request.class, new SendTransactionRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java new file mode 100644 index 0000000..5f03061 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.util.Map; + +final class SendTransactionRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SendTransaction.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "sendTransaction"); + gen.writeObjectFieldStart("transaction"); + for (final Map.Entry entry : value.getTransaction().entrySet()) { + gen.writeStringField(entry.getKey(), entry.getValue()); + } + gen.writeEndObject(); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java new file mode 100644 index 0000000..794d4ba --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SendTransactionJsonSerdeTest { + + private static ObjectMapper sut; + + private static SendTransaction.Request requestObj; + private static SendTransaction.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new SendTransaction.Request( + ImmutableMap.of( + "key_1", "value_1", + "key_2", "value_2", + "key_3", "value_3" + ) + ); + + resultObj = new SendTransaction.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/sendTransaction.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/sendTransaction.result.json"), Charsets.UTF_8); + } + + // The test might appear to be flaky though, as the map's iteration order is not strictly defined... + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SendTransaction.Result actualResultObj = sut.readValue(resultJson, SendTransaction.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/sendTransaction.request.json b/src/test/resources/json/sendTransaction.request.json new file mode 100644 index 0000000..f97c572 --- /dev/null +++ b/src/test/resources/json/sendTransaction.request.json @@ -0,0 +1,10 @@ +{ + "method" : "sendTransaction", + "args" : { + "transaction" : { + "key_1" : "value_1", + "key_2" : "value_2", + "key_3" : "value_3" + } + } +} \ No newline at end of file diff --git a/src/test/resources/json/sendTransaction.result.json b/src/test/resources/json/sendTransaction.result.json new file mode 100644 index 0000000..68a995f --- /dev/null +++ b/src/test/resources/json/sendTransaction.result.json @@ -0,0 +1,3 @@ +{ + "result" : "1" +} \ No newline at end of file From 04bd2c09517a676430f793022af813908126711c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 15:54:01 +0300 Subject: [PATCH 093/549] Added request-result pairs for SetCell. --- .../quik/lua/rpc/api/messages/SetCell.java | 67 +++++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../jackson/SetCellRequestJsonSerializer.java | 23 +++++++ .../api/messages/SetCellJsonSerdeTest.java | 60 +++++++++++++++++ src/test/resources/json/SetCell.request.json | 10 +++ src/test/resources/json/SetCell.result.json | 3 + 6 files changed, 164 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java create mode 100644 src/test/resources/json/SetCell.request.json create mode 100644 src/test/resources/json/SetCell.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java new file mode 100644 index 0000000..ac367f9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class SetCell { + + private SetCell() {} + + @Value + public static class Request { + + int tId; + int key; + int code; + @NonNull String text; + double value; + + @Builder + private Request( + final int tId, + final int key, + final int code, + final String text, + final double value) { + + this.tId = tId; + this.key = key; + this.code = code; + this.text = text; + this.value = value; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("key", key) + .add("code", code) + .add("text", text) + .add("value", value) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 663ed55..f42dbb1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -62,5 +62,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(RGB.Request.class, new RGBRequestJsonSerializer()); super.addSerializer(SearchItems.Request.class, new SearchItemsRequestJsonSerializer()); super.addSerializer(SendTransaction.Request.class, new SendTransactionRequestJsonSerializer()); + super.addSerializer(SetCell.Request.class, new SetCellRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java new file mode 100644 index 0000000..b917bf2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetCellRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetCell.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetCell"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("key", value.getKey()); + gen.writeNumberField("code", value.getCode()); + gen.writeStringField("text", value.getText()); + gen.writeNumberField("value", value.getValue()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java new file mode 100644 index 0000000..3efad9b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetCellJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetCell.Request requestObj; + private static SetCell.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetCell.Request.builder() + .tId(1) + .key(2) + .code(3) + .text("4") + .value(5.55) + .build(); + + resultObj = new SetCell.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/SetCell.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetCell.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetCell.Result actualResultObj = sut.readValue(resultJson, SetCell.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetCell.request.json b/src/test/resources/json/SetCell.request.json new file mode 100644 index 0000000..ed75f6f --- /dev/null +++ b/src/test/resources/json/SetCell.request.json @@ -0,0 +1,10 @@ +{ + "method" : "SetCell", + "args" : { + "t_id" : 1, + "key" : 2, + "code" : 3, + "text" : "4", + "value" : 5.55 + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetCell.result.json b/src/test/resources/json/SetCell.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/SetCell.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 95fbe6df483fa9f6acb0c50926bb05200657a799 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 18:57:43 +0300 Subject: [PATCH 094/549] Added request-result pairs for SetColor. --- .../quik/lua/rpc/api/messages/SetColor.java | 74 +++++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SetColorRequestJsonSerializer.java | 25 +++++++ .../api/messages/SetColorJsonSerdeTest.java | 62 ++++++++++++++++ src/test/resources/json/SetColor.request.json | 12 +++ src/test/resources/json/SetColor.result.json | 3 + 6 files changed, 177 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java create mode 100644 src/test/resources/json/SetColor.request.json create mode 100644 src/test/resources/json/SetColor.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java new file mode 100644 index 0000000..daff585 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class SetColor { + + private SetColor() {} + + @Value + public static class Request { + + int tId; + int row; + int col; + int bColor; + int fColor; + int selBColor; + int selFColor; + + @Builder + private Request( + final int tId, + final int row, + final int col, + final int bColor, + final int fColor, + final int selBColor, + final int selFColor) { + + this.tId = tId; + this.row = row; + this.col = col; + this.bColor = bColor; + this.fColor = fColor; + this.selBColor = selBColor; + this.selFColor = selFColor; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("row", row) + .add("col", col) + .add("b_color", bColor) + .add("f_color", fColor) + .add("sel_b_color", selBColor) + .add("sel_f_color", selFColor) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index f42dbb1..3e0603f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -63,5 +63,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SearchItems.Request.class, new SearchItemsRequestJsonSerializer()); super.addSerializer(SendTransaction.Request.class, new SendTransactionRequestJsonSerializer()); super.addSerializer(SetCell.Request.class, new SetCellRequestJsonSerializer()); + super.addSerializer(SetColor.Request.class, new SetColorRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java new file mode 100644 index 0000000..22a7844 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetColorRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetColor.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetColor"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("row", value.getRow()); + gen.writeNumberField("col", value.getCol()); + gen.writeNumberField("b_color", value.getBColor()); + gen.writeNumberField("f_color", value.getFColor()); + gen.writeNumberField("sel_b_color", value.getSelBColor()); + gen.writeNumberField("sel_f_color", value.getSelFColor()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java new file mode 100644 index 0000000..7492a01 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetColorJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetColor.Request requestObj; + private static SetColor.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetColor.Request.builder() + .tId(1) + .row(2) + .col(3) + .bColor(4) + .fColor(5) + .selBColor(6) + .selFColor(7) + .build(); + + resultObj = new SetColor.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/SetColor.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetColor.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetColor.Result actualResultObj = sut.readValue(resultJson, SetColor.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetColor.request.json b/src/test/resources/json/SetColor.request.json new file mode 100644 index 0000000..2f330d3 --- /dev/null +++ b/src/test/resources/json/SetColor.request.json @@ -0,0 +1,12 @@ +{ + "method" : "SetColor", + "args" : { + "t_id" : 1, + "row" : 2, + "col" : 3, + "b_color" : 4, + "f_color" : 5, + "sel_b_color" : 6, + "sel_f_color" : 7 + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetColor.result.json b/src/test/resources/json/SetColor.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/SetColor.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 4b499925d03c4ea451e536d508188cce773af601 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:05:42 +0300 Subject: [PATCH 095/549] Added request-result pairs for SetLabelParams. --- .../lua/rpc/api/messages/SetLabelParams.java | 58 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SetLabelParamsRequestJsonSerializer.java | 26 ++++++++ .../messages/SetLabelParamsJsonSerdeTest.java | 65 +++++++++++++++++++ .../json/SetLabelParams.request.json | 12 ++++ .../resources/json/SetLabelParams.result.json | 3 + 6 files changed, 165 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java create mode 100644 src/test/resources/json/SetLabelParams.request.json create mode 100644 src/test/resources/json/SetLabelParams.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java new file mode 100644 index 0000000..9270bc3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableMap; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +import java.util.Map; + +public final class SetLabelParams { + + private SetLabelParams() {} + + @Value + public static class Request { + + @NonNull String chartTag; + int labelId; + @NonNull Map labelParams; + + @Builder + private Request(final String chartTag, final int labelId, final Map labelParams) { + this.chartTag = chartTag; + this.labelId = labelId; + this.labelParams = ImmutableMap.copyOf(labelParams); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("chart_tag", chartTag) + .add("label_id", labelId) + .add("label_params", labelParams) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 3e0603f..4dcb261 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -64,5 +64,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SendTransaction.Request.class, new SendTransactionRequestJsonSerializer()); super.addSerializer(SetCell.Request.class, new SetCellRequestJsonSerializer()); super.addSerializer(SetColor.Request.class, new SetColorRequestJsonSerializer()); + super.addSerializer(SetLabelParams.Request.class, new SetLabelParamsRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java new file mode 100644 index 0000000..e3a6d0f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.util.Map; + +final class SetLabelParamsRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetLabelParams.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetLabelParams"); + gen.writeStringField("chart_tag", value.getChartTag()); + gen.writeNumberField("label_id", value.getLabelId()); + gen.writeObjectFieldStart("label_params"); + for (final Map.Entry entry : value.getLabelParams().entrySet()) { + gen.writeStringField(entry.getKey(), entry.getValue()); + } + gen.writeEndObject(); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java new file mode 100644 index 0000000..7a150aa --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetLabelParamsJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetLabelParams.Request requestObj; + private static SetLabelParams.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetLabelParams.Request.builder() + .chartTag("1") + .labelId(2) + .labelParams( + ImmutableMap.of( + "key_1", "value_1", + "key_2", "value_2", + "key_3", "value_3") + ) + .build(); + + resultObj = new SetLabelParams.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/SetLabelParams.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetLabelParams.result.json"), Charsets.UTF_8); + } + + // The test might appear to be flaky though, as the map's iteration order is not strictly defined... + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetLabelParams.Result actualResultObj = sut.readValue(resultJson, SetLabelParams.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetLabelParams.request.json b/src/test/resources/json/SetLabelParams.request.json new file mode 100644 index 0000000..f92ab2f --- /dev/null +++ b/src/test/resources/json/SetLabelParams.request.json @@ -0,0 +1,12 @@ +{ + "method" : "SetLabelParams", + "args" : { + "chart_tag" : "1", + "label_id" : 2, + "label_params" : { + "key_1" : "value_1", + "key_2" : "value_2", + "key_3" : "value_3" + } + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetLabelParams.result.json b/src/test/resources/json/SetLabelParams.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/SetLabelParams.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 1d63a46c55106248ad63bc010c8a84054353ba1b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:14:03 +0300 Subject: [PATCH 096/549] Added request-result pairs for SetSelectedRow. --- .../lua/rpc/api/messages/SetSelectedRow.java | 51 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SetSelectedRowRequestJsonSerializer.java | 20 +++++++ .../messages/SetSelectedRowJsonSerdeTest.java | 57 +++++++++++++++++++ .../json/SetSelectedRow.request.json | 7 +++ .../resources/json/SetSelectedRow.result.json | 3 + 6 files changed, 139 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java create mode 100644 src/test/resources/json/SetSelectedRow.request.json create mode 100644 src/test/resources/json/SetSelectedRow.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java new file mode 100644 index 0000000..8f48ac1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class SetSelectedRow { + + private SetSelectedRow() {} + + @Value + public static class Request { + + int tableId; + int row; + + @Builder + private Request(final int tableId, final int row) { + this.tableId = tableId; + this.row = row; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table_id", tableId) + .add("row", row) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 4dcb261..aa0a428 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -65,5 +65,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetCell.Request.class, new SetCellRequestJsonSerializer()); super.addSerializer(SetColor.Request.class, new SetColorRequestJsonSerializer()); super.addSerializer(SetLabelParams.Request.class, new SetLabelParamsRequestJsonSerializer()); + super.addSerializer(SetSelectedRow.Request.class, new SetSelectedRowRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java new file mode 100644 index 0000000..c38953d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetSelectedRowRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetSelectedRow.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetSelectedRow"); + gen.writeNumberField("table_id", value.getTableId()); + gen.writeNumberField("row", value.getRow()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java new file mode 100644 index 0000000..b455e49 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetSelectedRowJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetSelectedRow.Request requestObj; + private static SetSelectedRow.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetSelectedRow.Request.builder() + .tableId(1) + .row(2) + .build(); + + resultObj = new SetSelectedRow.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/SetSelectedRow.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetSelectedRow.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetSelectedRow.Result actualResultObj = sut.readValue(resultJson, SetSelectedRow.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetSelectedRow.request.json b/src/test/resources/json/SetSelectedRow.request.json new file mode 100644 index 0000000..d05f28f --- /dev/null +++ b/src/test/resources/json/SetSelectedRow.request.json @@ -0,0 +1,7 @@ +{ + "method" : "SetSelectedRow", + "args" : { + "table_id" : 1, + "row" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetSelectedRow.result.json b/src/test/resources/json/SetSelectedRow.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/SetSelectedRow.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From 2068691d9e6897b9600b5ec8587c9e2bc60d7c8c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:20:23 +0300 Subject: [PATCH 097/549] Added request-result pairs for SetTableNotificationCallback. --- .../SetTableNotificationCallback.java | 50 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ...ficationCallbackRequestJsonSerializer.java | 20 +++++++ ...ableNotificationCallbackJsonSerdeTest.java | 54 +++++++++++++++++++ .../SetTableNotificationCallback.request.json | 7 +++ .../SetTableNotificationCallback.result.json | 3 ++ 6 files changed, 135 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java create mode 100644 src/test/resources/json/SetTableNotificationCallback.request.json create mode 100644 src/test/resources/json/SetTableNotificationCallback.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java new file mode 100644 index 0000000..65f4d73 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class SetTableNotificationCallback { + + private SetTableNotificationCallback() {} + + @Value + public static class Request { + + int tId; + @NonNull String fCbDef; + + public Request(final int tId, final String fCbDef) { + this.tId = tId; + this.fCbDef = fCbDef; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("f_cb_def", fCbDef) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index aa0a428..9c12e3d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -66,5 +66,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetColor.Request.class, new SetColorRequestJsonSerializer()); super.addSerializer(SetLabelParams.Request.class, new SetLabelParamsRequestJsonSerializer()); super.addSerializer(SetSelectedRow.Request.class, new SetSelectedRowRequestJsonSerializer()); + super.addSerializer(SetTableNotificationCallback.Request.class, new SetTableNotificationCallbackRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java new file mode 100644 index 0000000..fac2bef --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetTableNotificationCallbackRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetTableNotificationCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetTableNotificationCallback"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeStringField("f_cb_def", value.getFCbDef()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java new file mode 100644 index 0000000..9cf2a08 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetTableNotificationCallbackJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetTableNotificationCallback.Request requestObj; + private static SetTableNotificationCallback.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new SetTableNotificationCallback.Request(1, "2"); + + resultObj = new SetTableNotificationCallback.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/SetTableNotificationCallback.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetTableNotificationCallback.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetTableNotificationCallback.Result actualResultObj = sut.readValue(resultJson, SetTableNotificationCallback.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetTableNotificationCallback.request.json b/src/test/resources/json/SetTableNotificationCallback.request.json new file mode 100644 index 0000000..a4bc0b7 --- /dev/null +++ b/src/test/resources/json/SetTableNotificationCallback.request.json @@ -0,0 +1,7 @@ +{ + "method" : "SetTableNotificationCallback", + "args" : { + "t_id" : 1, + "f_cb_def" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetTableNotificationCallback.result.json b/src/test/resources/json/SetTableNotificationCallback.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/SetTableNotificationCallback.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From b16e5dfe67d1f6cea34f1d98f176fe758e695e56 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:25:44 +0300 Subject: [PATCH 098/549] Added request-result pairs for SetWindowCaption. --- .../rpc/api/messages/SetWindowCaption.java | 50 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ...SetWindowCaptionRequestJsonSerializer.java | 20 +++++++ .../SetWindowCaptionJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/SetWindowCaption.request.json | 7 +++ .../json/SetWindowCaption.result.json | 3 ++ 6 files changed, 135 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java create mode 100644 src/test/resources/json/SetWindowCaption.request.json create mode 100644 src/test/resources/json/SetWindowCaption.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java new file mode 100644 index 0000000..b673b1a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class SetWindowCaption { + + private SetWindowCaption() {} + + @Value + public static class Request { + + int tId; + String str; + + public Request(final int tId, final String str) { + this.tId = tId; + this.str = str; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("str", str) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 9c12e3d..2bd7115 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -67,5 +67,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetLabelParams.Request.class, new SetLabelParamsRequestJsonSerializer()); super.addSerializer(SetSelectedRow.Request.class, new SetSelectedRowRequestJsonSerializer()); super.addSerializer(SetTableNotificationCallback.Request.class, new SetTableNotificationCallbackRequestJsonSerializer()); + super.addSerializer(SetWindowCaption.Request.class, new SetWindowCaptionRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java new file mode 100644 index 0000000..64ec2e6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetWindowCaptionRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetWindowCaption.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetWindowCaption"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeStringField("str", value.getStr()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java new file mode 100644 index 0000000..50da03d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetWindowCaptionJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetWindowCaption.Request requestObj; + private static SetWindowCaption.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new SetWindowCaption.Request(1, "2"); + + resultObj = new SetWindowCaption.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/SetWindowCaption.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetWindowCaption.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetWindowCaption.Result actualResultObj = sut.readValue(resultJson, SetWindowCaption.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetWindowCaption.request.json b/src/test/resources/json/SetWindowCaption.request.json new file mode 100644 index 0000000..5c4cf51 --- /dev/null +++ b/src/test/resources/json/SetWindowCaption.request.json @@ -0,0 +1,7 @@ +{ + "method" : "SetWindowCaption", + "args" : { + "t_id" : 1, + "str" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowCaption.result.json b/src/test/resources/json/SetWindowCaption.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/SetWindowCaption.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From bcebe5a6991c5a9d28f4011b524424adb526ee25 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:31:31 +0300 Subject: [PATCH 099/549] Added request-result pairs for SetWindowPos. --- .../lua/rpc/api/messages/SetWindowPos.java | 66 +++++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SetWindowPosRequestJsonSerializer.java | 23 +++++++ .../messages/SetWindowPosJsonSerdeTest.java | 60 +++++++++++++++++ .../resources/json/SetWindowPos.request.json | 10 +++ .../resources/json/SetWindowPos.result.json | 3 + 6 files changed, 163 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java create mode 100644 src/test/resources/json/SetWindowPos.request.json create mode 100644 src/test/resources/json/SetWindowPos.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java new file mode 100644 index 0000000..83f7d2f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class SetWindowPos { + + private SetWindowPos() {} + + @Value + public static class Request { + + int tId; + int x; + int y; + int dx; + int dy; + + @Builder + private Request( + final int tId, + final int x, + final int y, + final int dx, + final int dy) { + + this.tId = tId; + this.x = x; + this.y = y; + this.dx = dx; + this.dy = dy; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("t_id", tId) + .add("x", x) + .add("y", y) + .add("dx", dx) + .add("dy", dy) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 2bd7115..d24d254 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -68,5 +68,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetSelectedRow.Request.class, new SetSelectedRowRequestJsonSerializer()); super.addSerializer(SetTableNotificationCallback.Request.class, new SetTableNotificationCallbackRequestJsonSerializer()); super.addSerializer(SetWindowCaption.Request.class, new SetWindowCaptionRequestJsonSerializer()); + super.addSerializer(SetWindowPos.Request.class, new SetWindowPosRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java new file mode 100644 index 0000000..e6028a0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SetWindowPosRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetWindowPos.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetWindowPos"); + gen.writeNumberField("t_id", value.getTId()); + gen.writeNumberField("x", value.getX()); + gen.writeNumberField("y", value.getY()); + gen.writeNumberField("dx", value.getDx()); + gen.writeNumberField("dy", value.getDy()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java new file mode 100644 index 0000000..60337a7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetWindowPosJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetWindowPos.Request requestObj; + private static SetWindowPos.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetWindowPos.Request.builder() + .tId(1) + .x(2) + .y(3) + .dx(4) + .dy(5) + .build(); + + resultObj = new SetWindowPos.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/SetWindowPos.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/SetWindowPos.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetWindowPos.Result actualResultObj = sut.readValue(resultJson, SetWindowPos.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/SetWindowPos.request.json b/src/test/resources/json/SetWindowPos.request.json new file mode 100644 index 0000000..0db9e33 --- /dev/null +++ b/src/test/resources/json/SetWindowPos.request.json @@ -0,0 +1,10 @@ +{ + "method" : "SetWindowPos", + "args" : { + "t_id" : 1, + "x" : 2, + "y" : 3, + "dx" : 4, + "dy" : 5 + } +} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowPos.result.json b/src/test/resources/json/SetWindowPos.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/SetWindowPos.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From cd5f499077b163e40fc03526ad12a781fd8f30fa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:35:41 +0300 Subject: [PATCH 100/549] Added request-result pairs for Sleep. --- .../quik/lua/rpc/api/messages/Sleep.java | 42 +++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../jackson/SleepRequestJsonSerializer.java | 19 +++++++ .../rpc/api/messages/SleepJsonSerdeTest.java | 54 +++++++++++++++++++ src/test/resources/json/sleep.request.json | 6 +++ src/test/resources/json/sleep.result.json | 3 ++ 6 files changed, 125 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java create mode 100644 src/test/resources/json/sleep.request.json create mode 100644 src/test/resources/json/sleep.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java new file mode 100644 index 0000000..a0f8a40 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class Sleep { + + private Sleep() {} + + @Value + public static class Request { + + int time; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("time", time) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index d24d254..bcc1379 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -69,5 +69,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetTableNotificationCallback.Request.class, new SetTableNotificationCallbackRequestJsonSerializer()); super.addSerializer(SetWindowCaption.Request.class, new SetWindowCaptionRequestJsonSerializer()); super.addSerializer(SetWindowPos.Request.class, new SetWindowPosRequestJsonSerializer()); + super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java new file mode 100644 index 0000000..a312763 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SleepRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Sleep.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "sleep"); + gen.writeNumberField("time", value.getTime()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java new file mode 100644 index 0000000..32d5324 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SleepJsonSerdeTest { + + private static ObjectMapper sut; + + private static Sleep.Request requestObj; + private static Sleep.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new Sleep.Request(1); + + resultObj = new Sleep.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/sleep.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/sleep.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Sleep.Result actualResultObj = sut.readValue(resultJson, Sleep.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/sleep.request.json b/src/test/resources/json/sleep.request.json new file mode 100644 index 0000000..02b0de2 --- /dev/null +++ b/src/test/resources/json/sleep.request.json @@ -0,0 +1,6 @@ +{ + "method" : "sleep", + "args" : { + "time" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/sleep.result.json b/src/test/resources/json/sleep.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/sleep.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From f85fd609b366f503bf5ddea841ea8e9358a0ca09 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:42:00 +0300 Subject: [PATCH 101/549] Added request-result pairs for SubscribeLevel2Quotes. --- .../api/messages/SubscribeLevel2Quotes.java | 52 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ...ribeLevel2QuotesRequestJsonSerializer.java | 20 +++++++ .../SubscribeLevel2QuotesJsonSerdeTest.java | 57 +++++++++++++++++++ .../Subscribe_Level_II_Quotes.request.json | 7 +++ .../Subscribe_Level_II_Quotes.result.json | 3 + 6 files changed, 140 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java create mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java new file mode 100644 index 0000000..2c4e50e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class SubscribeLevel2Quotes { + + private SubscribeLevel2Quotes() {} + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + + @Builder + private Request(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index bcc1379..bfca689 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -70,5 +70,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetWindowCaption.Request.class, new SetWindowCaptionRequestJsonSerializer()); super.addSerializer(SetWindowPos.Request.class, new SetWindowPosRequestJsonSerializer()); super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); + super.addSerializer(SubscribeLevel2Quotes.Request.class, new SubscribeLevel2QuotesRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java new file mode 100644 index 0000000..0577a95 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SubscribeLevel2QuotesRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SubscribeLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Subscribe_Level_II_Quotes"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java new file mode 100644 index 0000000..19923a8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SubscribeLevel2QuotesJsonSerdeTest { + + private static ObjectMapper sut; + + private static SubscribeLevel2Quotes.Request requestObj; + private static SubscribeLevel2Quotes.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SubscribeLevel2Quotes.Request.builder() + .classCode("1") + .secCode("2") + .build(); + + resultObj = new SubscribeLevel2Quotes.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/Subscribe_Level_II_Quotes.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/Subscribe_Level_II_Quotes.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SubscribeLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, SubscribeLevel2Quotes.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes.request.json b/src/test/resources/json/Subscribe_Level_II_Quotes.request.json new file mode 100644 index 0000000..5cd6427 --- /dev/null +++ b/src/test/resources/json/Subscribe_Level_II_Quotes.request.json @@ -0,0 +1,7 @@ +{ + "method" : "Subscribe_Level_II_Quotes", + "args" : { + "class_code" : "1", + "sec_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes.result.json b/src/test/resources/json/Subscribe_Level_II_Quotes.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/Subscribe_Level_II_Quotes.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 6b2c07680b838e1a57ae803e6dfb678bf8df8a8a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 19:45:12 +0300 Subject: [PATCH 102/549] Added request-result pairs for UnsubscribeLevel2Quotes. --- .../api/messages/UnsubscribeLevel2Quotes.java | 53 +++++++++++++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + ...ribeLevel2QuotesRequestJsonSerializer.java | 20 +++++++ .../UnsubscribeLevel2QuotesJsonSerdeTest.java | 57 +++++++++++++++++++ .../Unsubscribe_Level_II_Quotes.request.json | 7 +++ .../Unsubscribe_Level_II_Quotes.result.json | 3 + 6 files changed, 141 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java create mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java new file mode 100644 index 0000000..ad8d118 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class UnsubscribeLevel2Quotes { + + private UnsubscribeLevel2Quotes() {} + + @Value + public static class Request { + + @NonNull + String classCode; + @NonNull String secCode; + + @Builder + private Request(final String classCode, final String secCode) { + this.classCode = classCode; + this.secCode = secCode; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index bfca689..df327f2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -71,5 +71,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetWindowPos.Request.class, new SetWindowPosRequestJsonSerializer()); super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); super.addSerializer(SubscribeLevel2Quotes.Request.class, new SubscribeLevel2QuotesRequestJsonSerializer()); + super.addSerializer(UnsubscribeLevel2Quotes.Request.class, new UnsubscribeLevel2QuotesRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java new file mode 100644 index 0000000..816838f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class UnsubscribeLevel2QuotesRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final UnsubscribeLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Unsubscribe_Level_II_Quotes"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java new file mode 100644 index 0000000..57c14ed --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class UnsubscribeLevel2QuotesJsonSerdeTest { + + private static ObjectMapper sut; + + private static UnsubscribeLevel2Quotes.Request requestObj; + private static UnsubscribeLevel2Quotes.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = UnsubscribeLevel2Quotes.Request.builder() + .classCode("1") + .secCode("2") + .build(); + + resultObj = new UnsubscribeLevel2Quotes.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/Unsubscribe_Level_II_Quotes.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/Unsubscribe_Level_II_Quotes.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final UnsubscribeLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, UnsubscribeLevel2Quotes.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json new file mode 100644 index 0000000..70d3f81 --- /dev/null +++ b/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json @@ -0,0 +1,7 @@ +{ + "method" : "Unsubscribe_Level_II_Quotes", + "args" : { + "class_code" : "1", + "sec_code" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 4560cfad0a1ccbc940715447ba7006cdd321c738 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 20:14:05 +0300 Subject: [PATCH 103/549] Added request-result pairs for Band. --- .../quik/lua/rpc/api/messages/bit/Band.java | 62 +++++++++++++++ .../jackson/BitBandRequestJsonSerializer.java | 25 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../api/messages/BitBandJsonSerdeTest.java | 76 +++++++++++++++++++ .../json/bit.band.request_full_args.json | 8 ++ .../json/bit.band.request_required_args.json | 7 ++ src/test/resources/json/bit.band.result.json | 3 + 7 files changed, 183 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.band.request_full_args.json create mode 100644 src/test/resources/json/bit.band.request_required_args.json create mode 100644 src/test/resources/json/bit.band.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java new file mode 100644 index 0000000..48d5b8f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; + +import java.util.Arrays; + +public final class Band { + + private Band() {} + + @Value + public static class Request { + + int x1; + int x2; + @Getter(AccessLevel.NONE) int[] xi; + + @Builder + private Request(final int x1, final int x2, final int[] xi) { + this.x1 = x1; + this.x2 = x2; + this.xi = (xi == null) ? null : xi.clone(); + } + + public int[] getXi() { + return (xi == null) ? null : xi.clone(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x1", x1) + .add("x2", x2) + .add("xi", Arrays.toString(xi)) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java new file mode 100644 index 0000000..887a19d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitBandRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Band.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.band"); + gen.writeNumberField("x1", value.getX1()); + gen.writeNumberField("x2", value.getX2()); + final int[] xi = value.getXi(); + if (xi != null) { + gen.writeFieldName("xi"); + gen.writeArray(xi, 0, xi.length); + } + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index df327f2..84586b4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -72,5 +73,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); super.addSerializer(SubscribeLevel2Quotes.Request.class, new SubscribeLevel2QuotesRequestJsonSerializer()); super.addSerializer(UnsubscribeLevel2Quotes.Request.class, new UnsubscribeLevel2QuotesRequestJsonSerializer()); + super.addSerializer(Band.Request.class, new BitBandRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java new file mode 100644 index 0000000..12f44eb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class BitBandJsonSerdeTest { + + private static ObjectMapper sut; + + private static Band.Request fullArgsRequestObject; + private static Band.Request requiredArgsRequestObject; + private static Band.Result resultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = Band.Request.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + + requiredArgsRequestObject = Band.Request.builder() + .x1(1) + .x2(2) + .build(); + + resultObj = new Band.Result(1); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.band.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.band.request_required_args.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.band.result.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Band.Result actualResultObj = sut.readValue(resultJson, Band.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.band.request_full_args.json b/src/test/resources/json/bit.band.request_full_args.json new file mode 100644 index 0000000..e1a0bbc --- /dev/null +++ b/src/test/resources/json/bit.band.request_full_args.json @@ -0,0 +1,8 @@ +{ + "method" : "bit.band", + "args" : { + "x1" : 1, + "x2" : 2, + "xi" : [ 3, 5, 7, 9 ] + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.band.request_required_args.json b/src/test/resources/json/bit.band.request_required_args.json new file mode 100644 index 0000000..66f2960 --- /dev/null +++ b/src/test/resources/json/bit.band.request_required_args.json @@ -0,0 +1,7 @@ +{ + "method" : "bit.band", + "args" : { + "x1" : 1, + "x2" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.band.result.json b/src/test/resources/json/bit.band.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/bit.band.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From 5ab5ce5e5468f953e712cd7433b85b3839fa365a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 20:18:50 +0300 Subject: [PATCH 104/549] Added request-result pairs for BOr; renamed Band to BAnd (and the related classes as well). --- .../quik/lua/rpc/api/QluaRpcClient.java | 4 +- .../api/messages/bit/{Band.java => BAnd.java} | 4 +- .../quik/lua/rpc/api/messages/bit/BOr.java | 62 +++++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 8 +- ...java => BitBAndRequestJsonSerializer.java} | 6 +- .../jackson/BitBOrRequestJsonSerializer.java | 25 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 6 +- ...rdeTest.java => BitBAndJsonSerdeTest.java} | 18 ++--- .../rpc/api/messages/BitBOrJsonSerdeTest.java | 76 +++++++++++++++++++ .../json/bit.bor.request_full_args.json | 8 ++ .../json/bit.bor.request_required_args.json | 7 ++ src/test/resources/json/bit.bor.result.json | 3 + 12 files changed, 205 insertions(+), 22 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/{Band.java => BAnd.java} (96%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java rename src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/{BitBandRequestJsonSerializer.java => BitBAndRequestJsonSerializer.java} (78%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitBandJsonSerdeTest.java => BitBAndJsonSerdeTest.java} (80%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.bor.request_full_args.json create mode 100644 src/test/resources/json/bit.bor.request_required_args.json create mode 100644 src/test/resources/json/bit.bor.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index ae16097..55aa539 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -461,7 +461,7 @@ public interface QluaRpcClient extends Gateway, Securable { // * @param args // * @return // */ -// Band.Result bit_band(Band.Request args); +// BAnd.Result bit_band(BAnd.Request args); // // /** // * @@ -475,7 +475,7 @@ public interface QluaRpcClient extends Gateway, Securable { // * @param args // * @return // */ -// Bor.Result bit_bor(Bor.Request args); +// BOr.Result bit_bor(BOr.Request args); // // /** // * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java similarity index 96% rename from src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java index 48d5b8f..507b2f7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Band.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java @@ -10,9 +10,9 @@ import java.util.Arrays; -public final class Band { +public final class BAnd { - private Band() {} + private BAnd() {} @Value public static class Request { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java new file mode 100644 index 0000000..2c79042 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; + +import java.util.Arrays; + +public final class BOr { + + private BOr() {} + + @Value + public static class Request { + + int x1; + int x2; + @Getter(AccessLevel.NONE) int[] xi; + + @Builder + private Request(final int x1, final int x2, final int[] xi) { + this.x1 = x1; + this.x2 = x2; + this.xi = (xi == null) ? null : xi.clone(); + } + + public int[] getXi() { + return (xi == null) ? null : xi.clone(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x1", x1) + .add("x2", x2) + .add("xi", Arrays.toString(xi)) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 8416d41..3433340 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -791,11 +791,11 @@ public GetItem.Result qlua_getItem(final GetItem.Request request) { // } // // @Override -// public Band.Result bit_band(final Band.Request args) { +// public BAnd.Result bit_band(final BAnd.Request args) { // // try { // final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BAND, args); -// return Band.Result.parseFrom(resultAsByteString); +// return BAnd.Result.parseFrom(resultAsByteString); // } catch (final RpcClientException ex) { // throw ex; // } catch (final Exception ex) { @@ -817,11 +817,11 @@ public GetItem.Result qlua_getItem(final GetItem.Request request) { // } // // @Override -// public Bor.Result bit_bor(final Bor.Request args) { +// public BOr.Result bit_bor(final BOr.Request args) { // // try { // final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BOR, args); -// return Bor.Result.parseFrom(resultAsByteString); +// return BOr.Result.parseFrom(resultAsByteString); // } catch (final RpcClientException ex) { // throw ex; // } catch (final Exception ex) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java similarity index 78% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java index 887a19d..90099db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBandRequestJsonSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java @@ -1,16 +1,16 @@ package com.enfernuz.quik.lua.rpc.serde.json.jackson; -import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -final class BitBandRequestJsonSerializer extends JsonSerializer { +final class BitBAndRequestJsonSerializer extends JsonSerializer { @Override - public void serialize(final Band.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + public void serialize(final BAnd.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.band"); gen.writeNumberField("x1", value.getX1()); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java new file mode 100644 index 0000000..3d203f5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitBOrRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final BOr.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bor"); + gen.writeNumberField("x1", value.getX1()); + gen.writeNumberField("x2", value.getX2()); + final int[] xi = value.getXi(); + if (xi != null) { + gen.writeFieldName("xi"); + gen.writeArray(xi, 0, xi.length); + } + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 84586b4..4aa2746 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -2,7 +2,8 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -73,6 +74,7 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); super.addSerializer(SubscribeLevel2Quotes.Request.class, new SubscribeLevel2QuotesRequestJsonSerializer()); super.addSerializer(UnsubscribeLevel2Quotes.Request.class, new UnsubscribeLevel2QuotesRequestJsonSerializer()); - super.addSerializer(Band.Request.class, new BitBandRequestJsonSerializer()); + super.addSerializer(BAnd.Request.class, new BitBAndRequestJsonSerializer()); + super.addSerializer(BOr.Request.class, new BitBOrRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java similarity index 80% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java index 12f44eb..0143b20 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBandJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java @@ -1,6 +1,6 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.messages.bit.Band; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -12,13 +12,13 @@ import static org.junit.Assert.assertEquals; -public class BitBandJsonSerdeTest { +public class BitBAndJsonSerdeTest { private static ObjectMapper sut; - private static Band.Request fullArgsRequestObject; - private static Band.Request requiredArgsRequestObject; - private static Band.Result resultObj; + private static BAnd.Request fullArgsRequestObject; + private static BAnd.Request requiredArgsRequestObject; + private static BAnd.Result resultObj; private static String fullArgsRequestJson; private static String requiredArgsRequestJson; private static String resultJson; @@ -29,18 +29,18 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - fullArgsRequestObject = Band.Request.builder() + fullArgsRequestObject = BAnd.Request.builder() .x1(1) .x2(2) .xi(new int[] {3, 5, 7, 9}) .build(); - requiredArgsRequestObject = Band.Request.builder() + requiredArgsRequestObject = BAnd.Request.builder() .x1(1) .x2(2) .build(); - resultObj = new Band.Result(1); + resultObj = new BAnd.Result(1); fullArgsRequestJson = Resources.toString(Resources.getResource("json/bit.band.request_full_args.json"), Charsets.UTF_8); @@ -69,7 +69,7 @@ public void testRequiredArgsRequestSerialize() throws IOException { @Test public void testResultDeserialize() throws IOException { - final Band.Result actualResultObj = sut.readValue(resultJson, Band.Result.class); + final BAnd.Result actualResultObj = sut.readValue(resultJson, BAnd.Result.class); assertEquals(resultObj, actualResultObj); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java new file mode 100644 index 0000000..2125249 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class BitBOrJsonSerdeTest { + + private static ObjectMapper sut; + + private static BOr.Request fullArgsRequestObject; + private static BOr.Request requiredArgsRequestObject; + private static BOr.Result resultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = BOr.Request.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + + requiredArgsRequestObject = BOr.Request.builder() + .x1(1) + .x2(2) + .build(); + + resultObj = new BOr.Result(1); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.bor.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.bor.request_required_args.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.bor.result.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final BOr.Result actualResultObj = sut.readValue(resultJson, BOr.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.bor.request_full_args.json b/src/test/resources/json/bit.bor.request_full_args.json new file mode 100644 index 0000000..1fe978b --- /dev/null +++ b/src/test/resources/json/bit.bor.request_full_args.json @@ -0,0 +1,8 @@ +{ + "method" : "bit.bor", + "args" : { + "x1" : 1, + "x2" : 2, + "xi" : [ 3, 5, 7, 9 ] + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.bor.request_required_args.json b/src/test/resources/json/bit.bor.request_required_args.json new file mode 100644 index 0000000..c2511f0 --- /dev/null +++ b/src/test/resources/json/bit.bor.request_required_args.json @@ -0,0 +1,7 @@ +{ + "method" : "bit.bor", + "args" : { + "x1" : 1, + "x2" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.bor.result.json b/src/test/resources/json/bit.bor.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/bit.bor.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From a614b99baee2e25d07f017f252c4ed28f0b3ab84 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 20:22:09 +0300 Subject: [PATCH 105/549] Added request-result pairs for BXor. --- .../quik/lua/rpc/api/messages/bit/BXor.java | 62 +++++++++++++++ .../jackson/BitBXorRequestJsonSerializer.java | 25 ++++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../api/messages/BitBXorJsonSerdeTest.java | 76 +++++++++++++++++++ .../json/bit.bxor.request_full_args.json | 8 ++ .../json/bit.bxor.request_required_args.json | 7 ++ src/test/resources/json/bit.bxor.result.json | 3 + 7 files changed, 183 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.bxor.request_full_args.json create mode 100644 src/test/resources/json/bit.bxor.request_required_args.json create mode 100644 src/test/resources/json/bit.bxor.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java new file mode 100644 index 0000000..9b933ce --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.Value; + +import java.util.Arrays; + +public final class BXor { + + private BXor() {} + + @Value + public static class Request { + + int x1; + int x2; + @Getter(AccessLevel.NONE) int[] xi; + + @Builder + private Request(final int x1, final int x2, final int[] xi) { + this.x1 = x1; + this.x2 = x2; + this.xi = (xi == null) ? null : xi.clone(); + } + + public int[] getXi() { + return (xi == null) ? null : xi.clone(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x1", x1) + .add("x2", x2) + .add("xi", Arrays.toString(xi)) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java new file mode 100644 index 0000000..ecd9f24 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitBXorRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final BXor.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bxor"); + gen.writeNumberField("x1", value.getX1()); + gen.writeNumberField("x2", value.getX2()); + final int[] xi = value.getXi(); + if (xi != null) { + gen.writeFieldName("xi"); + gen.writeArray(xi, 0, xi.length); + } + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 4aa2746..af7738c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -4,6 +4,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -76,5 +77,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(UnsubscribeLevel2Quotes.Request.class, new UnsubscribeLevel2QuotesRequestJsonSerializer()); super.addSerializer(BAnd.Request.class, new BitBAndRequestJsonSerializer()); super.addSerializer(BOr.Request.class, new BitBOrRequestJsonSerializer()); + super.addSerializer(BXor.Request.class, new BitBXorRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java new file mode 100644 index 0000000..b971231 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class BitBXorJsonSerdeTest { + + private static ObjectMapper sut; + + private static BXor.Request fullArgsRequestObject; + private static BXor.Request requiredArgsRequestObject; + private static BXor.Result resultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = BXor.Request.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + + requiredArgsRequestObject = BXor.Request.builder() + .x1(1) + .x2(2) + .build(); + + resultObj = new BXor.Result(1); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.bxor.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/bit.bxor.request_required_args.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.bxor.result.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final BXor.Result actualResultObj = sut.readValue(resultJson, BXor.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.bxor.request_full_args.json b/src/test/resources/json/bit.bxor.request_full_args.json new file mode 100644 index 0000000..46f5b2b --- /dev/null +++ b/src/test/resources/json/bit.bxor.request_full_args.json @@ -0,0 +1,8 @@ +{ + "method" : "bit.bxor", + "args" : { + "x1" : 1, + "x2" : 2, + "xi" : [ 3, 5, 7, 9 ] + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.bxor.request_required_args.json b/src/test/resources/json/bit.bxor.request_required_args.json new file mode 100644 index 0000000..624fe17 --- /dev/null +++ b/src/test/resources/json/bit.bxor.request_required_args.json @@ -0,0 +1,7 @@ +{ + "method" : "bit.bxor", + "args" : { + "x1" : 1, + "x2" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.bxor.result.json b/src/test/resources/json/bit.bxor.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/bit.bxor.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From f00d2ce0e5e76685ac976fe64d8eb8d1be8aed35 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 20:47:34 +0300 Subject: [PATCH 106/549] Added request-result pairs for BNot. --- .../quik/lua/rpc/api/messages/bit/BNot.java | 42 ++++++++++++++ .../jackson/BitBNotRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../api/messages/BitBNotJsonSerdeTest.java | 55 +++++++++++++++++++ src/test/resources/json/bit.bnot.request.json | 6 ++ src/test/resources/json/bit.bnot.result.json | 3 + 6 files changed, 127 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.bnot.request.json create mode 100644 src/test/resources/json/bit.bnot.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java new file mode 100644 index 0000000..6dc1250 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +public final class BNot { + + private BNot() {} + + @Value + public static class Request { + + int x; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x", x) + .toString(); + } + } + + @Value + public static class Result { + + int result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java new file mode 100644 index 0000000..a432eb8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitBNotRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final BNot.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bnot"); + gen.writeNumberField("x", value.getX()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index af7738c..15f176a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -78,5 +79,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(BAnd.Request.class, new BitBAndRequestJsonSerializer()); super.addSerializer(BOr.Request.class, new BitBOrRequestJsonSerializer()); super.addSerializer(BXor.Request.class, new BitBXorRequestJsonSerializer()); + super.addSerializer(BNot.Request.class, new BitBNotRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java new file mode 100644 index 0000000..3eee260 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class BitBNotJsonSerdeTest { + + private static ObjectMapper sut; + + private static BNot.Request requestObj; + private static BNot.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new BNot.Request(1); + + resultObj = new BNot.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/bit.bnot.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.bnot.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final BNot.Result actualResultObj = sut.readValue(resultJson, BNot.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.bnot.request.json b/src/test/resources/json/bit.bnot.request.json new file mode 100644 index 0000000..45ce3f4 --- /dev/null +++ b/src/test/resources/json/bit.bnot.request.json @@ -0,0 +1,6 @@ +{ + "method" : "bit.bnot", + "args" : { + "x" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.bnot.result.json b/src/test/resources/json/bit.bnot.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/bit.bnot.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From 9864c527824b143c4848c2c12237832b75c1942b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 20:54:25 +0300 Subject: [PATCH 107/549] Added request-result pairs for bit.Test. --- .../quik/lua/rpc/api/messages/bit/Test.java | 51 ++++++++++++++++ .../jackson/BitTestRequestJsonSerializer.java | 20 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 6 +- .../api/messages/BitTestJsonSerdeTest.java | 58 +++++++++++++++++++ src/test/resources/json/bit.test.request.json | 7 +++ src/test/resources/json/bit.test.result.json | 3 + 6 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.test.request.json create mode 100644 src/test/resources/json/bit.test.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java new file mode 100644 index 0000000..157e818 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.Value; + +public final class Test { + + private Test() {} + + @Value + public static class Request { + + int x; + int n; + + @Builder + private Request(int x, int n) { + this.x = x; + this.n = n; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x", x) + .add("n", n) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java new file mode 100644 index 0000000..db4d6cd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitTestRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Test.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.test"); + gen.writeNumberField("x", value.getX()); + gen.writeNumberField("n", value.getN()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 15f176a..5549fb3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -2,10 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -80,5 +77,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(BOr.Request.class, new BitBOrRequestJsonSerializer()); super.addSerializer(BXor.Request.class, new BitBXorRequestJsonSerializer()); super.addSerializer(BNot.Request.class, new BitBNotRequestJsonSerializer()); + super.addSerializer(Test.Request.class, new BitTestRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java new file mode 100644 index 0000000..3f5de10 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class BitTestJsonSerdeTest { + + private static ObjectMapper sut; + + private static com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Request requestObj; + private static com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Request.builder() + .x(1) + .n(2) + .build(); + + resultObj = new com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/bit.test.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.test.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result actualResultObj = + sut.readValue(resultJson, com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.test.request.json b/src/test/resources/json/bit.test.request.json new file mode 100644 index 0000000..9f121f4 --- /dev/null +++ b/src/test/resources/json/bit.test.request.json @@ -0,0 +1,7 @@ +{ + "method" : "bit.test", + "args" : { + "x" : 1, + "n" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.test.result.json b/src/test/resources/json/bit.test.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/bit.test.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 7c50e089c35c7a0f441af8be0cca0e763b5b630e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 21:02:47 +0300 Subject: [PATCH 108/549] Added request-result pairs for bit.ToHex. Moved the bit.* tests to a separate test package. --- .../quik/lua/rpc/api/messages/bit/Test.java | 2 +- .../quik/lua/rpc/api/messages/bit/ToHex.java | 52 +++++++++++++++++ .../BitToHexRequestJsonSerializer.java | 20 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../BAndJsonSerdeTest.java} | 5 +- .../BNotJsonSerdeTest.java} | 5 +- .../BOrJsonSerdeTest.java} | 5 +- .../BXorJsonSerdeTest.java} | 5 +- .../TestJsonSerdeTest.java} | 4 +- .../api/messages/bit/ToHexJsonSerdeTest.java | 58 +++++++++++++++++++ .../resources/json/bit.tohex.request.json | 7 +++ src/test/resources/json/bit.tohex.result.json | 3 + 12 files changed, 152 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitBAndJsonSerdeTest.java => bit/BAndJsonSerdeTest.java} (94%) rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitBNotJsonSerdeTest.java => bit/BNotJsonSerdeTest.java} (91%) rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitBOrJsonSerdeTest.java => bit/BOrJsonSerdeTest.java} (94%) rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitBXorJsonSerdeTest.java => bit/BXorJsonSerdeTest.java} (94%) rename src/test/java/com/enfernuz/quik/lua/rpc/api/messages/{BitTestJsonSerdeTest.java => bit/TestJsonSerdeTest.java} (95%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java create mode 100644 src/test/resources/json/bit.tohex.request.json create mode 100644 src/test/resources/json/bit.tohex.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java index 157e818..0706045 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java @@ -17,7 +17,7 @@ public static class Request { int n; @Builder - private Request(int x, int n) { + private Request(final int x, final int n) { this.x = x; this.n = n; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java new file mode 100644 index 0000000..82efeb6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class ToHex { + + private ToHex() {} + + @Value + public static class Request { + + int x; + int n; + + @Builder + private Request(final int x, final int n) { + this.x = x; + this.n = n; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("x", x) + .add("n", n) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull String result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) String result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java new file mode 100644 index 0000000..b6126c0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class BitToHexRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final ToHex.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.tohex"); + gen.writeNumberField("x", value.getX()); + gen.writeNumberField("n", value.getN()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 5549fb3..30075d8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -78,5 +78,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(BXor.Request.class, new BitBXorRequestJsonSerializer()); super.addSerializer(BNot.Request.class, new BitBNotRequestJsonSerializer()); super.addSerializer(Test.Request.class, new BitTestRequestJsonSerializer()); + super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java similarity index 94% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java index 0143b20..d39a60c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBAndJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -12,7 +11,7 @@ import static org.junit.Assert.assertEquals; -public class BitBAndJsonSerdeTest { +public class BAndJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java similarity index 91% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java index 3eee260..763ca9d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBNotJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -12,7 +11,7 @@ import static org.junit.Assert.assertEquals; -public class BitBNotJsonSerdeTest { +public class BNotJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java similarity index 94% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java index 2125249..47c2944 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBOrJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -12,7 +11,7 @@ import static org.junit.Assert.assertEquals; -public class BitBOrJsonSerdeTest { +public class BOrJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java similarity index 94% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java index b971231..ab2f8f1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitBXorJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java @@ -1,6 +1,5 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; @@ -12,7 +11,7 @@ import static org.junit.Assert.assertEquals; -public class BitBXorJsonSerdeTest { +public class BXorJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java similarity index 95% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java index 3f5de10..5caefdd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/BitTestJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java @@ -1,4 +1,4 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.api.messages.bit; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; @@ -11,7 +11,7 @@ import static org.junit.Assert.assertEquals; -public class BitTestJsonSerdeTest { +public class TestJsonSerdeTest { private static ObjectMapper sut; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java new file mode 100644 index 0000000..60be63d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.api.messages.bit; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class ToHexJsonSerdeTest { + + private static ObjectMapper sut; + + private static ToHex.Request requestObj; + private static ToHex.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = ToHex.Request.builder() + .x(1) + .n(2) + .build(); + + resultObj = new ToHex.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/bit.tohex.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/bit.tohex.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final ToHex.Result actualResultObj = sut.readValue(resultJson, ToHex.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/bit.tohex.request.json b/src/test/resources/json/bit.tohex.request.json new file mode 100644 index 0000000..84f733e --- /dev/null +++ b/src/test/resources/json/bit.tohex.request.json @@ -0,0 +1,7 @@ +{ + "method" : "bit.tohex", + "args" : { + "x" : 1, + "n" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/bit.tohex.result.json b/src/test/resources/json/bit.tohex.result.json new file mode 100644 index 0000000..68a995f --- /dev/null +++ b/src/test/resources/json/bit.tohex.result.json @@ -0,0 +1,3 @@ +{ + "result" : "1" +} \ No newline at end of file From 964a15e3f91f081989b4d5cf2803b2085becb1f4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 21:11:38 +0300 Subject: [PATCH 109/549] Added request-result pairs for os.SysDate. --- .../quik/lua/rpc/api/messages/os/SysDate.java | 33 +++++++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../jackson/SysDateRequestJsonSerializer.java | 18 +++++ .../api/messages/os/SysDateJsonSerdeTest.java | 68 +++++++++++++++++++ .../resources/json/os.sysdate.request.json | 4 ++ .../resources/json/os.sysdate.result.json | 13 ++++ 6 files changed, 138 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java create mode 100644 src/test/resources/json/os.sysdate.request.json create mode 100644 src/test/resources/json/os.sysdate.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java new file mode 100644 index 0000000..f1a31b7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.api.messages.os; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class SysDate { + + private SysDate() {} + + public static enum Request { INSTANCE; } + + @Value + public static class Result { + + @NonNull DateTimeEntry result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) DateTimeEntry result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 30075d8..5336913 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; final class QluaJsonJacksonSerializers extends SimpleSerializers { @@ -79,5 +80,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(BNot.Request.class, new BitBNotRequestJsonSerializer()); super.addSerializer(Test.Request.class, new BitTestRequestJsonSerializer()); super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); + super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java new file mode 100644 index 0000000..a5f2fe8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class SysDateRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SysDate.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "os.sysdate"); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java new file mode 100644 index 0000000..293ecf8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.api.messages.os; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SysDateJsonSerdeTest { + + private static ObjectMapper sut; + + private static SysDate.Request requestObj; + private static SysDate.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SysDate.Request.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + resultObj = new SysDate.Result(dateTimeEntry); + + requestJson = + Resources.toString(Resources.getResource("json/os.sysdate.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/os.sysdate.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SysDate.Result actualResultObj = sut.readValue(resultJson, SysDate.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/os.sysdate.request.json b/src/test/resources/json/os.sysdate.request.json new file mode 100644 index 0000000..2d16a93 --- /dev/null +++ b/src/test/resources/json/os.sysdate.request.json @@ -0,0 +1,4 @@ +{ + "method" : "os.sysdate", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/os.sysdate.result.json b/src/test/resources/json/os.sysdate.result.json new file mode 100644 index 0000000..ddd1bdc --- /dev/null +++ b/src/test/resources/json/os.sysdate.result.json @@ -0,0 +1,13 @@ +{ + "result" : { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 + } +} \ No newline at end of file From 2cfe140c04daba24b13677b97aef0a03c0a78b66 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 22:29:26 +0300 Subject: [PATCH 110/549] Added request-result pairs for datasource.CreateDataSource. --- .../messages/datasource/CreateDataSource.java | 94 ++++++++++++++++++ ...CreateDatasourceRequestJsonSerializer.java | 26 +++++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../CreateDataSourceJsonSerdeTest.java | 97 +++++++++++++++++++ ...ce.CreateDataSource.request_full_args.json | 9 ++ ...reateDataSource.request_required_args.json | 8 ++ ...asource.CreateDataSource.result_error.json | 4 + ...ource.CreateDataSource.result_success.json | 4 + 8 files changed, 244 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.CreateDataSource.request_full_args.json create mode 100644 src/test/resources/json/datasource.CreateDataSource.request_required_args.json create mode 100644 src/test/resources/json/datasource.CreateDataSource.result_error.json create mode 100644 src/test/resources/json/datasource.CreateDataSource.result_success.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java new file mode 100644 index 0000000..b8982e7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java @@ -0,0 +1,94 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class CreateDataSource { + + private CreateDataSource() {} + + public static enum Interval { + + INTERVAL_TICK, + INTERVAL_M1, + INTERVAL_M2, + INTERVAL_M3, + INTERVAL_M4, + INTERVAL_M5, + INTERVAL_M6, + INTERVAL_M10, + INTERVAL_M15, + INTERVAL_M20, + INTERVAL_M30, + INTERVAL_H1, + INTERVAL_H2, + INTERVAL_H4, + INTERVAL_D1, + INTERVAL_W1, + INTERVAL_MN1; + } + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + @NonNull Interval interval; + String param; + + @Builder + private Request( + final String classCode, + final String secCode, + final Interval interval, + final String param) { + + this.classCode = classCode; + this.secCode = secCode; + this.interval = interval; + this.param = param; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("interval", interval) + .add("param", param) + .toString(); + } + } + + @Value + public static class Result { + + String datasourceUUID; + boolean error; + String errorDesc; + + @JsonCreator + @Builder + private Result( + final @JsonProperty(value = "datasource_uuid") String datasourceUUID, + final @JsonProperty(value = "is_error") boolean error, + final @JsonProperty(value = "error_desc") String errorDesc) { + this.datasourceUUID = datasourceUUID; + this.error = error; + this.errorDesc = errorDesc; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("is_error", error) + .add("error_desc", errorDesc) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java new file mode 100644 index 0000000..76f9233 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.google.common.base.Strings; + +import java.io.IOException; + +final class DatasourceCreateDatasourceRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final CreateDataSource.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.CreateDataSource"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("interval", value.getInterval().name()); + final String param = value.getParam(); + if ( !Strings.isNullOrEmpty(param) ) { + gen.writeStringField("param", param); + } + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 5336913..7868083 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -81,5 +82,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Test.Request.class, new BitTestRequestJsonSerializer()); super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); + super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java new file mode 100644 index 0000000..773a4f6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java @@ -0,0 +1,97 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class CreateDataSourceJsonSerdeTest { + + private static ObjectMapper sut; + + private static CreateDataSource.Request fullArgsRequestObject; + private static CreateDataSource.Request requiredArgsRequestObject; + private static CreateDataSource.Result successResultObj; + private static CreateDataSource.Result errorResultObj; + private static String fullArgsRequestJson; + private static String requiredArgsRequestJson; + private static String successResultJson; + private static String errorResultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + fullArgsRequestObject = CreateDataSource.Request.builder() + .classCode("1") + .secCode("2") + .interval(CreateDataSource.Interval.INTERVAL_M5) + .param("4") + .build(); + + requiredArgsRequestObject = CreateDataSource.Request.builder() + .classCode("1") + .secCode("2") + .interval(CreateDataSource.Interval.INTERVAL_M5) + .build(); + + successResultObj = CreateDataSource.Result.builder() + .datasourceUUID("1") + .error(false) + .build(); + + errorResultObj = CreateDataSource.Result.builder() + .error(true) + .errorDesc("2") + .build(); + + fullArgsRequestJson = + Resources.toString(Resources.getResource("json/datasource.CreateDataSource.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestJson = + Resources.toString(Resources.getResource("json/datasource.CreateDataSource.request_required_args.json"), Charsets.UTF_8); + successResultJson = + Resources.toString(Resources.getResource("json/datasource.CreateDataSource.result_success.json"), Charsets.UTF_8); + errorResultJson = + Resources.toString(Resources.getResource("json/datasource.CreateDataSource.result_error.json"), Charsets.UTF_8); + } + + @Test + public void testFullArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); + + assertEquals(fullArgsRequestJson, actualRequestJson); + } + + @Test + public void testRequiredArgsRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); + + assertEquals(requiredArgsRequestJson, actualRequestJson); + } + + @Test + public void testSuccessResultDeserialize() throws IOException { + + final CreateDataSource.Result actualResultObj = sut.readValue(successResultJson, CreateDataSource.Result.class); + + assertEquals(successResultObj, actualResultObj); + } + + @Test + public void testErrorResultDeserialize() throws IOException { + + final CreateDataSource.Result actualResultObj = sut.readValue(errorResultJson, CreateDataSource.Result.class); + + assertEquals(errorResultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.CreateDataSource.request_full_args.json b/src/test/resources/json/datasource.CreateDataSource.request_full_args.json new file mode 100644 index 0000000..219eee8 --- /dev/null +++ b/src/test/resources/json/datasource.CreateDataSource.request_full_args.json @@ -0,0 +1,9 @@ +{ + "method" : "datasource.CreateDataSource", + "args" : { + "class_code" : "1", + "sec_code" : "2", + "interval" : "INTERVAL_M5", + "param" : "4" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.request_required_args.json b/src/test/resources/json/datasource.CreateDataSource.request_required_args.json new file mode 100644 index 0000000..2e75767 --- /dev/null +++ b/src/test/resources/json/datasource.CreateDataSource.request_required_args.json @@ -0,0 +1,8 @@ +{ + "method" : "datasource.CreateDataSource", + "args" : { + "class_code" : "1", + "sec_code" : "2", + "interval" : "INTERVAL_M5" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.result_error.json b/src/test/resources/json/datasource.CreateDataSource.result_error.json new file mode 100644 index 0000000..f10c6c0 --- /dev/null +++ b/src/test/resources/json/datasource.CreateDataSource.result_error.json @@ -0,0 +1,4 @@ +{ + "is_error" : true, + "error_desc" : "2" +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.result_success.json b/src/test/resources/json/datasource.CreateDataSource.result_success.json new file mode 100644 index 0000000..2f5df6b --- /dev/null +++ b/src/test/resources/json/datasource.CreateDataSource.result_success.json @@ -0,0 +1,4 @@ +{ + "datasource_uuid" : "1", + "is_error" : false +} \ No newline at end of file From 41ea1ddf64fcad840a1e346d68691503ce8961c5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 26 Aug 2018 22:45:02 +0300 Subject: [PATCH 111/549] Added request-result pairs for datasource.C. --- .../lua/rpc/api/messages/datasource/C.java | 118 ++++++++++++++++++ .../DatasourceCRequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../messages/datasource/CJsonSerdeTest.java | 54 ++++++++ .../resources/json/datasource.C.request.json | 7 ++ .../resources/json/datasource.C.result.json | 3 + 6 files changed, 204 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.C.request.json create mode 100644 src/test/resources/json/datasource.C.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java new file mode 100644 index 0000000..ec18447 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java @@ -0,0 +1,118 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class C { + + private C() {} + + @Value + public static class Request { + + @NonNull String datasourceUUID; + int candleIndex; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + public Request(final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Request)) { + return false; + } else { + final Request request = (Request) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + String value; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + public Result(final @JsonProperty("value") String value) { + this.value = value; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(value, result.value); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(value); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java new file mode 100644 index 0000000..4ded6e4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceCRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final C.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.C"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 7868083..6a9a1ca 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -83,5 +84,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); + super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java new file mode 100644 index 0000000..96eeffb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class CJsonSerdeTest { + + private static ObjectMapper sut; + + private static C.Request requestObj; + private static C.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new C.Request("1", 2); + + resultObj = new C.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.C.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.C.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final C.Result actualResultObj = sut.readValue(resultJson, C.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.C.request.json b/src/test/resources/json/datasource.C.request.json new file mode 100644 index 0000000..81dfa4f --- /dev/null +++ b/src/test/resources/json/datasource.C.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.C", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.C.result.json b/src/test/resources/json/datasource.C.result.json new file mode 100644 index 0000000..405767c --- /dev/null +++ b/src/test/resources/json/datasource.C.result.json @@ -0,0 +1,3 @@ +{ + "value" : "1" +} \ No newline at end of file From 6e442a4fb6047f95027a71d8e059eb616473e9e9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 27 Aug 2018 01:08:33 +0300 Subject: [PATCH 112/549] Added request-result pairs for datasource.H. --- .../lua/rpc/api/messages/datasource/H.java | 119 ++++++++++++++++++ .../DatasourceHRequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../messages/datasource/HJsonSerdeTest.java | 54 ++++++++ .../resources/json/datasource.H.request.json | 7 ++ .../resources/json/datasource.H.result.json | 3 + 6 files changed, 205 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.H.request.json create mode 100644 src/test/resources/json/datasource.H.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java new file mode 100644 index 0000000..cf5d712 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java @@ -0,0 +1,119 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class H { + + private H() {} + + @Value + public static class Request { + + @NonNull + String datasourceUUID; + int candleIndex; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + public Request(final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Request)) { + return false; + } else { + final Request request = (Request) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + String value; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + public Result(final @JsonProperty("value") String value) { + this.value = value; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(value, result.value); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(value); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java new file mode 100644 index 0000000..7353709 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceHRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final H.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.H"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 6a9a1ca..3b94107 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -5,6 +5,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -85,5 +86,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); + super.addSerializer(H.Request.class, new DatasourceHRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java new file mode 100644 index 0000000..626f0a9 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class HJsonSerdeTest { + + private static ObjectMapper sut; + + private static H.Request requestObj; + private static H.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new H.Request("1", 2); + + resultObj = new H.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.H.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.H.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final H.Result actualResultObj = sut.readValue(resultJson, H.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.H.request.json b/src/test/resources/json/datasource.H.request.json new file mode 100644 index 0000000..abffe14 --- /dev/null +++ b/src/test/resources/json/datasource.H.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.H", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.H.result.json b/src/test/resources/json/datasource.H.result.json new file mode 100644 index 0000000..405767c --- /dev/null +++ b/src/test/resources/json/datasource.H.result.json @@ -0,0 +1,3 @@ +{ + "value" : "1" +} \ No newline at end of file From 1a0f02adaaf5b569ccec9719584ce8c47c3f209c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 27 Aug 2018 01:10:47 +0300 Subject: [PATCH 113/549] Added request-result pairs for datasource.L. --- .../lua/rpc/api/messages/datasource/L.java | 119 ++++++++++++++++++ .../DatasourceLRequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 2 + .../messages/datasource/LJsonSerdeTest.java | 54 ++++++++ .../resources/json/datasource.L.request.json | 7 ++ .../resources/json/datasource.L.result.json | 3 + 6 files changed, 205 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.L.request.json create mode 100644 src/test/resources/json/datasource.L.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java new file mode 100644 index 0000000..62ef3e7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java @@ -0,0 +1,119 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class L { + + private L() {} + + @Value + public static class Request { + + @NonNull + String datasourceUUID; + int candleIndex; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + public Request(final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Request)) { + return false; + } else { + final Request request = (Request) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + String value; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + public Result(final @JsonProperty("value") String value) { + this.value = value; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(value, result.value); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(value); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java new file mode 100644 index 0000000..8556f8c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceLRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final L.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.L"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 3b94107..1dbd3e6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -6,6 +6,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -87,5 +88,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); super.addSerializer(H.Request.class, new DatasourceHRequestJsonSerializer()); + super.addSerializer(L.Request.class, new DatasourceLRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java new file mode 100644 index 0000000..feee3a2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class LJsonSerdeTest { + + private static ObjectMapper sut; + + private static L.Request requestObj; + private static L.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new L.Request("1", 2); + + resultObj = new L.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.L.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.L.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final L.Result actualResultObj = sut.readValue(resultJson, L.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.L.request.json b/src/test/resources/json/datasource.L.request.json new file mode 100644 index 0000000..1d7fad0 --- /dev/null +++ b/src/test/resources/json/datasource.L.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.L", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.L.result.json b/src/test/resources/json/datasource.L.result.json new file mode 100644 index 0000000..405767c --- /dev/null +++ b/src/test/resources/json/datasource.L.result.json @@ -0,0 +1,3 @@ +{ + "value" : "1" +} \ No newline at end of file From d6fb1a99825139b9d36554545c7de92bfd197e3a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 27 Aug 2018 01:13:18 +0300 Subject: [PATCH 114/549] Added request-result pairs for datasource.O. --- .../lua/rpc/api/messages/datasource/O.java | 119 ++++++++++++++++++ .../DatasourceORequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 8 +- .../messages/datasource/OJsonSerdeTest.java | 54 ++++++++ .../resources/json/datasource.O.request.json | 7 ++ .../resources/json/datasource.O.result.json | 3 + 6 files changed, 206 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.O.request.json create mode 100644 src/test/resources/json/datasource.O.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java new file mode 100644 index 0000000..de591f1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java @@ -0,0 +1,119 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class O { + + private O() {} + + @Value + public static class Request { + + @NonNull + String datasourceUUID; + int candleIndex; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + public Request(final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Request)) { + return false; + } else { + final Request request = (Request) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + String value; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + public Result(final @JsonProperty("value") String value) { + this.value = value; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(value, result.value); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(value); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java new file mode 100644 index 0000000..3c03722 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceORequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final O.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.O"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 1dbd3e6..e51a91e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -3,10 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.fasterxml.jackson.databind.module.SimpleSerializers; @@ -86,8 +83,9 @@ public QluaJsonJacksonSerializers() { super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); - super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); + super.addSerializer(O.Request.class, new DatasourceORequestJsonSerializer()); super.addSerializer(H.Request.class, new DatasourceHRequestJsonSerializer()); super.addSerializer(L.Request.class, new DatasourceLRequestJsonSerializer()); + super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java new file mode 100644 index 0000000..6ef7229 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class OJsonSerdeTest { + + private static ObjectMapper sut; + + private static O.Request requestObj; + private static O.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new O.Request("1", 2); + + resultObj = new O.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.O.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.O.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final O.Result actualResultObj = sut.readValue(resultJson, O.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.O.request.json b/src/test/resources/json/datasource.O.request.json new file mode 100644 index 0000000..342bb66 --- /dev/null +++ b/src/test/resources/json/datasource.O.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.O", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.O.result.json b/src/test/resources/json/datasource.O.result.json new file mode 100644 index 0000000..405767c --- /dev/null +++ b/src/test/resources/json/datasource.O.result.json @@ -0,0 +1,3 @@ +{ + "value" : "1" +} \ No newline at end of file From f35abfe8f9d9130c309396c60d4bd54d004cee59 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 27 Aug 2018 01:15:33 +0300 Subject: [PATCH 115/549] Added request-result pairs for datasource.V. --- .../lua/rpc/api/messages/datasource/V.java | 119 ++++++++++++++++++ .../DatasourceVRequestJsonSerializer.java | 20 +++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/datasource/VJsonSerdeTest.java | 54 ++++++++ .../resources/json/datasource.V.request.json | 7 ++ .../resources/json/datasource.V.result.json | 3 + 6 files changed, 204 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.V.request.json create mode 100644 src/test/resources/json/datasource.V.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java new file mode 100644 index 0000000..3522794 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java @@ -0,0 +1,119 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.experimental.NonFinal; + +import java.util.Objects; + +public final class V { + + private V() {} + + @Value + public static class Request { + + @NonNull + String datasourceUUID; + int candleIndex; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + public Request(final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Request)) { + return false; + } else { + final Request request = (Request) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + + return asString; + } + } + + @Value + public static class Result { + + String value; + + private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; + private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + + @JsonCreator + public Result(final @JsonProperty("value") String value) { + this.value = value; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if ( !(o instanceof Result) ) { + return false; + } else { + final Result result = (Result) o; + return Objects.equals(value, result.value); + } + } + + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(value); + } + + return hashCode; + } + + @Override + public String toString() { + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + + return asString; + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java new file mode 100644 index 0000000..3c9623d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceVRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final V.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.V"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index e51a91e..ea261ba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -87,5 +87,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(H.Request.class, new DatasourceHRequestJsonSerializer()); super.addSerializer(L.Request.class, new DatasourceLRequestJsonSerializer()); super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); + super.addSerializer(V.Request.class, new DatasourceVRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java new file mode 100644 index 0000000..2e60155 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class VJsonSerdeTest { + + private static ObjectMapper sut; + + private static V.Request requestObj; + private static V.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new V.Request("1", 2); + + resultObj = new V.Result("1"); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.V.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.V.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final V.Result actualResultObj = sut.readValue(resultJson, V.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.V.request.json b/src/test/resources/json/datasource.V.request.json new file mode 100644 index 0000000..39871ce --- /dev/null +++ b/src/test/resources/json/datasource.V.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.V", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.V.result.json b/src/test/resources/json/datasource.V.result.json new file mode 100644 index 0000000..405767c --- /dev/null +++ b/src/test/resources/json/datasource.V.result.json @@ -0,0 +1,3 @@ +{ + "value" : "1" +} \ No newline at end of file From 53e53de3152d41ce197424356e85cda6e218db97 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 27 Aug 2018 01:18:45 +0300 Subject: [PATCH 116/549] Added a null-ness precondition. --- .../com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java index 4e76fd9..ab6cadb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; +import lombok.NonNull; import lombok.Value; public final class DelAllLabels { @@ -10,7 +11,7 @@ private DelAllLabels() {} @Value public static class Request { - String chartTag; + @NonNull String chartTag; @Override public String toString() { From 8b218f104221c607f0035624db8479e3b3f72e63 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 22:20:37 +0300 Subject: [PATCH 117/549] Added request-result pairs for datasource.Close. --- .../rpc/api/messages/datasource/Close.java | 43 +++++++++++++++ .../DatasourceCloseRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../datasource/CloseJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/datasource.Close.request.json | 6 +++ .../json/datasource.Close.result.json | 3 ++ 6 files changed, 126 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.Close.request.json create mode 100644 src/test/resources/json/datasource.Close.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java new file mode 100644 index 0000000..8bb86a4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class Close { + + private Close() {} + + @Value + public static class Request { + + @NonNull String datasourceUUID; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java new file mode 100644 index 0000000..2490f33 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceCloseRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Close.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.Close"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index ea261ba..f98cf63 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -88,5 +88,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(L.Request.class, new DatasourceLRequestJsonSerializer()); super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); super.addSerializer(V.Request.class, new DatasourceVRequestJsonSerializer()); + super.addSerializer(Close.Request.class, new DatasourceCloseRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java new file mode 100644 index 0000000..a37a8c3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class CloseJsonSerdeTest { + + private static ObjectMapper sut; + + private static Close.Request requestObj; + private static Close.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new Close.Request("1"); + + resultObj = new Close.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.Close.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.Close.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Close.Result actualResultObj = sut.readValue(resultJson, Close.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.Close.request.json b/src/test/resources/json/datasource.Close.request.json new file mode 100644 index 0000000..0b6c965 --- /dev/null +++ b/src/test/resources/json/datasource.Close.request.json @@ -0,0 +1,6 @@ +{ + "method" : "datasource.Close", + "args" : { + "datasource_uuid" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.Close.result.json b/src/test/resources/json/datasource.Close.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource.Close.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From 09a9e57a4b74df6b60f44af07587feba2a422f22 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 22:24:21 +0300 Subject: [PATCH 118/549] Added request-result pairs for datasource.SetEmptyCallback. --- .../lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index f98cf63..60d79aa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -89,5 +89,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); super.addSerializer(V.Request.class, new DatasourceVRequestJsonSerializer()); super.addSerializer(Close.Request.class, new DatasourceCloseRequestJsonSerializer()); + super.addSerializer(SetEmptyCallback.Request.class, new DatasourceSetEmptyCallbackRequestJsonSerializer()); } } From 5fd4924750d11fac20ad2717687854638f0de9b3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 22:37:51 +0300 Subject: [PATCH 119/549] Added request-result pairs for datasource.SetUpdateCallback. --- .../messages/datasource/SetEmptyCallback.java | 43 ++++++++++++++ .../datasource/SetUpdateCallback.java | 52 +++++++++++++++++ ...SetEmptyCallbackRequestJsonSerializer.java | 19 +++++++ ...etUpdateCallbackRequestJsonSerializer.java | 20 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../SetEmptyCallbackJsonSerdeTest.java | 54 ++++++++++++++++++ .../SetUpdateCallbackJsonSerdeTest.java | 57 +++++++++++++++++++ .../datasource.SetEmptyCallback.request.json | 6 ++ .../datasource.SetEmptyCallback.result.json | 3 + .../datasource.SetUpdateCallback.request.json | 7 +++ .../datasource.SetUpdateCallback.result.json | 3 + 11 files changed, 265 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.SetEmptyCallback.request.json create mode 100644 src/test/resources/json/datasource.SetEmptyCallback.result.json create mode 100644 src/test/resources/json/datasource.SetUpdateCallback.request.json create mode 100644 src/test/resources/json/datasource.SetUpdateCallback.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java new file mode 100644 index 0000000..661ea62 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class SetEmptyCallback { + + private SetEmptyCallback() {} + + @Value + public static class Request { + + @NonNull String datasourceUUID; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java new file mode 100644 index 0000000..97a7bc5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class SetUpdateCallback { + + private SetUpdateCallback() {} + + @Value + public static class Request { + + @NonNull String datasourceUUID; + @NonNull String fCbDef; + + @Builder + private Request(final String datasourceUUID, final String fCbDef) { + this.datasourceUUID = datasourceUUID; + this.fCbDef = fCbDef; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("f_cb_def", fCbDef) + .toString(); + } + } + + @Value + public static class Result { + + boolean result; + + @JsonCreator + public Result(final @JsonProperty(value = "result", required = true) boolean result) { + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("result", result) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java new file mode 100644 index 0000000..32d9d5f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceSetEmptyCallbackRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetEmptyCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.SetEmptyCallback"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java new file mode 100644 index 0000000..fbe263d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceSetUpdateCallbackRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final SetUpdateCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.SetUpdateCallback"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeStringField("f_cb_def", value.getFCbDef()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 60d79aa..be71c46 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -90,5 +90,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(V.Request.class, new DatasourceVRequestJsonSerializer()); super.addSerializer(Close.Request.class, new DatasourceCloseRequestJsonSerializer()); super.addSerializer(SetEmptyCallback.Request.class, new DatasourceSetEmptyCallbackRequestJsonSerializer()); + super.addSerializer(SetUpdateCallback.Request.class, new DatasourceSetUpdateCallbackRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java new file mode 100644 index 0000000..c5eeff4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetEmptyCallbackJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetEmptyCallback.Request requestObj; + private static SetEmptyCallback.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new SetEmptyCallback.Request("1"); + + resultObj = new SetEmptyCallback.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.SetEmptyCallback.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.SetEmptyCallback.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetEmptyCallback.Result actualResultObj = sut.readValue(resultJson, SetEmptyCallback.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java new file mode 100644 index 0000000..b6eb378 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SetUpdateCallbackJsonSerdeTest { + + private static ObjectMapper sut; + + private static SetUpdateCallback.Request requestObj; + private static SetUpdateCallback.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = SetUpdateCallback.Request.builder() + .datasourceUUID("1") + .fCbDef("2") + .build(); + + resultObj = new SetUpdateCallback.Result(true); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.SetUpdateCallback.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.SetUpdateCallback.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final SetUpdateCallback.Result actualResultObj = sut.readValue(resultJson, SetUpdateCallback.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.SetEmptyCallback.request.json b/src/test/resources/json/datasource.SetEmptyCallback.request.json new file mode 100644 index 0000000..ea9ca67 --- /dev/null +++ b/src/test/resources/json/datasource.SetEmptyCallback.request.json @@ -0,0 +1,6 @@ +{ + "method" : "datasource.SetEmptyCallback", + "args" : { + "datasource_uuid" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetEmptyCallback.result.json b/src/test/resources/json/datasource.SetEmptyCallback.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource.SetEmptyCallback.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetUpdateCallback.request.json b/src/test/resources/json/datasource.SetUpdateCallback.request.json new file mode 100644 index 0000000..33c0fd2 --- /dev/null +++ b/src/test/resources/json/datasource.SetUpdateCallback.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.SetUpdateCallback", + "args" : { + "datasource_uuid" : "1", + "f_cb_def" : "2" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetUpdateCallback.result.json b/src/test/resources/json/datasource.SetUpdateCallback.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource.SetUpdateCallback.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file From cc626245ab1d8771ba5c4d23e699981a75acc6e5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 22:41:17 +0300 Subject: [PATCH 120/549] Added request-result pairs for datasource.Size. --- .../lua/rpc/api/messages/datasource/Size.java | 44 +++++++++++++++ .../DatasourceSizeRequestJsonSerializer.java | 19 +++++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../datasource/SizeJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/datasource.Size.request.json | 6 +++ .../json/datasource.Size.result.json | 3 ++ 6 files changed, 127 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.Size.request.json create mode 100644 src/test/resources/json/datasource.Size.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java new file mode 100644 index 0000000..5ced1f8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; + +public final class Size { + + private Size() {} + + @Value + public static class Request { + + @NonNull + String datasourceUUID; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .toString(); + } + } + + @Value + public static class Result { + + int value; + + @JsonCreator + public Result(final @JsonProperty(value = "value", required = true) int value) { + this.value = value; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("value", value) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java new file mode 100644 index 0000000..a7319e9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java @@ -0,0 +1,19 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceSizeRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final Size.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.Size"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index be71c46..2688eaf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -91,5 +91,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Close.Request.class, new DatasourceCloseRequestJsonSerializer()); super.addSerializer(SetEmptyCallback.Request.class, new DatasourceSetEmptyCallbackRequestJsonSerializer()); super.addSerializer(SetUpdateCallback.Request.class, new DatasourceSetUpdateCallbackRequestJsonSerializer()); + super.addSerializer(Size.Request.class, new DatasourceSizeRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java new file mode 100644 index 0000000..781a663 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class SizeJsonSerdeTest { + + private static ObjectMapper sut; + + private static Size.Request requestObj; + private static Size.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new Size.Request("1"); + + resultObj = new Size.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.Size.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.Size.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final Size.Result actualResultObj = sut.readValue(resultJson, Size.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.Size.request.json b/src/test/resources/json/datasource.Size.request.json new file mode 100644 index 0000000..9dc55af --- /dev/null +++ b/src/test/resources/json/datasource.Size.request.json @@ -0,0 +1,6 @@ +{ + "method" : "datasource.Size", + "args" : { + "datasource_uuid" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.Size.result.json b/src/test/resources/json/datasource.Size.result.json new file mode 100644 index 0000000..0676aa8 --- /dev/null +++ b/src/test/resources/json/datasource.Size.result.json @@ -0,0 +1,3 @@ +{ + "value" : 1 +} \ No newline at end of file From c5bb297f92bf9dda3f96dc120e4b66fe2f6ca5c2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 22:48:39 +0300 Subject: [PATCH 121/549] Added request-result pairs for datasource.T. --- .../lua/rpc/api/messages/datasource/T.java | 80 +++++++++++++++++++ .../DatasourceTRequestJsonSerializer.java | 20 +++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/datasource/TJsonSerdeTest.java | 64 +++++++++++++++ .../resources/json/datasource.T.request.json | 7 ++ .../resources/json/datasource.T.result.json | 11 +++ 6 files changed, 183 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java create mode 100644 src/test/resources/json/datasource.T.request.json create mode 100644 src/test/resources/json/datasource.T.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java new file mode 100644 index 0000000..dc1728a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java @@ -0,0 +1,80 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class T { + + private T() {} + + @Value + public static class Request { + + @NonNull String datasourceUUID; + int candleIndex; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasource_uuid", datasourceUUID) + .add("candle_index", candleIndex) + .toString(); + } + } + + @Value + public static class Result { + + int year; + int month; + int day; + int weekDay; + int hour; + int min; + int sec; + int ms; + int count; + + @Builder + @JsonCreator + private Result(final @JsonProperty(value = "year", required = true) int year, + final @JsonProperty(value = "month", required = true) int month, + final @JsonProperty(value = "day", required = true) int day, + final @JsonProperty(value = "week_day", required = true) int weekDay, + final @JsonProperty(value = "hour", required = true) int hour, + final @JsonProperty(value = "min", required = true) int min, + final @JsonProperty(value = "sec", required = true) int sec, + final @JsonProperty(value = "ms", required = true) int ms, + final @JsonProperty(value = "count", required = true) int count) { + + this.year = year; + this.month = month; + this.day = day; + this.weekDay = weekDay; + this.hour = hour; + this.min = min; + this.sec = sec; + this.ms = ms; + this.count = count; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("year", year) + .add("month", month) + .add("day", day) + .add("week_day", weekDay) + .add("hour", hour) + .add("min", min) + .add("sec", sec) + .add("ms", ms) + .add("count", count) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java new file mode 100644 index 0000000..0821b6a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java @@ -0,0 +1,20 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class DatasourceTRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final T.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.T"); + gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); + gen.writeNumberField("candle_index", value.getCandleIndex()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 2688eaf..326cdec 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -92,5 +92,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetEmptyCallback.Request.class, new DatasourceSetEmptyCallbackRequestJsonSerializer()); super.addSerializer(SetUpdateCallback.Request.class, new DatasourceSetUpdateCallbackRequestJsonSerializer()); super.addSerializer(Size.Request.class, new DatasourceSizeRequestJsonSerializer()); + super.addSerializer(T.Request.class, new DatasourceTRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java new file mode 100644 index 0000000..91f3d75 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.api.messages.datasource; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class TJsonSerdeTest { + + private static ObjectMapper sut; + + private static T.Request requestObj; + private static T.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new T.Request("1", 2); + + resultObj = T.Result.builder() + .year(1) + .month(2) + .day(3) + .weekDay(4) + .hour(5) + .min(6) + .sec(7) + .ms(8) + .count(9) + .build(); + + requestJson = + Resources.toString(Resources.getResource("json/datasource.T.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/datasource.T.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final T.Result actualResultObj = sut.readValue(resultJson, T.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/datasource.T.request.json b/src/test/resources/json/datasource.T.request.json new file mode 100644 index 0000000..f29041c --- /dev/null +++ b/src/test/resources/json/datasource.T.request.json @@ -0,0 +1,7 @@ +{ + "method" : "datasource.T", + "args" : { + "datasource_uuid" : "1", + "candle_index" : 2 + } +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.T.result.json b/src/test/resources/json/datasource.T.result.json new file mode 100644 index 0000000..8b1a0ee --- /dev/null +++ b/src/test/resources/json/datasource.T.result.json @@ -0,0 +1,11 @@ +{ + "year" : 1, + "month" : 2, + "day" : 3, + "week_day" : 4, + "hour" : 5, + "min" : 6, + "sec" : 7, + "ms" : 8, + "count" : 9 +} \ No newline at end of file From 9f05023dbbb633c759cee08235b7f07886037216 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:20:01 +0300 Subject: [PATCH 122/549] Added request-result pairs for datasource.GetParamEx. Uncommented and fixed methods in QluaRpcClient and ZmqTcpQluaRpcClientImpl. --- .../quik/lua/rpc/api/QluaRpcClient.java | 750 ++++++------- .../quik/lua/rpc/api/messages/GetParamEx.java | 86 ++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 991 +++++------------- .../GetParamExRequestJsonSerializer.java | 21 + .../jackson/QluaJsonJacksonSerializers.java | 1 + .../api/messages/GetParamExJsonSerdeTest.java | 65 ++ .../resources/json/getParamEx.request.json | 8 + .../resources/json/getParamEx.result.json | 8 + 8 files changed, 841 insertions(+), 1089 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java create mode 100644 src/test/resources/json/getParamEx.request.json create mode 100644 src/test/resources/json/getParamEx.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 55aa539..5be264b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.api; import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.security.Securable; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.io.Gateway; @@ -180,55 +182,55 @@ public interface QluaRpcClient extends Gateway, Securable { */ GetItem.Result qlua_getItem(GetItem.Request request); -// /** -// * -// * @param args -// * @return -// */ -// GetLabelParams.Result qlua_GetLabelParams(GetLabelParams.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetLinesCount.Result qlua_getLinesCount(GetLinesCount.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetMoney.Result qlua_getMoney(GetMoney.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetMoneyEx.Result qlua_getMoneyEx(GetMoneyEx.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetNumberOf.Result qlua_getNumberOf(GetNumberOf.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetNumCandles.Result qlua_getNumCandles(GetNumCandles.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request args); -// + /** + * + * @param request + * @return + */ + GetLabelParams.Result qlua_GetLabelParams(GetLabelParams.Request request); + + /** + * + * @param request + * @return + */ + GetLinesCount.Result qlua_getLinesCount(GetLinesCount.Request request); + + /** + * + * @param request + * @return + */ + GetMoney.Result qlua_getMoney(GetMoney.Request request); + + /** + * + * @param request + * @return + */ + GetMoneyEx.Result qlua_getMoneyEx(GetMoneyEx.Request request); + + /** + * + * @param request + * @return + */ + GetNumberOf.Result qlua_getNumberOf(GetNumberOf.Request request); + + /** + * + * @param request + * @return + */ + GetNumCandles.Result qlua_getNumCandles(GetNumCandles.Request request); + + /** + * + * @param request + * @return + */ + GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request request); + // /** // * // * @param args @@ -242,331 +244,331 @@ public interface QluaRpcClient extends Gateway, Securable { // * @return // */ // GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetPortfolioInfo.Result qlua_getPortfolioInfo(GetPortfolioInfo.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Request args); -// -// /** -// * -// * @return -// */ -// GetScriptPath.Result qlua_getScriptPath(); -// -// /** -// * -// * @param args -// * @return -// */ -// GetSecurityInfo.Result qlua_getSecurityInfo(GetSecurityInfo.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetTableSize.Result qlua_GetTableSize(GetTableSize.Request args); -// -// /** -// * -// * @return -// */ -// GetTradeDate.Result qlua_getTradeDate(); -// -// /** -// * -// * @param args -// * @return -// */ -// GetWindowCaption.Result qlua_GetWindowCaption(GetWindowCaption.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetWindowRect.Result qlua_GetWindowRect(GetWindowRect.Request args); -// -// /** -// * -// * @return -// */ -// GetWorkingFolder.Result qlua_getWorkingFolder(); -// -// /** -// * -// * @param args -// * @return -// */ -// Highlight.Result qlua_Highlight(Highlight.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// InsertRow.Result qlua_InsertRow(InsertRow.Request args); -// -// /** -// * -// * @return -// */ -// IsConnected.Result qlua_isConnected(); -// -// /** -// * -// * @param args -// * @return -// */ -// IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevelIIQuotes.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// IsWindowClosed.Result qlua_IsWindowClosed(IsWindowClosed.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Message.Result qlua_message(Message.Request request); -// -// /** -// * -// * @param args -// * @return -// */ -// ParamRequest.Result qlua_ParamRequest(ParamRequest.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// void qlua_PrintDbgStr(PrintDbgStr.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// RGB.Result qlua_RGB(RGB.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SearchItems.Result qlua_SearchItems(SearchItems.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SendTransaction.Result qlua_sendTransaction(SendTransaction.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetCell.Result qlua_SetCell(SetCell.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetColor.Result qlua_SetColor(SetColor.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetLabelParams.Result qlua_SetLabelParams(SetLabelParams.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(SetTableNotificationCallback.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetWindowCaption.Result qlua_SetWindowCaption(SetWindowCaption.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetWindowPos.Result qlua_SetWindowPos(SetWindowPos.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Sleep.Result qlua_sleep(Sleep.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(SubscribeLevelIIQuotes.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevelIIQuotes.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// BAnd.Result bit_band(BAnd.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Bnot.Result bit_bnot(Bnot.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// BOr.Result bit_bor(BOr.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Bxor.Result bit_bxor(Bxor.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Tohex.Result bit_tohex(Tohex.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// C.Result datasource_C(C.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Close.Result datasource_Close(Close.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// H.Result datasource_H(H.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// L.Result datasource_L(L.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// O.Result datasource_O(O.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetEmptyCallback.Result datasource_SetEmptyCallback(SetEmptyCallback.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// SetUpdateCallback.Result datasource_SetUpdateCallback(SetUpdateCallback.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// Size.Result datasource_Size(Size.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// T.Result datasource_T(T.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// V.Result datasource_V(V.Request args); + + /** + * + * @param request + * @return + */ + GetPortfolioInfo.Result qlua_getPortfolioInfo(GetPortfolioInfo.Request request); + + /** + * + * @param request + * @return + */ + GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Request request); + + /** + * + * @param request + * @return + */ + GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Request request); + + /** + * + * @return + */ + GetScriptPath.Result qlua_getScriptPath(); + + /** + * + * @param request + * @return + */ + GetSecurityInfo.Result qlua_getSecurityInfo(GetSecurityInfo.Request request); + + /** + * + * @param request + * @return + */ + GetTableSize.Result qlua_GetTableSize(GetTableSize.Request request); + + /** + * + * @return + */ + GetTradeDate.Result qlua_getTradeDate(); + + /** + * + * @param request + * @return + */ + GetWindowCaption.Result qlua_GetWindowCaption(GetWindowCaption.Request request); + + /** + * + * @param request + * @return + */ + GetWindowRect.Result qlua_GetWindowRect(GetWindowRect.Request request); + + /** + * + * @return + */ + GetWorkingFolder.Result qlua_getWorkingFolder(); + + /** + * + * @param request + * @return + */ + Highlight.Result qlua_Highlight(Highlight.Request request); + + /** + * + * @param request + * @return + */ + InsertRow.Result qlua_InsertRow(InsertRow.Request request); + + /** + * + * @return + */ + IsConnected.Result qlua_isConnected(); + + /** + * + * @param request + * @return + */ + IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevel2Quotes.Request request); + + /** + * + * @param request + * @return + */ + IsWindowClosed.Result qlua_IsWindowClosed(IsWindowClosed.Request request); + + /** + * + * @param request + * @return + */ + Message.Result qlua_message(Message.Request request); + + /** + * + * @param request + * @return + */ + ParamRequest.Result qlua_ParamRequest(ParamRequest.Request request); + + /** + * + * @param request + * @return + */ + PrintDbgStr.Result qlua_PrintDbgStr(PrintDbgStr.Request request); + + /** + * + * @param request + * @return + */ + RGB.Result qlua_RGB(RGB.Request request); + + /** + * + * @param request + * @return + */ + SearchItems.Result qlua_SearchItems(SearchItems.Request request); + + /** + * + * @param request + * @return + */ + SendTransaction.Result qlua_sendTransaction(SendTransaction.Request request); + + /** + * + * @param request + * @return + */ + SetCell.Result qlua_SetCell(SetCell.Request request); + + /** + * + * @param request + * @return + */ + SetColor.Result qlua_SetColor(SetColor.Request request); + + /** + * + * @param request + * @return + */ + SetLabelParams.Result qlua_SetLabelParams(SetLabelParams.Request request); + + /** + * + * @param request + * @return + */ + SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Request request); + + /** + * + * @param request + * @return + */ + SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(SetTableNotificationCallback.Request request); + + /** + * + * @param request + * @return + */ + SetWindowCaption.Result qlua_SetWindowCaption(SetWindowCaption.Request request); + + /** + * + * @param request + * @return + */ + SetWindowPos.Result qlua_SetWindowPos(SetWindowPos.Request request); + + /** + * + * @param request + * @return + */ + Sleep.Result qlua_sleep(Sleep.Request request); + + /** + * + * @param request + * @return + */ + SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(SubscribeLevel2Quotes.Request request); + + /** + * + * @param request + * @return + */ + UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevel2Quotes.Request request); + + /** + * + * @param request + * @return + */ + BAnd.Result bit_band(BAnd.Request request); + + /** + * + * @param request + * @return + */ + BNot.Result bit_bnot(BNot.Request request); + + /** + * + * @param request + * @return + */ + BOr.Result bit_bor(BOr.Request request); + + /** + * + * @param request + * @return + */ + BXor.Result bit_bxor(BXor.Request request); + + /** + * + * @param request + * @return + */ + ToHex.Result bit_tohex(ToHex.Request request); + + /** + * + * @param request + * @return + */ + C.Result datasource_C(C.Request request); + + /** + * + * @param request + * @return + */ + Close.Result datasource_Close(Close.Request request); + + /** + * + * @param request + * @return + */ + CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Request request); + + /** + * + * @param request + * @return + */ + H.Result datasource_H(H.Request request); + + /** + * + * @param request + * @return + */ + L.Result datasource_L(L.Request request); + + /** + * + * @param request + * @return + */ + O.Result datasource_O(O.Request request); + + /** + * + * @param request + * @return + */ + SetEmptyCallback.Result datasource_SetEmptyCallback(SetEmptyCallback.Request request); + + /** + * + * @param request + * @return + */ + SetUpdateCallback.Result datasource_SetUpdateCallback(SetUpdateCallback.Request request); + + /** + * + * @param request + * @return + */ + Size.Result datasource_Size(Size.Request request); + + /** + * + * @param request + * @return + */ + T.Result datasource_T(T.Request request); + + /** + * + * @param request + * @return + */ + V.Result datasource_V(V.Request request); public final class RpcClientException extends RuntimeException { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java new file mode 100644 index 0000000..65f1892 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetParamEx { + + private GetParamEx() {} + + @Value + public static class ParamEx { + + String paramType; + String paramValue; + String paramImage; + String result; + + @Builder + @JsonCreator + private ParamEx(final @JsonProperty("param_type") String paramType, + final @JsonProperty("param_value") String paramValue, + final @JsonProperty("param_image") String paramImage, + final @JsonProperty("result") String result) { + this.paramType = paramType; + this.paramValue = paramValue; + this.paramImage = paramImage; + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("param_type", paramType) + .add("param_value", paramValue) + .add("param_image", paramImage) + .add("result", result) + .toString(); + } + } + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + @NonNull String paramName; + + @Builder + private Request(final String classCode, final String secCode, final String paramName) { + this.classCode = classCode; + this.secCode = secCode; + this.paramName = paramName; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("param_name", paramName) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull ParamEx paramEx; + + @JsonCreator + public Result(final @JsonProperty(value = "param_ex", required = true) ParamEx paramEx) { + this.paramEx = paramEx; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("param_ex", paramEx) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 3433340..43f9eeb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.api.zmq.impl; import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; @@ -277,727 +279,286 @@ public GetItem.Result qlua_getItem(final GetItem.Request request) { return makeRPC(request, GetItem.Result.class); } + @Override + public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request request) { + return makeRPC(request, GetLabelParams.Result.class); + } + + @Override + public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request request) { + return makeRPC(request, GetLinesCount.Result.class); + } + + @Override + public GetMoney.Result qlua_getMoney(final GetMoney.Request request) { + return makeRPC(request, GetMoney.Result.class); + } + + @Override + public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request request) { + return makeRPC(request, GetMoneyEx.Result.class); + } + + @Override + public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request request) { + return makeRPC(request, GetNumberOf.Result.class); + } + + @Override + public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request request) { + return makeRPC(request, GetNumCandles.Result.class); + } + + @Override + public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request request) { + return makeRPC(request, GetOrderByNumber.Result.class); + } + // @Override -// public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LABEL_PARAMS, args); -// return GetLabelParams.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_LINES_COUNT, args); -// return GetLinesCount.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetMoney.Result qlua_getMoney(final GetMoney.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY, args); -// return GetMoney.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_MONEY_EX, args); -// return GetMoneyEx.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUMBER_OF, args); -// return GetNumberOf.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_NUM_CANDLES, args); -// return GetNumCandles.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_ORDER_BY_NUMBER, args); -// return GetOrderByNumber.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX, args); -// return GetParamEx.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PARAM_EX_2, args); -// return GetParamEx2.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO, args); -// return GetPortfolioInfo.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_PORTFOLIO_INFO_EX, args); -// return GetPortfolioInfoEx.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_QUOTE_LEVEL2, args); -// return GetQuoteLevel2.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetScriptPath.Result qlua_getScriptPath() { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SCRIPT_PATH); -// return GetScriptPath.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_SECURITY_INFO, args); -// return GetSecurityInfo.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TABLE_SIZE, args); -// return GetTableSize.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetTradeDate.Result qlua_getTradeDate() { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_TRADE_DATE); -// return GetTradeDate.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_CAPTION, args); -// return GetWindowCaption.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WINDOW_RECT, args); -// return GetWindowRect.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public GetWorkingFolder.Result qlua_getWorkingFolder() { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.GET_WORKING_FOLDER); -// return GetWorkingFolder.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Highlight.Result qlua_Highlight(final Highlight.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.HIGHLIGHT, args); -// return Highlight.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public InsertRow.Result qlua_InsertRow(final InsertRow.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.INSERT_ROW, args); -// return InsertRow.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public IsConnected.Result qlua_isConnected() { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_CONNECTED); -// return IsConnected.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public IsSubscribedLevelIIQuotes.Result qlua_IsSubscribedLevelIIQuotes( -// final IsSubscribedLevelIIQuotes.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES, args); -// return IsSubscribedLevelIIQuotes.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.IS_WINDOW_CLOSED, args); -// return IsWindowClosed.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Message.Result qlua_message(final Message.Request request) { -// return makeRPC(request, Message.Result.class); -// } -// -// @Override -// public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.PARAM_REQUEST, args); -// return ParamRequest.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public void qlua_PrintDbgStr(final PrintDbgStr.Request args) { -// -// try { -// makeRPC(RPC.ProcedureType.PRINT_DBG_STR, args); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public RGB.Result qlua_RGB(final RGB.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.RGB, args); -// return RGB.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SearchItems.Result qlua_SearchItems(final SearchItems.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEARCH_ITEMS, args); -// return SearchItems.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SEND_TRANSACTION, args); -// return SendTransaction.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetCell.Result qlua_SetCell(final SetCell.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_CELL, args); -// return SetCell.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetColor.Result qlua_SetColor(final SetColor.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_COLOR, args); -// return SetColor.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_LABEL_PARAMS, args); -// return SetLabelParams.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_SELECTED_ROW, args); -// return SetSelectedRow.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback( -// final SetTableNotificationCallback.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_TABLE_NOTIFICATION_CALLBACK, args); -// return SetTableNotificationCallback.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_CAPTION, args); -// return SetWindowCaption.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SET_WINDOW_POS, args); -// return SetWindowPos.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Sleep.Result qlua_sleep(final Sleep.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SLEEP, args); -// return Sleep.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SubscribeLevelIIQuotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevelIIQuotes.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.SUBSCRIBE_LEVEL_II_QUOTES, args); -// return SubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public UnsubscribeLevelIIQuotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevelIIQuotes.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.UNSUBSCRIBE_LEVEL_II_QUOTES, args); -// return UnsubscribeLevelIIQuotes.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public BAnd.Result bit_band(final BAnd.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BAND, args); -// return BAnd.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Bnot.Result bit_bnot(final Bnot.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BNOT, args); -// return Bnot.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public BOr.Result bit_bor(final BOr.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BOR, args); -// return BOr.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Bxor.Result bit_bxor(final Bxor.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_BXOR, args); -// return Bxor.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Tohex.Result bit_tohex(final Tohex.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.BIT_TOHEX, args); -// return Tohex.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public C.Result datasource_C(final C.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_C, args); -// return C.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Close.Result datasource_Close(final Close.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_CLOSE, args); -// return Close.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.CREATE_DATA_SOURCE, args); -// return CreateDataSource.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public H.Result datasource_H(final H.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_H, args); -// return H.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public L.Result datasource_L(final L.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_L, args); -// return L.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public O.Result datasource_O(final O.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_O, args); -// return O.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_EMPTY_CALLBACK, args); -// return SetEmptyCallback.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SET_UPDATE_CALLBACK, args); -// return SetUpdateCallback.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public Size.Result datasource_Size(final Size.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_SIZE, args); -// return Size.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } -// } -// -// @Override -// public T.Result datasource_T(final T.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_T, args); -// return T.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } +// public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { +// return makeRPC(request, GetParamEx.Result.class); // } // // @Override -// public V.Result datasource_V(final V.Request args) { -// -// try { -// final ByteString resultAsByteString = makeRPC(RPC.ProcedureType.DS_V, args); -// return V.Result.parseFrom(resultAsByteString); -// } catch (final RpcClientException ex) { -// throw ex; -// } catch (final Exception ex) { -// throw new RpcClientException(ex); -// } +// public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { +// return makeRPC(request, GetParamEx2.Result.class); // } + @Override + public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request request) { + return makeRPC(request, GetPortfolioInfo.Result.class); + } + + @Override + public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request request) { + return makeRPC(request, GetPortfolioInfoEx.Result.class); + } + + @Override + public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request request) { + return makeRPC(request, GetQuoteLevel2.Result.class); + } + + @Override + public GetScriptPath.Result qlua_getScriptPath() { + return makeRPC(GetScriptPath.Request.INSTANCE, GetScriptPath.Result.class); + } + + @Override + public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request request) { + return makeRPC(request, GetSecurityInfo.Result.class); + } + + @Override + public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request request) { + return makeRPC(request, GetTableSize.Result.class); + } + + @Override + public GetTradeDate.Result qlua_getTradeDate() { + return makeRPC(GetTradeDate.Request.INSTANCE, GetTradeDate.Result.class); + } + + @Override + public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request request) { + return makeRPC(request, GetWindowCaption.Result.class); + } + + @Override + public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request request) { + return makeRPC(request, GetWindowRect.Result.class); + } + + @Override + public GetWorkingFolder.Result qlua_getWorkingFolder() { + return makeRPC(GetWorkingFolder.Request.INSTANCE, GetWorkingFolder.Result.class); + } + + @Override + public Highlight.Result qlua_Highlight(final Highlight.Request request) { + return makeRPC(request, Highlight.Result.class); + } + + @Override + public InsertRow.Result qlua_InsertRow(final InsertRow.Request request) { + return makeRPC(request, InsertRow.Result.class); + } + + @Override + public IsConnected.Result qlua_isConnected() { + return makeRPC(IsConnected.Request.INSTANCE, IsConnected.Result.class); + } + + @Override + public IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(final IsSubscribedLevel2Quotes.Request request) { + return makeRPC(request, IsSubscribedLevel2Quotes.Result.class); + } + + @Override + public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request request) { + return makeRPC(request, IsWindowClosed.Result.class); + } + + @Override + public Message.Result qlua_message(final Message.Request request) { + return makeRPC(request, Message.Result.class); + } + + @Override + public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request request) { + return makeRPC(request, ParamRequest.Result.class); + } + + @Override + public PrintDbgStr.Result qlua_PrintDbgStr(final PrintDbgStr.Request request) { + return makeRPC(request, PrintDbgStr.Result.class); + } + + @Override + public RGB.Result qlua_RGB(final RGB.Request request) { + return makeRPC(request, RGB.Result.class); + } + + @Override + public SearchItems.Result qlua_SearchItems(final SearchItems.Request request) { + return makeRPC(request, SearchItems.Result.class); + } + + @Override + public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request request) { + return makeRPC(request, SendTransaction.Result.class); + } + + @Override + public SetCell.Result qlua_SetCell(final SetCell.Request request) { + return makeRPC(request, SetCell.Result.class); + } + + @Override + public SetColor.Result qlua_SetColor(final SetColor.Request request) { + return makeRPC(request, SetColor.Result.class); + } + + @Override + public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request request) { + return makeRPC(request, SetLabelParams.Result.class); + } + + @Override + public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request request) { + return makeRPC(request, SetSelectedRow.Result.class); + } + + @Override + public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(final SetTableNotificationCallback.Request request) { + return makeRPC(request, SetTableNotificationCallback.Result.class); + } + + @Override + public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request request) { + return makeRPC(request, SetWindowCaption.Result.class); + } + + @Override + public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request request) { + return makeRPC(request, SetWindowPos.Result.class); + } + + @Override + public Sleep.Result qlua_sleep(final Sleep.Request request) { + return makeRPC(request, Sleep.Result.class); + } + + @Override + public SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevel2Quotes.Request request) { + return makeRPC(request, SubscribeLevel2Quotes.Result.class); + } + + @Override + public UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevel2Quotes.Request request) { + return makeRPC(request, UnsubscribeLevel2Quotes.Result.class); + } + + @Override + public BAnd.Result bit_band(final BAnd.Request request) { + return makeRPC(request, BAnd.Result.class); + } + + @Override + public BNot.Result bit_bnot(final BNot.Request request) { + return makeRPC(request, BNot.Result.class); + } + + @Override + public BOr.Result bit_bor(final BOr.Request request) { + return makeRPC(request, BOr.Result.class); + } + + @Override + public BXor.Result bit_bxor(final BXor.Request request) { + return makeRPC(request, BXor.Result.class); + } + + @Override + public ToHex.Result bit_tohex(final ToHex.Request request) { + return makeRPC(request, ToHex.Result.class); + } + + @Override + public C.Result datasource_C(final C.Request request) { + return makeRPC(request, C.Result.class); + } + + @Override + public Close.Result datasource_Close(final Close.Request request) { + return makeRPC(request, Close.Result.class); + } + + @Override + public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request request) { + return makeRPC(request, CreateDataSource.Result.class); + } + + @Override + public H.Result datasource_H(final H.Request request) { + return makeRPC(request, H.Result.class); + } + + @Override + public L.Result datasource_L(final L.Request request) { + return makeRPC(request, L.Result.class); + } + + @Override + public O.Result datasource_O(final O.Request request) { + return makeRPC(request, O.Result.class); + } + + @Override + public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request request) { + return makeRPC(request, SetEmptyCallback.Result.class); + } + + @Override + public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request request) { + return makeRPC(request, SetUpdateCallback.Result.class); + } + + @Override + public Size.Result datasource_Size(final Size.Request request) { + return makeRPC(request, Size.Result.class); + } + + @Override + public T.Result datasource_T(final T.Request request) { + return makeRPC(request, T.Result.class); + } + + @Override + public V.Result datasource_V(final V.Request request) { + return makeRPC(request, V.Result.class); + } + private void checkIfOpen() { checkState(isOpened, "The connection must be open."); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java new file mode 100644 index 0000000..e2ee784 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetParamExRequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetParamEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getParamEx"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("param_name", value.getParamName()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index 326cdec..de0beac 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -93,5 +93,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(SetUpdateCallback.Request.class, new DatasourceSetUpdateCallbackRequestJsonSerializer()); super.addSerializer(Size.Request.class, new DatasourceSizeRequestJsonSerializer()); super.addSerializer(T.Request.class, new DatasourceTRequestJsonSerializer()); + super.addSerializer(GetParamEx.Request.class, new GetParamExRequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java new file mode 100644 index 0000000..6156139 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetParamExJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetParamEx.Request requestObj; + private static GetParamEx.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetParamEx.Request.builder() + .classCode("1") + .secCode("2") + .paramName("3") + .build(); + + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType("1") + .paramValue("2") + .paramImage("3") + .result("4") + .build(); + + resultObj = new GetParamEx.Result(paramEx); + + requestJson = + Resources.toString(Resources.getResource("json/getParamEx.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getParamEx.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetParamEx.Result actualResultObj = sut.readValue(resultJson, GetParamEx.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getParamEx.request.json b/src/test/resources/json/getParamEx.request.json new file mode 100644 index 0000000..83fc75f --- /dev/null +++ b/src/test/resources/json/getParamEx.request.json @@ -0,0 +1,8 @@ +{ + "method" : "getParamEx", + "args" : { + "class_code" : "1", + "sec_code" : "2", + "param_name" : "3" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx.result.json b/src/test/resources/json/getParamEx.result.json new file mode 100644 index 0000000..4b1e93f --- /dev/null +++ b/src/test/resources/json/getParamEx.result.json @@ -0,0 +1,8 @@ +{ + "param_ex" : { + "param_type" : "1", + "param_value" : "2", + "param_image" : "3", + "result" : "4" + } +} \ No newline at end of file From 61b273832ae7b4ffeea2d4e836a33c9e2ff054cb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:24:42 +0300 Subject: [PATCH 123/549] Added request-result pairs for GetParamEx2. --- .../lua/rpc/api/messages/GetParamEx2.java | 86 +++++++++++++++++++ .../GetParamEx2RequestJsonSerializer.java | 21 +++++ .../jackson/QluaJsonJacksonSerializers.java | 1 + .../messages/GetParamEx2JsonSerdeTest.java | 65 ++++++++++++++ .../resources/json/getParamEx2.request.json | 8 ++ .../resources/json/getParamEx2.result.json | 8 ++ 6 files changed, 189 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java create mode 100644 src/test/resources/json/getParamEx2.request.json create mode 100644 src/test/resources/json/getParamEx2.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java new file mode 100644 index 0000000..ed1c9c5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +public final class GetParamEx2 { + + private GetParamEx2() {} + + @Value + public static class ParamEx2 { + + String paramType; + String paramValue; + String paramImage; + String result; + + @Builder + @JsonCreator + private ParamEx2(final @JsonProperty("param_type") String paramType, + final @JsonProperty("param_value") String paramValue, + final @JsonProperty("param_image") String paramImage, + final @JsonProperty("result") String result) { + this.paramType = paramType; + this.paramValue = paramValue; + this.paramImage = paramImage; + this.result = result; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("param_type", paramType) + .add("param_value", paramValue) + .add("param_image", paramImage) + .add("result", result) + .toString(); + } + } + + @Value + public static class Request { + + @NonNull String classCode; + @NonNull String secCode; + @NonNull String paramName; + + @Builder + private Request(final String classCode, final String secCode, final String paramName) { + this.classCode = classCode; + this.secCode = secCode; + this.paramName = paramName; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("class_code", classCode) + .add("sec_code", secCode) + .add("param_name", paramName) + .toString(); + } + } + + @Value + public static class Result { + + @NonNull ParamEx2 paramEx; + + @JsonCreator + public Result(final @JsonProperty(value = "param_ex", required = true) ParamEx2 paramEx) { + this.paramEx = paramEx; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("param_ex", paramEx) + .toString(); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java new file mode 100644 index 0000000..dd400b3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +final class GetParamEx2RequestJsonSerializer extends JsonSerializer { + + @Override + public void serialize(final GetParamEx2.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { + + QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getParamEx2"); + gen.writeStringField("class_code", value.getClassCode()); + gen.writeStringField("sec_code", value.getSecCode()); + gen.writeStringField("param_name", value.getParamName()); + QluaJsonJacksonUtils.finishJsonGenerator(gen); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java index de0beac..1e397ed 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java @@ -94,5 +94,6 @@ public QluaJsonJacksonSerializers() { super.addSerializer(Size.Request.class, new DatasourceSizeRequestJsonSerializer()); super.addSerializer(T.Request.class, new DatasourceTRequestJsonSerializer()); super.addSerializer(GetParamEx.Request.class, new GetParamExRequestJsonSerializer()); + super.addSerializer(GetParamEx2.Request.class, new GetParamEx2RequestJsonSerializer()); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java new file mode 100644 index 0000000..13145ff --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetParamEx2JsonSerdeTest { + + private static ObjectMapper sut; + + private static GetParamEx2.Request requestObj; + private static GetParamEx2.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetParamEx2.Request.builder() + .classCode("1") + .secCode("2") + .paramName("3") + .build(); + + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType("1") + .paramValue("2") + .paramImage("3") + .result("4") + .build(); + + resultObj = new GetParamEx2.Result(paramEx); + + requestJson = + Resources.toString(Resources.getResource("json/getParamEx2.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/getParamEx2.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final GetParamEx2.Result actualResultObj = sut.readValue(resultJson, GetParamEx2.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/getParamEx2.request.json b/src/test/resources/json/getParamEx2.request.json new file mode 100644 index 0000000..a1ce906 --- /dev/null +++ b/src/test/resources/json/getParamEx2.request.json @@ -0,0 +1,8 @@ +{ + "method" : "getParamEx2", + "args" : { + "class_code" : "1", + "sec_code" : "2", + "param_name" : "3" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx2.result.json b/src/test/resources/json/getParamEx2.result.json new file mode 100644 index 0000000..4b1e93f --- /dev/null +++ b/src/test/resources/json/getParamEx2.result.json @@ -0,0 +1,8 @@ +{ + "param_ex" : { + "param_type" : "1", + "param_value" : "2", + "param_image" : "3", + "result" : "4" + } +} \ No newline at end of file From 366d595592b89212746eb9b59797572c85ff1f24 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:25:51 +0300 Subject: [PATCH 124/549] Uncommented and fixed methods in QluaRpcClient and ZmqTcpQluaRpcClientImpl for GetParamEx and GetParamEx2. --- .../quik/lua/rpc/api/QluaRpcClient.java | 26 +++++++++---------- .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 18 ++++++------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 5be264b..c175997 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -231,19 +231,19 @@ public interface QluaRpcClient extends Gateway, Securable { */ GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request request); -// /** -// * -// * @param args -// * @return -// */ -// GetParamEx.Result qlua_getParamEx(GetParamEx.Request args); -// -// /** -// * -// * @param args -// * @return -// */ -// GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request args); + /** + * + * @param request + * @return + */ + GetParamEx.Result qlua_getParamEx(GetParamEx.Request request); + + /** + * + * @param request + * @return + */ + GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 43f9eeb..bf781bb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -314,15 +314,15 @@ public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Requ return makeRPC(request, GetOrderByNumber.Result.class); } -// @Override -// public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { -// return makeRPC(request, GetParamEx.Result.class); -// } -// -// @Override -// public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { -// return makeRPC(request, GetParamEx2.Result.class); -// } + @Override + public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { + return makeRPC(request, GetParamEx.Result.class); + } + + @Override + public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { + return makeRPC(request, GetParamEx2.Result.class); + } @Override public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request request) { From e014e19c0ed01e87213a579bedf956fcc8378d85 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:30:28 +0300 Subject: [PATCH 125/549] Fixed misuses of the @NonNull annotation. --- .../rpc/api/messages/GetFuturesHolding.java | 12 ++++++--- .../lua/rpc/api/messages/GetFuturesLimit.java | 27 ++++++++++++------- .../quik/lua/rpc/api/messages/GetItem.java | 10 ++----- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index 4168b37..90d101f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import com.sun.istack.internal.NotNull; import lombok.Builder; import lombok.NonNull; import lombok.Value; @@ -48,11 +47,18 @@ public String toString() { @Value public static class Result { - FuturesClientHolding futuresHolding; + @NonNull FuturesClientHolding futuresHolding; @JsonCreator - public Result(final @JsonProperty(value = "futures_holding", required = true) @NotNull FuturesClientHolding futuresHolding) { + public Result(final @JsonProperty(value = "futures_holding", required = true) FuturesClientHolding futuresHolding) { this.futuresHolding = futuresHolding; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("futures_holding", futuresHolding) + .toString(); + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index 03b2e0e..b8b3fea 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import com.sun.istack.internal.NotNull; import lombok.Builder; +import lombok.NonNull; import lombok.Value; public final class GetFuturesLimit { @@ -15,17 +15,17 @@ private GetFuturesLimit() {} @Value public static class Request { - String firmId; - String trdAccId; + @NonNull String firmId; + @NonNull String trdAccId; int limitType; - String currCode; + @NonNull String currCode; @Builder private Request( - final @NotNull String firmId, - final @NotNull String trdAccId, - final @NotNull int limitType, - final @NotNull String currCode) { + final String firmId, + final String trdAccId, + final int limitType, + final String currCode) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -47,11 +47,18 @@ public String toString() { @Value public static class Result { - FuturesLimit futuresLimit; + @NonNull FuturesLimit futuresLimit; @JsonCreator - public Result(final @JsonProperty(value = "futures_limit", required = true) @NotNull FuturesLimit futuresLimit) { + public Result(final @JsonProperty(value = "futures_limit", required = true) FuturesLimit futuresLimit) { this.futuresLimit = futuresLimit; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("futures_limit", futuresLimit) + .toString(); + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index b28ab77..d16f2d3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -1,16 +1,10 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.KeyDeserializer; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.google.common.base.MoreObjects; -import com.sun.istack.internal.NotNull; import lombok.NonNull; import lombok.Value; -import java.io.IOException; import java.util.Map; public final class GetItem { @@ -35,10 +29,10 @@ public String toString() { @Value public static class Result { - Map tableRow; + @NonNull Map tableRow; @JsonCreator - public Result(@NonNull Map tableRow) { + public Result(final Map tableRow) { this.tableRow = tableRow; } From b8b8f0a07359bcd096cc427bdb5fc666ba92793a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:34:57 +0300 Subject: [PATCH 126/549] Made a ZMsg instance to be disposed after the use. --- .../quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index bf781bb..3231286 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -580,6 +580,8 @@ private U makeRPC(final T request, final Class resultClass) { byteArrayOutputStream.write( frame.getData() ); } + zResponse.destroy(); + return serdeModule.deserialize(resultClass, byteArrayOutputStream.toByteArray()); } catch (final Exception ex) { throw new RpcClientException(ex); From 50ebed54d056f519ba3fa4f2503fd6e99840840a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:44:29 +0300 Subject: [PATCH 127/549] Refactoring. --- .../serde/protobuf/ProtobufSerdeModule.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 11ae6b6..57990aa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -16,18 +16,7 @@ public enum ProtobufSerdeModule implements SerdeModule { INSTANCE; - private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = new HashMap<>(); - - static { - addDeserializer(QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); - addDeserializer(Firm.class, ProtobufFirmDeserializer.INSTANCE); - addDeserializer(MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); - } - - private static void addDeserializer(Class clazz, Deserializer deserializer) { - CLASS_TO_DESERIALIZER_MAP.put(clazz, deserializer); - } - + private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = createClassToDeserializerMap(); @Override public byte[] serialize(final T t) { @@ -72,4 +61,23 @@ public T deserialize(final Class clazz, final byte[] data) { } } } + + private static void registerDeserializer( + final Map, Deserializer> map, + final Class clazz, + final Deserializer deserializer) { + + map.put(clazz, deserializer); + } + + private static Map, Deserializer> createClassToDeserializerMap() { + + final Map, Deserializer> result = new HashMap<>(); + + registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); + registerDeserializer(result, Firm.class, ProtobufFirmDeserializer.INSTANCE); + registerDeserializer(result, MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); + + return result; + } } From f48632d6c2a2a94a4bcc6b3f7f70892a3895eb10 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 28 Aug 2018 23:51:33 +0300 Subject: [PATCH 128/549] Added the @SneakyThrows annotation. --- .../protobuf/ProtobufFirmDeserializer.java | 27 +++++------ .../ProtobufMoneyLimitDeserializer.java | 45 +++++++++---------- .../serde/protobuf/ProtobufSerdeModule.java | 8 ++-- 3 files changed, 34 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index 450740d..c54aef0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -2,7 +2,8 @@ import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; import qlua.structs.QluaStructures; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; @@ -11,23 +12,17 @@ enum ProtobufFirmDeserializer implements Deserializer { INSTANCE; + @SneakyThrows(InvalidProtocolBufferException.class) @Override public Firm deserialize(final byte[] data) { - try { - final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); - return Firm - .builder() - .firmId(firm.getFirmid()) - .firmName( nullIfNullOrEmpty(firm.getFirmName()) ) - .status(firm.getStatus()) - .exchange( nullIfNullOrEmpty(firm.getExchange()) ) - .build(); - } catch (final Exception ex) { - throw new SerdeException( - String.format("Ошибка при десериализации экземпляра %s из protobuf-представления.", Firm.class.getName()), - ex - ); - } + final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); + return Firm + .builder() + .firmId(firm.getFirmid()) + .firmName( nullIfNullOrEmpty(firm.getFirmName()) ) + .status(firm.getStatus()) + .exchange( nullIfNullOrEmpty(firm.getExchange()) ) + .build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index 3b23091..df202cb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -2,7 +2,8 @@ import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; import qlua.structs.QluaStructures; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; @@ -11,32 +12,26 @@ enum ProtobufMoneyLimitDeserializer implements Deserializer { INSTANCE; + @SneakyThrows(InvalidProtocolBufferException.class) @Override public MoneyLimit deserialize(final byte[] data) { - try { - final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); - return MoneyLimit - .builder() - .currCode( nullIfNullOrEmpty(moneyLimit.getCurrcode()) ) - .tag( nullIfNullOrEmpty(moneyLimit.getTag()) ) - .firmId( nullIfNullOrEmpty(moneyLimit.getFirmid()) ) - .clientCode( nullIfNullOrEmpty(moneyLimit.getClientCode()) ) - .openBal( nullIfNullOrEmpty(moneyLimit.getOpenbal()) ) - .openLimit( nullIfNullOrEmpty(moneyLimit.getOpenlimit()) ) - .currentBal( nullIfNullOrEmpty(moneyLimit.getCurrentbal()) ) - .currentLimit( nullIfNullOrEmpty(moneyLimit.getCurrentlimit()) ) - .locked( nullIfNullOrEmpty(moneyLimit.getLocked()) ) - .lockedValueCoef( nullIfNullOrEmpty(moneyLimit.getLockedValueCoef()) ) - .lockedMarginValue( nullIfNullOrEmpty(moneyLimit.getLockedMarginValue()) ) - .leverage( nullIfNullOrEmpty(moneyLimit.getLeverage()) ) - .limitKind( moneyLimit.getLimitKind() ) - .build(); - } catch (final Exception ex) { - throw new SerdeException( - String.format("Ошибка при десериализации экземпляра %s из protobuf-представления.", MoneyLimit.class.getName()), - ex - ); - } + final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); + return MoneyLimit + .builder() + .currCode( nullIfNullOrEmpty(moneyLimit.getCurrcode()) ) + .tag( nullIfNullOrEmpty(moneyLimit.getTag()) ) + .firmId( nullIfNullOrEmpty(moneyLimit.getFirmid()) ) + .clientCode( nullIfNullOrEmpty(moneyLimit.getClientCode()) ) + .openBal( nullIfNullOrEmpty(moneyLimit.getOpenbal()) ) + .openLimit( nullIfNullOrEmpty(moneyLimit.getOpenlimit()) ) + .currentBal( nullIfNullOrEmpty(moneyLimit.getCurrentbal()) ) + .currentLimit( nullIfNullOrEmpty(moneyLimit.getCurrentlimit()) ) + .locked( nullIfNullOrEmpty(moneyLimit.getLocked()) ) + .lockedValueCoef( nullIfNullOrEmpty(moneyLimit.getLockedValueCoef()) ) + .lockedMarginValue( nullIfNullOrEmpty(moneyLimit.getLockedMarginValue()) ) + .leverage( nullIfNullOrEmpty(moneyLimit.getLeverage()) ) + .limitKind( moneyLimit.getLimitKind() ) + .build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 57990aa..f6bbffc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -51,11 +51,9 @@ public T deserialize(final Class clazz, final byte[] data) { } else { return deserializer.deserialize(data); } - } catch (final SerdeException ex) { - throw ex; - } catch (final RuntimeException ex) { + } catch (final Exception ex) { throw new SerdeException( - String.format("Ошибка при десериализации экземпляра класса %s.", clazz.getName()), + String.format("Ошибка при десериализации экземпляра класса '%s' из protobuf-представления.", clazz.getName()), ex ); } @@ -73,7 +71,7 @@ private static void registerDeserializer( private static Map, Deserializer> createClassToDeserializerMap() { final Map, Deserializer> result = new HashMap<>(); - + registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerDeserializer(result, Firm.class, ProtobufFirmDeserializer.INSTANCE); registerDeserializer(result, MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); From 8c20680ef9f799e861e535d97e4b48b297cbe146 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 30 Aug 2018 02:19:36 +0300 Subject: [PATCH 129/549] Added the JetBrains annotations dependency. --- pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pom.xml b/pom.xml index 7676206..9bd6fd5 100644 --- a/pom.xml +++ b/pom.xml @@ -91,6 +91,13 @@ test + + + org.jetbrains + annotations + 16.0.2 + + From a0f35dfac83411076356ac8f3b2a795feebadb16 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 30 Aug 2018 02:20:16 +0300 Subject: [PATCH 130/549] Added a field for specifying the serialization/deserialization protocol. --- rpc-client-config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/rpc-client-config.json b/rpc-client-config.json index f93ccbd..a430689 100644 --- a/rpc-client-config.json +++ b/rpc-client-config.json @@ -3,6 +3,7 @@ "host": "127.0.0.1", "port": 5560 }, + "serde_protocol": "json", "auth": { "mechanism": "CURVE", "plain": { From f8d118a6af96c95240d5b3ec8238d773f8e2348c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 30 Aug 2018 02:21:44 +0300 Subject: [PATCH 131/549] The test must be updated -- commented it for now. --- .../zmq/impl/ZmqTcpQluaRpcClientImplTest.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java index 4430e50..7df3a37 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java @@ -18,24 +18,24 @@ import static org.junit.Assert.*; import static org.mockito.Mockito.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest(ZmqTcpRpcGatewayImpl.class) +//@RunWith(PowerMockRunner.class) +//@PrepareForTest(ZmqTcpRpcGatewayImpl.class) public class ZmqTcpQluaRpcClientImplTest { - private ZmqTcpQluaRpcClientImpl sut; - - @Before - public void setup() throws IOException { - - final NetworkAddress networkAddress = new SimpleNetworkAddress("127.0.0.1", 5560); - - this.sut = ZmqTcpQluaRpcClientImpl.newInstance(networkAddress, AuthContext.none(), null); - } - - @After - public void teardown() { - this.sut = null; - } +// private ZmqTcpQluaRpcClientImpl sut; +// +// @Before +// public void setup() throws IOException { +// +// final NetworkAddress networkAddress = new SimpleNetworkAddress("127.0.0.1", 5560); +// +// this.sut = ZmqTcpQluaRpcClientImpl.newInstance(null); +// } +// +// @After +// public void teardown() { +// this.sut = null; +// } // @Test // public void test() throws Exception { From a132d0f61d2a0653bf35235a3b5bf4773eed52fe Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 30 Aug 2018 02:22:55 +0300 Subject: [PATCH 132/549] Added the serde protocol field to the ClientConfiguration hierarchy. --- .../application/RpcExampleApplication.java | 15 ++--- .../lua/rpc/config/ClientConfiguration.java | 9 +++ .../rpc/config/SimpleClientConfiguration.java | 57 ++++++------------- ...leClientConfigurationJsonDeserializer.java | 39 ++++++++++--- 4 files changed, 63 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index 41b7874..a08be51 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -1,12 +1,12 @@ package com.enfernuz.quik.lua.rpc.application; +import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.api.zmq.impl.ZmqTcpQluaRpcClientImpl; import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import qlua.rpc.Message; import java.io.File; @@ -40,22 +40,17 @@ public static void main(final String[] args) { } LOGGER.info("Инициализация клиента..."); - try (final ZmqTcpQluaRpcClient rpcClient = - ZmqTcpQluaRpcClientImpl.newInstance(config.getNetworkAddress(), config.getAuthContext(), null)) { + try (final ZmqTcpQluaRpcClient rpcClient = ZmqTcpQluaRpcClientImpl.newInstance(config)) { LOGGER.info("Соединение с RPC-сервисом..."); rpcClient.open(); - final Message.Request request = - qlua.rpc.Message.Request.newBuilder() - .setMessage("Hello world!") - .setIconType(qlua.rpc.Message.IconType.INFO) - .build(); + final Message.Request request = new Message.Request("Hello, world!", Message.IconType.WARNING); LOGGER.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); - ///final Message.Result result = rpcClient.qlua_message(request); + final Message.Result result = rpcClient.qlua_message(request); - ///LOGGER.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); + LOGGER.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); LOGGER.info("Выход из программы..."); } catch (final Exception ex) { LOGGER.error("Не удалось выполнить удалённый вызов процедуры.", ex); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/config/ClientConfiguration.java b/src/main/java/com/enfernuz/quik/lua/rpc/config/ClientConfiguration.java index f189888..348a428 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/config/ClientConfiguration.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/config/ClientConfiguration.java @@ -23,4 +23,13 @@ public interface ClientConfiguration { * @return контекст защиты передачи данных для точки подключения RPC-сервиса quik-lua-rpc */ AuthContext getAuthContext(); + + /** + * Получает протокол сериализации/десериализации сообщений к/от RPC-сервису quik-lua-rpc. + * + * @return протокол сериализации/десериализации сообщений к/от RPC-сервису quik-lua-rpc + */ + SerdeProtocol getSerdeProtocol(); + + enum SerdeProtocol { JSON, PROTOBUF } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfiguration.java b/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfiguration.java index 9bf24ff..cc281c6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfiguration.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfiguration.java @@ -3,20 +3,21 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.google.common.base.MoreObjects; - -import java.util.Objects; - -import static java.util.Objects.requireNonNull; +import lombok.NonNull; +import lombok.Value; /** * Базовая реализация конфигурации клиента RPC-сервиса quik-lua-rpc. * * @see quik-lua-rpc */ -final class SimpleClientConfiguration implements ClientConfiguration { - private final NetworkAddress networkAddress; - private final AuthContext authContext; +@Value +class SimpleClientConfiguration implements ClientConfiguration { + + @NonNull NetworkAddress networkAddress; + @NonNull AuthContext authContext; + @NonNull SerdeProtocol serdeProtocol; /** * Создаёт новый экземпляр базовая реализации конфигурации клиента RPC-сервиса quik-lua-rpc с точкой @@ -24,39 +25,16 @@ final class SimpleClientConfiguration implements ClientConfiguration { * * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK * @param authContext контекст защиты передачи данных + * @param serdeProtocol прокол сериализации/десериализации сообщений */ - public SimpleClientConfiguration(final NetworkAddress networkAddress, final AuthContext authContext) { - this.networkAddress = requireNonNull(networkAddress, "The argument \"networkAddress\" must not be null."); - this.authContext = requireNonNull(authContext, "The argument \"authContext\" must not be null."); - } - - @Override - public NetworkAddress getNetworkAddress() { - return networkAddress; - } - - @Override - public AuthContext getAuthContext() { - return authContext; - } - - @Override - public boolean equals(Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof SimpleClientConfiguration) ) { - return false; - } else { - final SimpleClientConfiguration other = (SimpleClientConfiguration) o; - return Objects.equals(networkAddress, other.networkAddress) - && Objects.equals(authContext, other.authContext); - } - } - - @Override - public int hashCode() { - return Objects.hash(networkAddress, authContext); + public SimpleClientConfiguration( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeProtocol serdeProtocol) { + + this.networkAddress = networkAddress; + this.authContext = authContext; + this.serdeProtocol = serdeProtocol; } @Override @@ -64,6 +42,7 @@ public String toString() { return MoreObjects.toStringHelper(this) .add("networkAddress", networkAddress) .add("authContext", authContext) + .add("serdeProtocol", serdeProtocol) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfigurationJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfigurationJsonDeserializer.java index 6344272..538a192 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfigurationJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/config/SimpleClientConfigurationJsonDeserializer.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.base.Strings; +import org.jetbrains.annotations.NotNull; import org.zeromq.ZMQ; import static com.google.common.base.Preconditions.checkArgument; @@ -27,15 +28,16 @@ public SimpleClientConfiguration deserialize( final NetworkAddress networkAddress = parseNetworkAddress( rootNode.get("address") ); final AuthContext authContext = parseAuthContext( rootNode.get("auth") ); + final ClientConfiguration.SerdeProtocol serdeProtocol = parseSerdeProtocol( rootNode.get("serde_protocol") ); - return new SimpleClientConfiguration(networkAddress, authContext); + return new SimpleClientConfiguration(networkAddress, authContext, serdeProtocol); } catch (final Exception ex) { throw new JsonException("Could not parse configuration object from JSON.", ex); } - } - private static NetworkAddress parseNetworkAddress(final JsonNode addressNode) { + @NotNull + private static NetworkAddress parseNetworkAddress(@NotNull final JsonNode addressNode) { final String host = addressNode.get("host").asText(); final int port = addressNode.get("port").asInt(); @@ -43,7 +45,8 @@ private static NetworkAddress parseNetworkAddress(final JsonNode addressNode) { return new SimpleNetworkAddress(host, port); } - private static AuthContext parseAuthContext(final JsonNode authContextNode) { + @NotNull + private static AuthContext parseAuthContext(@NotNull final JsonNode authContextNode) { final String mechanismAsString = authContextNode.get("mechanism").asText(); final ZMQ.Socket.Mechanism mechanism = ZMQ.Socket.Mechanism.valueOf(mechanismAsString); @@ -68,7 +71,24 @@ private static AuthContext parseAuthContext(final JsonNode authContextNode) { return result; } - private static PlainCredentials parsePlainCredentials(final JsonNode plainCredentialsNode) { + @NotNull + private static ClientConfiguration.SerdeProtocol parseSerdeProtocol(@NotNull final JsonNode serdeProtocolNode) { + + final String serdeProtocolAsString = serdeProtocolNode.asText(); + final ClientConfiguration.SerdeProtocol result; + if ("json".equalsIgnoreCase(serdeProtocolAsString)) { + result = ClientConfiguration.SerdeProtocol.JSON; + } else if ("protobuf".equalsIgnoreCase(serdeProtocolAsString)) { + result = ClientConfiguration.SerdeProtocol.PROTOBUF; + } else { + throw new IllegalArgumentException( String.format("Unsupported serde protocol: %s.", serdeProtocolAsString)); + } + + return result; + } + + @NotNull + private static PlainCredentials parsePlainCredentials(@NotNull final JsonNode plainCredentialsNode) { final String username = plainCredentialsNode.get("username").asText(); final String password = plainCredentialsNode.get("password").asText(); @@ -83,7 +103,8 @@ private static PlainCredentials parsePlainCredentials(final JsonNode plainCreden return new SimplePlainCredentials(username, password); } - private static CurveCredentials parseCurveCredentials(final JsonNode curveCredentialsNode) { + @NotNull + private static CurveCredentials parseCurveCredentials(@NotNull final JsonNode curveCredentialsNode) { final CurveKeyPair clientCurveKeyPair = parseClientCurveKeyPair( curveCredentialsNode.get("client") ); final CurveKey serverPublicKey = parseServerCurvePublicKey( curveCredentialsNode.get("server") ); @@ -91,7 +112,8 @@ private static CurveCredentials parseCurveCredentials(final JsonNode curveCreden return new SimpleCurveCredentials(serverPublicKey, clientCurveKeyPair); } - private static CurveKeyPair parseClientCurveKeyPair(final JsonNode clientCurveKeyPairNode) { + @NotNull + private static CurveKeyPair parseClientCurveKeyPair(@NotNull final JsonNode clientCurveKeyPairNode) { final String publicKeyAsString = clientCurveKeyPairNode.get("public").asText(); final CurveKey publicKey = CurveKey.fromString(publicKeyAsString); @@ -102,7 +124,8 @@ private static CurveKeyPair parseClientCurveKeyPair(final JsonNode clientCurveKe return new CurveKeyPair(publicKey, secretKey); } - private static CurveKey parseServerCurvePublicKey(final JsonNode serverCurvePublicKeyNode) { + @NotNull + private static CurveKey parseServerCurvePublicKey(@NotNull final JsonNode serverCurvePublicKeyNode) { return CurveKey.fromString( serverCurvePublicKeyNode.get("public").asText() ); } } From 14cdf3b5d63557cdea1c565c7f51986a19e8fb5d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 30 Aug 2018 02:24:57 +0300 Subject: [PATCH 133/549] Added custom RPC exceptions; introduced a class (ResponseEnvelope) for wrapping responses from the service. --- .../quik/lua/rpc/api/ClientRpcException.java | 16 ++++++ .../quik/lua/rpc/api/QluaRpcClient.java | 18 +----- .../quik/lua/rpc/api/RpcException.java | 18 ++++++ .../quik/lua/rpc/api/ServiceError.java | 30 ++++++++++ .../quik/lua/rpc/api/ServiceRpcException.java | 14 +++++ .../rpc/api/structures/ResponseEnvelope.java | 48 ++++++++++++++++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 56 ++++++++++++++----- .../lua/rpc/serde/json/JsonSerdeModule.java | 20 +++++-- .../jackson/QluaJsonJacksonDeserializers.java | 2 + .../ResponseEnvelopeJsonDeserializer.java | 44 +++++++++++++++ 10 files changed, 233 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/ClientRpcException.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceError.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ClientRpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ClientRpcException.java new file mode 100644 index 0000000..d5307d5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ClientRpcException.java @@ -0,0 +1,16 @@ +package com.enfernuz.quik.lua.rpc.api; + +public final class ClientRpcException extends RpcException { + + public ClientRpcException(final String message) { + super(message); + } + + public ClientRpcException(final Throwable cause) { + super(cause); + } + + public ClientRpcException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index c175997..ea4ccbb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -10,7 +10,8 @@ /** * Компонент, представляющий собой Java-обёртку над API QLua терминала QUIK. * - * @throws RpcClientException в случае возникновения ошибки при удалённом вызове процедуры + * @throws ClientRpcException в случае возникновения ошибки при удалённом вызове процедуры на стороне клиента + * @throws ServiceRpcException в случае возникновения ошибки при удалённом вызове процедуры на стороне RPC-сервиса * @throws NullPointerException если аргумент {@code request} является null */ public interface QluaRpcClient extends Gateway, Securable { @@ -569,19 +570,4 @@ public interface QluaRpcClient extends Gateway, Securable { * @return */ V.Result datasource_V(V.Request request); - - public final class RpcClientException extends RuntimeException { - - public RpcClientException(final String message) { - super(message); - } - - public RpcClientException(final String message, final Throwable cause) { - super(message, cause); - } - - public RpcClientException(final Throwable cause) { super(cause); } - - } - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java new file mode 100644 index 0000000..42249cf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.api; + +public abstract class RpcException extends RuntimeException { + + protected RpcException() {} + + protected RpcException(final String message) { + super(message); + } + + protected RpcException(final Throwable cause) { + super(cause); + } + + protected RpcException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceError.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceError.java new file mode 100644 index 0000000..d199394 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceError.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.api; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Value; + +@Value +public class ServiceError { + + int code; + String message; + + @JsonCreator + public ServiceError( + @JsonProperty(value = "code", required = true) final int code, + @JsonProperty(value = "message", required = true) final String message) { + + this.code = code; + this.message = message; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("code", code) + .add("message", message) + .toString(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java new file mode 100644 index 0000000..cbd0cc8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java @@ -0,0 +1,14 @@ +package com.enfernuz.quik.lua.rpc.api; + +import lombok.NonNull; +import lombok.Value; + +@Value +public class ServiceRpcException extends RpcException { + + @NonNull ServiceError error; + + public ServiceRpcException(@NonNull final ServiceError error) { + this.error = error; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java new file mode 100644 index 0000000..22cd394 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; + +@Value +public class ResponseEnvelope { + + ServiceError error; + byte[] result; + + public static ResponseEnvelope withError(@NonNull final ServiceError error) { + return new ResponseEnvelope(error, null); + } + + public static ResponseEnvelope withResult(@NonNull final byte[] result) { + return new ResponseEnvelope(null, result); + } + + private ResponseEnvelope(final ServiceError error, final byte[] result) { + this.error = error; + this.result = result; + } + + @Contract(pure = true) + public ServiceError getError() { + return error; + } + + // not making a defensive copy for the sake of performance + @Contract(pure = true) + public byte[] getResult() { + return result; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("error", error) + .add("result", result) + .toString(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index 3231286..ecc4e09 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -1,5 +1,8 @@ package com.enfernuz.quik.lua.rpc.api.zmq.impl; +import com.enfernuz.quik.lua.rpc.api.ClientRpcException; +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.ServiceRpcException; import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; @@ -7,14 +10,19 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; +import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; import org.zeromq.ZFrame; import org.zeromq.ZMQ; import org.zeromq.ZMsg; +import javax.xml.ws.Service; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -36,22 +44,35 @@ public class ZmqTcpQluaRpcClientImpl implements ZmqTcpQluaRpcClient { private final SerdeModule serdeModule; /** - * Создаёт новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl}, с точкой подключения RPC-сервиса на стороне - * терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. + * Создаёт новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl}, соответствующий заданной конфигурации клиента + * точки подключения к RPC-сервису QUIK. * - * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK - * @param authContext контекст защиты передачи данных + * @param config конфигурация клиента точки подключения к RPC-сервису QUIK * @return новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl} */ - public static ZmqTcpQluaRpcClientImpl newInstance( - final NetworkAddress networkAddress, - final AuthContext authContext, - final SerdeModule serdeModule) { + public static ZmqTcpQluaRpcClientImpl newInstance(final ClientConfiguration config) { + + final SerdeModule serdeModule; + switch (config.getSerdeProtocol()) { + case JSON: + serdeModule = JsonSerdeModule.INSTANCE; + break; + case PROTOBUF: + serdeModule = ProtobufSerdeModule.INSTANCE; + break; + default: + throw new IllegalArgumentException( + String.format( + "Неподдерживаемый протокол сериализации/десериализации сообщений: %s.", + config.getSerdeProtocol() + ) + ); + } return new ZmqTcpQluaRpcClientImpl( - requireNonNull(networkAddress, "Аргумент 'networkAddress' не должен быть null."), - requireNonNull(authContext, "Аргумент 'authContext' не должен быть null."), - requireNonNull(serdeModule, "Аргумент 'serdeModule' не должен быть null.") + requireNonNull(config.getNetworkAddress(), "Аргумент 'networkAddress' не должен быть null."), + requireNonNull(config.getAuthContext(), "Аргумент 'authContext' не должен быть null."), + serdeModule ); } @@ -582,9 +603,18 @@ private U makeRPC(final T request, final Class resultClass) { zResponse.destroy(); - return serdeModule.deserialize(resultClass, byteArrayOutputStream.toByteArray()); + final ResponseEnvelope responseEnvelope = + serdeModule.deserialize(ResponseEnvelope.class, byteArrayOutputStream.toByteArray()); + final ServiceError error = responseEnvelope.getError(); + if (error == null) { + return serdeModule.deserialize(resultClass, responseEnvelope.getResult()); + } else { + throw new ServiceRpcException(error); + } + } catch (final ServiceRpcException ex) { + throw ex; } catch (final Exception ex) { - throw new RpcClientException(ex); + throw new ClientRpcException(ex); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index fceb4d6..1a3fff6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -1,10 +1,13 @@ package com.enfernuz.quik.lua.rpc.serde.json; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.SneakyThrows; import static java.util.Objects.requireNonNull; @@ -25,11 +28,20 @@ public byte[] serialize(final T t) { requireNonNull(t); - if (t instanceof QluaEvent.EventType) { - return JsonQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); - } else { + try { + + final byte[] result; + if (t instanceof QluaEvent.EventType) { + result = JsonQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); + } else { + result = objectMapper.writeValueAsBytes(t); + } + + return result; + } catch (final Exception ex) { throw new SerdeException( - String.format("Неподдерживаемый класс для сериализации: %s.", t.getClass().getName()) + String.format("Ошибка сериализации экземпляра %s в JSON-представление.", t.getClass().getName()), + ex ); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 57fad7c..87217f0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -10,6 +10,8 @@ public QluaJsonJacksonDeserializers() { super(); + super.addDeserializer(ResponseEnvelope.class, new ResponseEnvelopeJsonDeserializer()); + super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); super.addDeserializer(ConnectedEventInfo.class, new ConnectedEventInfoJsonDeserializer()); super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java new file mode 100644 index 0000000..7e3cec4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +final class ResponseEnvelopeJsonDeserializer extends JsonDeserializer { + + @Override + public ResponseEnvelope deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + + final ObjectCodec objectCodec = p.getCodec(); + final JsonNode rootNode = objectCodec.readTree(p); + final JsonNode errorNode = rootNode.get("error"); + final ResponseEnvelope result; + if (errorNode != null) { + result = ResponseEnvelope.withError( + errorNode.traverse(objectCodec).readValueAs(ServiceError.class) + ); + } else { + final JsonNode resultNode = rootNode.get("result"); + if (resultNode == null) { + throw new JsonParseException( + p, + "В JSON-представлении ответа от RPC-сервиса одновременно отсутствуют узлы 'error' и 'result'." + ); + } else { + // Might be a possible performance issue here, as the JSON string is converted to bytes and then + // the bytes are probably converted back to a UTF-8 string by Jackson during the further deserialization. + result = ResponseEnvelope.withResult( resultNode.toString().getBytes(StandardCharsets.UTF_8) ); + } + } + + return result; + } +} From ce6f4886011a13fd8db907b964a929bfbf7cc01b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 00:43:05 +0300 Subject: [PATCH 134/549] Removed unused class. --- .../api/zmq/impl/ZmqTcpRpcGatewayImpl.java | 199 ------------------ 1 file changed, 199 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpRpcGatewayImpl.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpRpcGatewayImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpRpcGatewayImpl.java deleted file mode 100644 index 9d97dfb..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpRpcGatewayImpl.java +++ /dev/null @@ -1,199 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.zmq.impl; - -import com.enfernuz.quik.lua.rpc.api.security.zmq.*; -import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpRpcGateway; -import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; -import com.google.protobuf.MessageLite; -import org.zeromq.ZFrame; -import org.zeromq.ZMQ; -import org.zeromq.ZMsg; -import qlua.rpc.RPC; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; - -import static java.util.Objects.requireNonNull; - -/** - * Реализация компонента TCP-шлюз удалённого вызова процедур на базе ZeroMQ. - */ -class ZmqTcpRpcGatewayImpl implements ZmqTcpRpcGateway { - - private final NetworkAddress networkAddress; - private final String uri; - private ZMQ.Context zmqContext; - private ZMQ.Socket reqSocket; - private final AuthContext authContext; - private boolean isOpened; - - /** - * Возвращает новый экземпляр компонента {@link ZmqTcpRpcGatewayImpl} с точкой подключения RPC-сервиса на стороне - * терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. - * - * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK - * @param authContext контекст защиты передачи данных - * @return новый экземпляр компонента {@link ZmqTcpRpcGatewayImpl} - */ - static ZmqTcpRpcGatewayImpl newInstance( - final NetworkAddress networkAddress, - final AuthContext authContext) { - - return new ZmqTcpRpcGatewayImpl( - requireNonNull(networkAddress, "The argument \"networkAddress\" must not be null."), - requireNonNull(authContext, "The argument \"authContext\" must not be null.") - ); - } - - private ZmqTcpRpcGatewayImpl(final NetworkAddress networkAddress, final AuthContext authContext) { - - this.networkAddress = networkAddress; - this.authContext = authContext; - this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); - } - - @Override - public void open() throws IOException { - - if (!this.isOpened) { - - zmqContext = ZMQ.context(1); - - reqSocket = zmqContext.socket(ZMQ.REQ); - reqSocket.setLinger(0); // no waiting before closing the socket - - switch (authContext.getAuthMechanism()) { - case PLAIN: - final PlainCredentials plainCredentials = authContext.getPlainCredentials(); - reqSocket.setPlainUsername( plainCredentials.getUsername() ); - reqSocket.setPlainPassword( plainCredentials.getPassword() ); - break; - case CURVE: - final CurveCredentials curveCredentials = authContext.getCurveCredentials(); - final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); - reqSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); - reqSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); - reqSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); - break; - case NULL: - break; - default: - throw new IllegalStateException( - String.format( - "Unsupported authentication mechanism: \"s\".", - authContext.getAuthMechanism() - ) - ); - } - - final boolean _isConnected = this.reqSocket.connect(uri); - if (_isConnected) { - this.isOpened = true; - } else { - - final String errorMessage = - String.format("Couldn't connect to '%s'. ZMQ socket errno:", uri, reqSocket.errno()); - - reqSocket.close(); - zmqContext.term(); - zmqContext = null; - reqSocket = null; - - throw new IOException(errorMessage); - } - } - } - - @Override - public void close() throws IOException { - - if (this.isOpened) { - - final boolean isDisconnected = this.reqSocket.disconnect(uri); - - if (isDisconnected) { - reqSocket.close(); - zmqContext.term(); - zmqContext = null; - reqSocket = null; - - this.isOpened = false; - } else { - throw new IOException( - String.format( - "Couldn't disconnect from '%s'. ZMQ socket errno: %d", - uri, - reqSocket.errno() - ) - ); - } - } - } - - @Override - public boolean isOpened() { - return isOpened; - } - - @Override - public NetworkAddress getNetworkAddress() { - return networkAddress; - } - - @Override - public AuthContext getAuthContext() { - return authContext; - } - - @Override - public RPC.Response call(final RPC.ProcedureType procedureType) throws RpcException { - - requireNonNull(procedureType, "The argument 'procedureType' must not be null."); - - final RPC.Request request = - RPC.Request.newBuilder() - .setType(procedureType) - .build(); - - try { - return makeRequest(request); - } catch (final IOException ioe) { - throw new RpcException("An error occured while making the remote procedure call.", ioe); - } - } - - @Override - public RPC.Response call(final RPC.ProcedureType procedureType, final MessageLite args) throws RpcException { - - requireNonNull(procedureType, "The argument 'procedureType' must not be null."); - requireNonNull(args, "The argument 'args' must not be null."); - - final RPC.Request request = - RPC.Request.newBuilder() - .setType(procedureType) - .setArgs( args.toByteString() ) - .build(); - try { - return makeRequest(request); - } catch (final IOException ioe) { - throw new RpcException("An error occured while making the remote procedure call.", ioe); - } - } - - private RPC.Response makeRequest(final RPC.Request request) throws IOException { - - final ZMsg zRequest = new ZMsg(); - zRequest.add( request.toByteArray() ); - zRequest.send(reqSocket); - - final ZMsg zResponse = ZMsg.recvMsg(reqSocket); - - final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream( (int) zResponse.contentSize() ); - for (final ZFrame frame : zResponse) { - byteArrayOutputStream.write( frame.getData() ); - } - - final byte[] responseData = byteArrayOutputStream.toByteArray(); - - return RPC.Response.parseFrom(responseData); - } -} From 47157138dfc932404e3daa85cfb5d95e0cea98a9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 00:43:27 +0300 Subject: [PATCH 135/549] Removed unused import. --- .../quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index ecc4e09..c3cc74f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -22,7 +22,6 @@ import org.zeromq.ZMQ; import org.zeromq.ZMsg; -import javax.xml.ws.Service; import java.io.ByteArrayOutputStream; import java.io.IOException; From ddec8c9ef17d74fdf1bb1153f6f57e5b52c68b07 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 00:44:43 +0300 Subject: [PATCH 136/549] Removed custom JSON deserializers for AccountBalance and AccountPositions: opted in for the default deserializers. --- .../rpc/api/structures/AccountBalance.java | 33 ++++++------ .../rpc/api/structures/AccountPosition.java | 39 +++++++------- .../AccountBalanceJsonDeserializer.java | 37 ------------- .../AccountPositionJsonDeserializer.java | 41 -------------- .../jackson/QluaJsonJacksonDeserializers.java | 2 - .../AccountBalanceJsonSerdeTest.java | 51 ++++++++++++++++++ .../AccountPositionJsonSerdeTest.java | 54 +++++++++++++++++++ .../json/structures/AccountBalance.json | 17 ++++++ .../json/structures/AccountPosition.json | 20 +++++++ 9 files changed, 181 insertions(+), 113 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java create mode 100644 src/test/resources/json/structures/AccountBalance.json create mode 100644 src/test/resources/json/structures/AccountPosition.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java index aaa4141..5b103f5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -32,22 +34,23 @@ public class AccountBalance { private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder + @JsonCreator private AccountBalance( - final String firmId, - final String secCode, - final String trdAccId, - final String depAccId, - final String openBal, - final String currentPos, - final String plannedPosSell, - final String plannedPosBuy, - final String planBal, - final String usqtyb, - final String usqtys, - final String planned, - final String settleBal, - final String bankAccId, - final int firmUse) { + @JsonProperty("firmid") final String firmId, + @JsonProperty("sec_code") final String secCode, + @JsonProperty("trdaccid") final String trdAccId, + @JsonProperty("depaccid") final String depAccId, + @JsonProperty("openbal") final String openBal, + @JsonProperty("currentpos") final String currentPos, + @JsonProperty("plannedpossell") final String plannedPosSell, + @JsonProperty("plannedposbuy") final String plannedPosBuy, + @JsonProperty("planbal") final String planBal, + @JsonProperty("usqtyb") final String usqtyb, + @JsonProperty("usqtys") final String usqtys, + @JsonProperty("planned") final String planned, + @JsonProperty("settlebal") final String settleBal, + @JsonProperty("bank_acc_id") final String bankAccId, + @JsonProperty(value = "firmuse", required = true) final int firmUse) { this.firmId = firmId; this.secCode = secCode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java index eb4e530..72d88d6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -35,25 +37,26 @@ public class AccountPosition { private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder + @JsonCreator private AccountPosition( - final String firmId, - final String currCode, - final String tag, - final String description, - final String openBal, - final String currentPos, - final String plannedPos, - final String limit1, - final String limit2, - final String orderBuy, - final String orderSell, - final String netto, - final String plannedBal, - final String debit, - final String credit, - final String bankAccId, - final String marginCall, - final String settleBal) { + @JsonProperty("firmid") final String firmId, + @JsonProperty("currcode") final String currCode, + @JsonProperty("tag") final String tag, + @JsonProperty("description") final String description, + @JsonProperty("openbal") final String openBal, + @JsonProperty("currentpos") final String currentPos, + @JsonProperty("plannedpos") final String plannedPos, + @JsonProperty("limit1") final String limit1, + @JsonProperty("limit2") final String limit2, + @JsonProperty("orderbuy") final String orderBuy, + @JsonProperty("ordersell") final String orderSell, + @JsonProperty("netto") final String netto, + @JsonProperty("plannedbal") final String plannedBal, + @JsonProperty("debit") final String debit, + @JsonProperty("credit") final String credit, + @JsonProperty("bank_acc_id") final String bankAccId, + @JsonProperty("margincall") final String marginCall, + @JsonProperty("settlebal") final String settleBal) { this.firmId = firmId; this.currCode = currCode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java deleted file mode 100644 index cff572d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountBalanceJsonDeserializer.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class AccountBalanceJsonDeserializer extends JsonDeserializer { - - @Override - public AccountBalance deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return AccountBalance.builder() - .firmId( asText(node, "firmid") ) - .secCode( asText(node, "sec_code") ) - .trdAccId( asText(node, "trdaccid") ) - .depAccId( asText(node, "depaccid") ) - .openBal( asText(node, "openbal") ) - .currentPos( asText(node, "currentpos") ) - .plannedPosSell( asText(node, "plannedpossell") ) - .plannedPosBuy( asText(node, "plannedposbuy") ) - .planBal( asText(node, "planbal") ) - .usqtyb( asText(node, "usqtyb") ) - .usqtys( asText(node, "usqtys") ) - .planned( asText(node, "planned") ) - .settleBal( asText(node, "settlebal") ) - .bankAccId( asText(node, "bank_acc_id") ) - .firmUse( node.get("firmuse").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java deleted file mode 100644 index c0813a9..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AccountPositionJsonDeserializer.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class AccountPositionJsonDeserializer extends JsonDeserializer { - - @Override - public AccountPosition deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return AccountPosition - .builder() - .firmId( asText(node, "firmid") ) - .currCode( asText(node, " currcode") ) - .tag( asText(node, "tag") ) - .description( asText(node, "description") ) - .openBal( asText(node, "openbal") ) - .currentPos( asText(node, "currentpos") ) - .plannedPos( asText(node, "plannedpos") ) - .limit1( asText(node, "limit1") ) - .limit2( asText(node, "limit2") ) - .orderBuy( asText(node, "orderbuy") ) - .orderSell( asText(node, "ordersell") ) - .netto( asText(node, "netto") ) - .plannedBal( asText(node, "plannedbal") ) - .debit( asText(node, "debit") ) - .credit( asText(node, "credit") ) - .bankAccId( asText(node, "bank_acc_id") ) - .marginCall( asText(node, "margincall") ) - .settleBal( asText(node, "settlebal") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 87217f0..a32407b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -17,13 +17,11 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); - super.addDeserializer(AccountBalance.class, new AccountBalanceJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); - super.addDeserializer(AccountPosition.class, new AccountPositionJsonDeserializer()); super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); super.addDeserializer(NegTrade.class, new NegTradeJsonDeserializer()); super.addDeserializer(StopOrder.class, new StopOrderJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java new file mode 100644 index 0000000..ee3bae7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AccountBalanceJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static AccountBalance expectedObject; + private static String expectedJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + expectedObject = AccountBalance.builder() + .firmId("1") + .secCode("2") + .trdAccId("3") + .depAccId("4") + .openBal("5") + .currentPos("6") + .plannedPosSell("7") + .plannedPosBuy("8") + .planBal("9") + .usqtyb("10") + .usqtys("11") + .planned("12") + .settleBal("13") + .bankAccId("14") + .firmUse(15) + .build(); + + expectedJson = Resources.toString(Resources.getResource("json/structures/AccountBalance.json"), Charsets.UTF_8); + } + + @Test + public void testDeserialize() throws IOException { + + final AccountBalance actualObject = sut.readValue(expectedJson, AccountBalance.class); + + assertEquals(expectedObject, actualObject); + } +} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java new file mode 100644 index 0000000..7f1239a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AccountPositionJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static AccountPosition expectedObject; + private static String expectedJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + expectedObject = AccountPosition.builder() + .firmId("1") + .currCode("2") + .tag("3") + .description("4") + .openBal("5") + .currentPos("6") + .plannedPos("7") + .limit1("8") + .limit2("9") + .orderBuy("10") + .orderSell("11") + .netto("12") + .plannedBal("13") + .debit("14") + .credit("15") + .bankAccId("16") + .marginCall("17") + .settleBal("18") + .build(); + + expectedJson = Resources.toString(Resources.getResource("json/structures/AccountPosition.json"), Charsets.UTF_8); + } + + @Test + public void testDeserialize() throws IOException { + + final AccountPosition actualObject = sut.readValue(expectedJson, AccountPosition.class); + + assertEquals(expectedObject, actualObject); + } +} \ No newline at end of file diff --git a/src/test/resources/json/structures/AccountBalance.json b/src/test/resources/json/structures/AccountBalance.json new file mode 100644 index 0000000..7320b4f --- /dev/null +++ b/src/test/resources/json/structures/AccountBalance.json @@ -0,0 +1,17 @@ +{ + "firmid" : "1", + "sec_code" : "2", + "trdaccid" : "3", + "depaccid" : "4", + "openbal" : "5", + "currentpos" : "6", + "plannedpossell" : "7", + "plannedposbuy" : "8", + "planbal" : "9", + "usqtyb" : "10", + "usqtys" : "11", + "planned" : "12", + "settlebal" : "13", + "bank_acc_id" : "14", + "firmuse" : 15 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/AccountPosition.json b/src/test/resources/json/structures/AccountPosition.json new file mode 100644 index 0000000..c2a7e81 --- /dev/null +++ b/src/test/resources/json/structures/AccountPosition.json @@ -0,0 +1,20 @@ +{ + "firmid" : "1", + "currcode" : "2", + "tag" : "3", + "description" : "4", + "openbal" : "5", + "currentpos" : "6", + "plannedpos" : "7", + "limit1" : "8", + "limit2" : "9", + "orderbuy" : "10", + "ordersell" : "11", + "netto" : "12", + "plannedbal" : "13", + "debit" : "14", + "credit" : "15", + "bank_acc_id" : "16", + "margincall" : "17", + "settlebal" : "18" +} \ No newline at end of file From 8d80b88c0bd653df8d4569ce42c0425ea3067a0e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 00:51:58 +0300 Subject: [PATCH 137/549] Removed custom JSON deserializer for AddColumn. --- .../quik/lua/rpc/api/messages/AddColumn.java | 17 ++++-- .../AddColumnResultJsonDeserializer.java | 19 ------ .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../api/messages/AddColumnJsonSerdeTest.java | 61 +++++++++++++++++++ .../resources/json/AddColumn.request.json | 11 ++++ src/test/resources/json/AddColumn.result.json | 3 + 6 files changed, 87 insertions(+), 25 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java create mode 100644 src/test/resources/json/AddColumn.request.json create mode 100644 src/test/resources/json/AddColumn.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java index 2d31123..1ba8263 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.NonNull; @@ -14,18 +16,18 @@ public static class Request { int tId; int iCode; - String name; + @NonNull String name; boolean isDefault; - ColumnParameterType parType; + @NonNull ColumnParameterType parType; int width; @Builder private Request( final int tId, final int iCode, - final @NonNull String name, + final String name, final boolean isDefault, - final @NonNull ColumnParameterType parType, + final ColumnParameterType parType, final int width) { this.tId = tId; @@ -54,6 +56,11 @@ public static class Result { int result; + @JsonCreator + public Result(@JsonProperty(value = "result", required = true) int result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -62,7 +69,7 @@ public String toString() { } } - public static enum ColumnParameterType { + public enum ColumnParameterType { QTABLE_INT_TYPE, QTABLE_DOUBLE_TYPE, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java deleted file mode 100644 index 6163fc4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class AddColumnResultJsonDeserializer extends JsonDeserializer { - - @Override - public AddColumn.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new AddColumn.Result( node.get("result").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index a32407b..759fb05 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -30,7 +30,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); - super.addDeserializer(AddColumn.Result.class, new AddColumnResultJsonDeserializer()); super.addDeserializer(AddLabel.Result.class, new AddLabelResultJsonDeserializer()); super.addDeserializer(AllocTable.Result.class, new AllocTableResultJsonDeserializer()); super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java new file mode 100644 index 0000000..01c136e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AddColumnJsonSerdeTest { + + private static ObjectMapper sut; + + private static AddColumn.Request requestObj; + private static AddColumn.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = AddColumn.Request.builder() + .tId(1) + .iCode(2) + .name("3") + .isDefault(true) + .parType(AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) + .width(6) + .build(); + + resultObj = new AddColumn.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/AddColumn.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/AddColumn.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final AddColumn.Result actualResultObj = sut.readValue(resultJson, AddColumn.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/AddColumn.request.json b/src/test/resources/json/AddColumn.request.json new file mode 100644 index 0000000..7c7a012 --- /dev/null +++ b/src/test/resources/json/AddColumn.request.json @@ -0,0 +1,11 @@ +{ + "method" : "AddColumn", + "args" : { + "t_id" : 1, + "icode" : 2, + "name" : "3", + "is_default" : true, + "par_type" : "QTABLE_INT64_TYPE", + "width" : 6 + } +} \ No newline at end of file diff --git a/src/test/resources/json/AddColumn.result.json b/src/test/resources/json/AddColumn.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/AddColumn.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file From 42c4fe48fe8780251683b9ff46ce1ccb81492e04 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 00:57:40 +0300 Subject: [PATCH 138/549] Removed custom JSON deserializer for AddLabel. --- .../quik/lua/rpc/api/messages/AddLabel.java | 13 +++- .../AddLabelResultJsonDeserializer.java | 19 ------ .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../api/messages/AddLabelJsonSerdeTest.java | 62 +++++++++++++++++++ src/test/resources/json/AddLabel.request.json | 11 ++++ src/test/resources/json/AddLabel.result.json | 3 + 6 files changed, 86 insertions(+), 23 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java create mode 100644 src/test/resources/json/AddLabel.request.json create mode 100644 src/test/resources/json/AddLabel.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java index 01f4169..aab7321 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; import lombok.Builder; @@ -15,11 +17,11 @@ private AddLabel() {} @Value public static class Request { - String chartTag; - Map labelParams; + @NonNull String chartTag; + @NonNull Map labelParams; @Builder - public Request(final @NonNull String chartTag, final @NonNull Map labelParams) { + private Request(final String chartTag, final Map labelParams) { this.chartTag = chartTag; this.labelParams = ImmutableMap.copyOf(labelParams); } @@ -38,6 +40,11 @@ public static class Result { int labelId; + @JsonCreator + public Result(@JsonProperty(value = "label_id", required = true) int labelId) { + this.labelId = labelId; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java deleted file mode 100644 index 1a42eb5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class AddLabelResultJsonDeserializer extends JsonDeserializer { - - @Override - public AddLabel.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new AddLabel.Result( node.get("label_id").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 759fb05..bc7cbe6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -30,7 +30,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); - super.addDeserializer(AddLabel.Result.class, new AddLabelResultJsonDeserializer()); super.addDeserializer(AllocTable.Result.class, new AllocTableResultJsonDeserializer()); super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java new file mode 100644 index 0000000..1f31c22 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AddLabelJsonSerdeTest { + + private static ObjectMapper sut; + + private static AddLabel.Request requestObj; + private static AddLabel.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = AddLabel.Request.builder() + .chartTag("1") + .labelParams(ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + )) + .build(); + + resultObj = new AddLabel.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/AddLabel.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/AddLabel.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final AddLabel.Result actualResultObj = sut.readValue(resultJson, AddLabel.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/AddLabel.request.json b/src/test/resources/json/AddLabel.request.json new file mode 100644 index 0000000..212896f --- /dev/null +++ b/src/test/resources/json/AddLabel.request.json @@ -0,0 +1,11 @@ +{ + "method" : "AddLabel", + "args" : { + "chart_tag" : "1", + "label_params" : { + "key1" : "value1", + "key2" : "value2", + "key3" : "value3" + } + } +} \ No newline at end of file diff --git a/src/test/resources/json/AddLabel.result.json b/src/test/resources/json/AddLabel.result.json new file mode 100644 index 0000000..86bd669 --- /dev/null +++ b/src/test/resources/json/AddLabel.result.json @@ -0,0 +1,3 @@ +{ + "label_id" : 1 +} \ No newline at end of file From 6dd8fc848b75285c0b547e205c38557a065b300d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 01:01:04 +0300 Subject: [PATCH 139/549] Removed custom JSON deserializer for AllocTable. --- .../quik/lua/rpc/api/messages/AllocTable.java | 9 +++- .../AllocTableResultJsonDeserializer.java | 19 ------- .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../api/messages/AllocTableJsonSerdeTest.java | 54 +++++++++++++++++++ .../resources/json/AllocTable.request.json | 4 ++ .../resources/json/AllocTable.result.json | 3 ++ 6 files changed, 69 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java create mode 100644 src/test/resources/json/AllocTable.request.json create mode 100644 src/test/resources/json/AllocTable.result.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java index ab8a582..3ab7ea0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; @@ -7,13 +9,18 @@ public final class AllocTable { private AllocTable() {} - public static enum Request { INSTANCE; } + public enum Request { INSTANCE; } @Value public static class Result { int tId; + @JsonCreator + public Result(@JsonProperty(value = "t_id", required = true) int tId) { + this.tId = tId; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java deleted file mode 100644 index 325c3a7..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class AllocTableResultJsonDeserializer extends JsonDeserializer { - - @Override - public AllocTable.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new AllocTable.Result( node.get("t_id").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index bc7cbe6..72a4fa6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -30,7 +30,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); - super.addDeserializer(AllocTable.Result.class, new AllocTableResultJsonDeserializer()); super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); super.addDeserializer(Clear.Result.class, new ClearResultJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java new file mode 100644 index 0000000..b864dec --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AllocTableJsonSerdeTest { + + private static ObjectMapper sut; + + private static AllocTable.Request requestObj; + private static AllocTable.Result resultObj; + private static String requestJson; + private static String resultJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = AllocTable.Request.INSTANCE; + + resultObj = new AllocTable.Result(1); + + requestJson = + Resources.toString(Resources.getResource("json/AllocTable.request.json"), Charsets.UTF_8); + resultJson = + Resources.toString(Resources.getResource("json/AllocTable.result.json"), Charsets.UTF_8); + } + + @Test + public void testRequestSerialize() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testResultDeserialize() throws IOException { + + final AllocTable.Result actualResultObj = sut.readValue(resultJson, AllocTable.Result.class); + + assertEquals(resultObj, actualResultObj); + } +} diff --git a/src/test/resources/json/AllocTable.request.json b/src/test/resources/json/AllocTable.request.json new file mode 100644 index 0000000..78571bd --- /dev/null +++ b/src/test/resources/json/AllocTable.request.json @@ -0,0 +1,4 @@ +{ + "method" : "AllocTable", + "args" : { } +} \ No newline at end of file diff --git a/src/test/resources/json/AllocTable.result.json b/src/test/resources/json/AllocTable.result.json new file mode 100644 index 0000000..9d59796 --- /dev/null +++ b/src/test/resources/json/AllocTable.result.json @@ -0,0 +1,3 @@ +{ + "t_id" : 1 +} \ No newline at end of file From 07fa6d62e060b67d48108f43eae7546f2f355693 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 01:33:32 +0300 Subject: [PATCH 140/549] Deleted unused classes. --- .../lua/rpc/api/RemoteProcedureCaller.java | 57 ------------------- .../enfernuz/quik/lua/rpc/api/RpcGateway.java | 15 ----- .../quik/lua/rpc/api/zmq/ZmqRpcGateway.java | 16 ------ .../lua/rpc/api/zmq/ZmqTcpRpcGateway.java | 15 ----- 4 files changed, 103 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RpcGateway.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqRpcGateway.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpRpcGateway.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java deleted file mode 100644 index 307e1f5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api; - -import com.google.protobuf.MessageLite; -import qlua.rpc.RPC; - -import java.io.IOException; - -/** - * Интерфейс компонента, выполняющего удалённый вызов процедур к API QLua терминала QUIK в формате удалённого вызова - * процедур. - */ -public interface RemoteProcedureCaller { - - /** - * Выполняет удалённый вызов процедуры API QLua терминала QUIK без передачи аргументов. - * - * @param procedureType тип вызываемой процедуры - * @return результат вызова процедуры - * @throws RpcException в случае возникновения ошибки при вызове процедуры - */ - RPC.Response call(RPC.ProcedureType procedureType) throws RpcException; - - /** - * Выполняет удалённый вызов процедуры API QLua терминала QUIK с передачей аргументов. - * - * @param procedureType тип вызываемой процедуры - * @param args аргументы вызываемой процедуры - * @return результат вызова процедуры - * @throws RpcException в случае возникновения ошибки при вызове процедуры - */ - RPC.Response call(RPC.ProcedureType procedureType, MessageLite args) throws RpcException; - - /** - * Исключение, бросаемое в случае возникновения ошибки при удалённом вызове процедуры к API QLua терминала QUIK. - */ - final class RpcException extends IOException { - - /** - * Создаёт экземпляр исключения с указанным сообщением. - * - * @param message сообщение - */ - public RpcException(String message) { - super(message); - } - - /** - * Создаёт экземпляр исключения с указанными сообщением и причиной. - * - * @param message сообщение - * @param cause причина - */ - public RpcException(String message, Throwable cause) { - super(message, cause); - } - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcGateway.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcGateway.java deleted file mode 100644 index 60eb156..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcGateway.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api; - -import com.enfernuz.quik.lua.rpc.api.security.Securable; -import com.enfernuz.quik.lua.rpc.io.Gateway; - -/** - * Компонент Шлюз удалённого вызова процедур, удовлетворяющий следующим критериям: - *

- */ -public interface RpcGateway extends RemoteProcedureCaller, Gateway, Securable { -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqRpcGateway.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqRpcGateway.java deleted file mode 100644 index 190285e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqRpcGateway.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.zmq; - -import com.enfernuz.quik.lua.rpc.api.RpcGateway; -import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; - -/** - * Компонент Шлюз удалённого вызова процедур на базе ZeroMQ, удовлетворяющий следующим критериям: - *
    - *
  • 1. является {@link RpcGateway шлюзом удалённого вызова процедур}
  • - *
  • 2. поддерживает механизмы защиты передачи данных, реализованные в ZeroMQ
  • - *
- * - * @see ZeroMQ - Distributed Messaging - */ -public interface ZmqRpcGateway extends RpcGateway, ZmqSecurable { -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpRpcGateway.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpRpcGateway.java deleted file mode 100644 index 90bcb20..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpRpcGateway.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.zmq; - -import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; - -/** - * Компонент TCP-шлюз удалённого вызова процедур на базе ZeroMQ, удовлетворяющий следующим критериям: - *
    - *
  • 1. является {@link ZmqRpcGateway шлюзом удалённого вызова процедур на базе ZeroMQ}
  • - *
  • 2. является {@link TcpGateway TCP-шлюзом}
  • - *
- * - * @see ZeroMQ - Distributed Messaging - */ -public interface ZmqTcpRpcGateway extends ZmqRpcGateway, TcpGateway { -} From a6f4fbb2003a965b1aa14155768f83a65bd62740 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 01:34:23 +0300 Subject: [PATCH 141/549] Renamed and moved some JSON files. --- .../quik/lua/rpc/api/structures/FirmJsonSerdeTest.java | 2 +- .../rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java | 3 +-- .../quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java | 3 +-- .../quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java | 2 +- .../lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java | 2 +- src/test/resources/json/{firm.json => structures/Firm.json} | 0 .../FuturesClientHolding.json} | 0 .../json/{futures_limit.json => structures/FuturesLimit.json} | 0 src/test/resources/json/{money.json => structures/Money.json} | 0 .../{portfolio_info.json => structures/PortfolioInfo.json} | 0 10 files changed, 5 insertions(+), 7 deletions(-) rename src/test/resources/json/{firm.json => structures/Firm.json} (100%) rename src/test/resources/json/{futures_client_holding.json => structures/FuturesClientHolding.json} (100%) rename src/test/resources/json/{futures_limit.json => structures/FuturesLimit.json} (100%) rename src/test/resources/json/{money.json => structures/Money.json} (100%) rename src/test/resources/json/{portfolio_info.json => structures/PortfolioInfo.json} (100%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java index aa5028b..6f3991e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java @@ -27,7 +27,7 @@ public static void globalSetup() throws IOException { .exchange("4") .build(); - firmAsJson = Resources.toString(Resources.getResource("json/firm.json"), Charsets.UTF_8); + firmAsJson = Resources.toString(Resources.getResource("json/structures/Firm.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java index df4a94a..653c702 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; import com.google.common.io.Resources; @@ -44,7 +43,7 @@ public static void globalSetup() throws IOException { .build(); futuresClientHoldingAsJson = - Resources.toString(Resources.getResource("json/futures_client_holding.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/structures/FuturesClientHolding.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java index bdd7662..8bfc661 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Charsets; import com.google.common.io.Resources; @@ -41,7 +40,7 @@ public static void globalSetup() throws IOException { .realVarMargin("17") .build(); - expectedJson = Resources.toString(Resources.getResource("json/futures_limit.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/structures/FuturesLimit.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java index 9bdd432..b15f597 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java @@ -30,7 +30,7 @@ public static void globalSetup() throws IOException { .moneyLimitAvailable("7") .build(); - moneyAsJson = Resources.toString(Resources.getResource("json/money.json"), Charsets.UTF_8); + moneyAsJson = Resources.toString(Resources.getResource("json/structures/Money.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java index da9c54f..1c3d12c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java @@ -63,7 +63,7 @@ public static void globalSetup() throws IOException { .currTag("40") .build(); - portfolioInfoAsJson = Resources.toString(Resources.getResource("json/portfolio_info.json"), Charsets.UTF_8); + portfolioInfoAsJson = Resources.toString(Resources.getResource("json/structures/PortfolioInfo.json"), Charsets.UTF_8); } @Test diff --git a/src/test/resources/json/firm.json b/src/test/resources/json/structures/Firm.json similarity index 100% rename from src/test/resources/json/firm.json rename to src/test/resources/json/structures/Firm.json diff --git a/src/test/resources/json/futures_client_holding.json b/src/test/resources/json/structures/FuturesClientHolding.json similarity index 100% rename from src/test/resources/json/futures_client_holding.json rename to src/test/resources/json/structures/FuturesClientHolding.json diff --git a/src/test/resources/json/futures_limit.json b/src/test/resources/json/structures/FuturesLimit.json similarity index 100% rename from src/test/resources/json/futures_limit.json rename to src/test/resources/json/structures/FuturesLimit.json diff --git a/src/test/resources/json/money.json b/src/test/resources/json/structures/Money.json similarity index 100% rename from src/test/resources/json/money.json rename to src/test/resources/json/structures/Money.json diff --git a/src/test/resources/json/portfolio_info.json b/src/test/resources/json/structures/PortfolioInfo.json similarity index 100% rename from src/test/resources/json/portfolio_info.json rename to src/test/resources/json/structures/PortfolioInfo.json From b73bb3e3ffa66304abb1f073f116cf332706e869 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 01:34:45 +0300 Subject: [PATCH 142/549] Removed unnecessary annotation. --- .../java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java index cbd0cc8..38f056f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java @@ -8,7 +8,7 @@ public class ServiceRpcException extends RpcException { @NonNull ServiceError error; - public ServiceRpcException(@NonNull final ServiceError error) { + public ServiceRpcException(final ServiceError error) { this.error = error; } } From c31b926becb3af22b017c5e8b825e3094eb46e3f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 01:35:14 +0300 Subject: [PATCH 143/549] Refactoring: extracted methods. --- .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 137 ++++++++++-------- 1 file changed, 74 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java index c3cc74f..c342306 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java @@ -18,6 +18,7 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; +import org.jetbrains.annotations.NotNull; import org.zeromq.ZFrame; import org.zeromq.ZMQ; import org.zeromq.ZMsg; @@ -51,27 +52,10 @@ public class ZmqTcpQluaRpcClientImpl implements ZmqTcpQluaRpcClient { */ public static ZmqTcpQluaRpcClientImpl newInstance(final ClientConfiguration config) { - final SerdeModule serdeModule; - switch (config.getSerdeProtocol()) { - case JSON: - serdeModule = JsonSerdeModule.INSTANCE; - break; - case PROTOBUF: - serdeModule = ProtobufSerdeModule.INSTANCE; - break; - default: - throw new IllegalArgumentException( - String.format( - "Неподдерживаемый протокол сериализации/десериализации сообщений: %s.", - config.getSerdeProtocol() - ) - ); - } - return new ZmqTcpQluaRpcClientImpl( requireNonNull(config.getNetworkAddress(), "Аргумент 'networkAddress' не должен быть null."), requireNonNull(config.getAuthContext(), "Аргумент 'authContext' не должен быть null."), - serdeModule + getSerdeModule(config) ); } @@ -101,47 +85,19 @@ public void open() throws IOException { if (!isOpened) { - zmqContext = ZMQ.context(1); - - reqSocket = zmqContext.socket(ZMQ.REQ); - reqSocket.setLinger(0); // no waiting before closing the socket - - switch (authContext.getAuthMechanism()) { - case PLAIN: - final PlainCredentials plainCredentials = authContext.getPlainCredentials(); - reqSocket.setPlainUsername( plainCredentials.getUsername() ); - reqSocket.setPlainPassword( plainCredentials.getPassword() ); - break; - case CURVE: - final CurveCredentials curveCredentials = authContext.getCurveCredentials(); - final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); - reqSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); - reqSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); - reqSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); - break; - case NULL: - break; - default: - throw new IllegalStateException( - String.format( - "Unsupported authentication mechanism: \"s\".", - authContext.getAuthMechanism() - ) - ); - } + initializeIO(); - final boolean _isConnected = this.reqSocket.connect(uri); - if (_isConnected) { + if ( reqSocket.connect(uri) ) { isOpened = true; } else { - final String errorMessage = - String.format("Couldn't connect to '%s'. ZMQ socket errno:", uri, reqSocket.errno()); + final String errorMessage = String.format( + "Не удалось соединиться с '%s'. Номер ошибки (errno) сокета ZMQ: %d.", + uri, + reqSocket.errno() + ); - reqSocket.close(); - zmqContext.term(); - zmqContext = null; - reqSocket = null; + deinitializeIO(); throw new IOException(errorMessage); } @@ -158,19 +114,13 @@ public void close() throws IOException { if (isOpened) { - final boolean isDisconnected = reqSocket.disconnect(uri); - - if (isDisconnected) { - reqSocket.close(); - zmqContext.term(); - zmqContext = null; - reqSocket = null; - + if (reqSocket.disconnect(uri)) { isOpened = false; + deinitializeIO(); } else { throw new IOException( String.format( - "Couldn't disconnect from '%s'. ZMQ socket errno: %d", + "Не удалось отсоединиться от '%s'. Номер ошибки (errno) сокета ZMQ: %d", uri, reqSocket.errno() ) @@ -616,4 +566,65 @@ private U makeRPC(final T request, final Class resultClass) { throw new ClientRpcException(ex); } } + + private void initializeIO() { + + zmqContext = ZMQ.context(1); + + reqSocket = zmqContext.socket(ZMQ.REQ); + reqSocket.setLinger(0); // no waiting before closing the socket + + switch (authContext.getAuthMechanism()) { + case PLAIN: + final PlainCredentials plainCredentials = authContext.getPlainCredentials(); + reqSocket.setPlainUsername( plainCredentials.getUsername() ); + reqSocket.setPlainPassword( plainCredentials.getPassword() ); + break; + case CURVE: + final CurveCredentials curveCredentials = authContext.getCurveCredentials(); + final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); + reqSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); + reqSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); + reqSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); + break; + case NULL: + break; + default: + throw new IllegalStateException( + String.format( + "Unsupported authentication mechanism: \"s\".", + authContext.getAuthMechanism() + ) + ); + } + } + + private void deinitializeIO() { + reqSocket.close(); + zmqContext.term(); + zmqContext = null; + reqSocket = null; + } + + @NotNull + private static SerdeModule getSerdeModule(@NotNull final ClientConfiguration config) { + + final SerdeModule serdeModule; + switch (config.getSerdeProtocol()) { + case JSON: + serdeModule = JsonSerdeModule.INSTANCE; + break; + case PROTOBUF: + serdeModule = ProtobufSerdeModule.INSTANCE; + break; + default: + throw new IllegalArgumentException( + String.format( + "Неподдерживаемый протокол сериализации/десериализации сообщений: %s.", + config.getSerdeProtocol() + ) + ); + } + return serdeModule; + } } From f33035658ee6030db5e7977cba3c992eb24a5812 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 03:33:29 +0300 Subject: [PATCH 144/549] Refactoring the architecture. --- .../lua/rpc/api/zmq/AbstractTcpZmqClient.java | 87 +++ .../zmq/AbstractZmqTcpQluaEventPoller.java | 210 ++++++ .../zmq/BlockingZmqTcpQluaEventPoller.java | 30 + .../zmq/NonBlockingZmqTcpQluaEventPoller.java | 31 + .../api => api/zmq}/QluaEventPoller.java | 27 +- .../zmq}/TcpQluaEventProcessor.java | 3 +- .../lua/rpc/api/zmq/TcpQluaRpcClient.java | 7 + .../lua/rpc/api/zmq/ZmqQluaRpcClient.java | 13 - .../zmq/ZmqTcpQluaEventPoller.java} | 5 +- .../zmq}/ZmqTcpQluaEventProcessor.java | 46 +- .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 527 ++++++++++++++- .../quik/lua/rpc/api/zmq/ZmqUtils.java | 56 ++ .../api/zmq/impl/ZmqTcpQluaRpcClientImpl.java | 630 ------------------ .../JsonSubscriptionExampleApplication.java | 7 +- ...rotobufSubscriptionExampleApplication.java | 6 +- .../application/RpcExampleApplication.java | 3 +- .../SubscriptionExampleApplication.java | 2 +- .../quik/lua/rpc/events/api/PollingMode.java | 18 + .../events/impl/ZmqTcpQluaEventPoller.java | 311 --------- .../quik/lua/rpc/serde/SerdeUtils.java | 37 + .../zmq/impl/ZmqTcpQluaRpcClientImplTest.java | 4 +- 21 files changed, 1043 insertions(+), 1017 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/BlockingZmqTcpQluaEventPoller.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/NonBlockingZmqTcpQluaEventPoller.java rename src/main/java/com/enfernuz/quik/lua/rpc/{events/api => api/zmq}/QluaEventPoller.java (70%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events/api => api/zmq}/TcpQluaEventProcessor.java (82%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaRpcClient.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqQluaRpcClient.java rename src/main/java/com/enfernuz/quik/lua/rpc/{events/api/TcpQluaEventPoller.java => api/zmq/ZmqTcpQluaEventPoller.java} (70%) rename src/main/java/com/enfernuz/quik/lua/rpc/{events/impl => api/zmq}/ZmqTcpQluaEventProcessor.java (85%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/api/PollingMode.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java new file mode 100644 index 0000000..077082a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java @@ -0,0 +1,87 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.zeromq.ZMQ; + +import java.io.IOException; + +import static java.util.Objects.requireNonNull; + +abstract class AbstractTcpZmqClient implements TcpGateway { + + private final NetworkAddress networkAddress; + private final String uri; + private boolean isOpened; + + AbstractTcpZmqClient(final @NotNull NetworkAddress networkAddress) { + this.networkAddress = requireNonNull(networkAddress, "Аргумент 'networkAddress' не должен быть null."); + this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); + } + + abstract ZMQ.Socket getSocket(); + + abstract void initializeIO(); + + abstract void deinitializeIO(); + + @Contract(pure = true) + @Override + public final NetworkAddress getNetworkAddress() { + return networkAddress; + } + + @Override + public final void open() throws IOException { + + if (!isOpened) { + + initializeIO(); + + final ZMQ.Socket socket = getSocket(); + if ( socket.connect(uri) ) { + isOpened = true; + } else { + + final String errorMessage = String.format( + "Не удалось соединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", + uri, + socket.errno() + ); + + deinitializeIO(); + + throw new IOException(errorMessage); + } + } + } + + @Contract(pure = true) + @Override + public final boolean isOpened() { + return isOpened; + } + + @Override + public final void close() throws IOException { + + if (isOpened) { + + final ZMQ.Socket socket = getSocket(); + if ( socket.disconnect(uri) ) { + isOpened = false; + deinitializeIO(); + } else { + throw new IOException( + String.format( + "Не удалось разъединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", + uri, + socket.errno() + ) + ); + } + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java new file mode 100644 index 0000000..9be6573 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java @@ -0,0 +1,210 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.common.collect.ImmutableSet; +import org.jetbrains.annotations.Contract; +import org.zeromq.ZMQ; +import org.zeromq.ZMsg; + +import java.nio.charset.StandardCharsets; +import java.util.EnumSet; + +/** + * Компонент, опрашивающий удалённый RPC-сервис quik-lua-rpc на предмет появления новых событий API QLua + * терминала QUIK. + *
+ * Связь с quik-lua-rpc происходит по протоколу TCP с помощью ZeroMQ. + *
+ * Экземпляры класса не потокобезопасны. + * + * @see quik-lua-rpc + * @see ZeroMQ - Distributed Messaging + */ +abstract class AbstractZmqTcpQluaEventPoller extends AbstractTcpZmqClient implements ZmqTcpQluaEventPoller { + + private ZMQ.Context zmqContext; + private ZMQ.Socket subSocket; + private final AuthContext authContext; + private final EnumSet subscription; + private final SerdeModule serdeModule; + + /** + * Создаёт новый экземпляр опрашивателя очереди событий, с точкой подключения RPC-сервиса на стороне + * терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. + * + * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK + * @param authContext контекст защиты передачи данных + * @param serdeModule модуль сериализации/десериализации доменных объектов QLua + * @return новый экземпляр компонента {@link AbstractZmqTcpQluaEventPoller} + */ + AbstractZmqTcpQluaEventPoller( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeModule serdeModule) { + + super(networkAddress); + + this.authContext = authContext; + this.serdeModule = serdeModule; + this.subscription = EnumSet.noneOf(QluaEvent.EventType.class); + } + + abstract byte[] receiveSubscriptionKeyAsBytes(); + + /** + * Получает следующее событие в очереди событий терминала API QLua терминала QUIK. + * + * @return следующее событие в очереди событий терминала API QLua терминала QUIK или null, если очередь пуста + * @throws PollingException в случае ошибки при попытке получить следующее событие в очереди событий терминала API + * QLua терминала QUIK + */ + @Override + public QluaEvent poll() throws PollingException { + + try { + + final QluaEvent result; + final byte[] subscriptionKeyAsBytes = receiveSubscriptionKeyAsBytes(); + if (subscriptionKeyAsBytes == null) { + result = null; + } else { + + final QluaEvent.EventType eventType = serdeModule.deserialize(QluaEvent.EventType.class, subscriptionKeyAsBytes); + if (eventType == null) { + throw new PollingException( + String.format( + "Неизвестный ключ подписки на QLua-события: \"%s\".", + new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8) + ) + ); + } + + if ( subSocket.hasReceiveMore() ) { + + final ZMsg eventDataAsMsg = ZMsg.recvMsg(subSocket); + if (eventDataAsMsg == null) { + throw new PollingException( + String.format("Для QLua-события \"%s\" не получено данных.", eventType) + ); + } + + result = QluaEvent.create(eventType, ZmqUtils.convertZMsgToByteArray(eventDataAsMsg)); + } else { + result = QluaEvent.create(eventType); + } + } + + return result; + } catch (final PollingException ex) { + throw ex; + } catch (final Exception ex) { + throw new PollingException("Ошибка при чтении очереди QLua-событий.", ex); + } + } + + @Override + public void subscribe(final QluaEvent.EventType eventType) { + + if (isOpened()) { + subSocket.subscribe( serdeModule.serialize(eventType) ); + } + + subscription.add(eventType); + } + + @Override + public void subscribe(final Iterable eventTypes) { + + for (final QluaEvent.EventType eventType : eventTypes) { + subscribe(eventType); + } + } + + @Override + public void subscribe(final QluaEvent.EventType... eventTypes) { + + for (final QluaEvent.EventType eventType : eventTypes) { + subscribe(eventType); + } + } + + @Override + public void subscribeToEverything() { + subscribe( QluaEvent.EventType.values() ); + } + + @Override + public void unsubscribe(final QluaEvent.EventType eventType) { + + if (isOpened()) { + subSocket.unsubscribe( serdeModule.serialize(eventType) ); + } + + subscription.remove(eventType); + } + + @Override + public void unsubscribe(final Iterable eventTypes) { + + for (final QluaEvent.EventType eventType : eventTypes) { + unsubscribe(eventType); + } + } + + @Override + public void unsubscribe(final QluaEvent.EventType... eventTypes) { + + for (final QluaEvent.EventType eventType : eventTypes) { + unsubscribe(eventType); + } + } + + @Override + public void unsubscribeFromEverything() { + unsubscribe( QluaEvent.EventType.values() ); + } + + @Override + public ImmutableSet getCurrentSubscription() { + return ImmutableSet.copyOf(subscription); + } + + @Contract(pure = true) + @Override + public final AuthContext getAuthContext() { + return authContext; + } + + @Override + final void initializeIO() { + + zmqContext = ZMQ.context(1); + zmqContext.setMaxSockets(1); + subSocket = zmqContext.socket(ZMQ.SUB); + subSocket.setLinger(0); // no waiting before closing the socket + + for (final QluaEvent.EventType eventType : subscription) { + subSocket.subscribe( serdeModule.serialize(eventType) ); + } + + ZmqUtils.setSocketSecurity(subSocket, authContext); + } + + @Override + final void deinitializeIO() { + + subSocket.close(); + zmqContext.term(); + zmqContext = null; + subSocket = null; + } + + @Contract(pure = true) + @Override + final ZMQ.Socket getSocket() { + return subSocket; + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/BlockingZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/BlockingZmqTcpQluaEventPoller.java new file mode 100644 index 0000000..86518d2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/BlockingZmqTcpQluaEventPoller.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; + +final class BlockingZmqTcpQluaEventPoller extends AbstractZmqTcpQluaEventPoller { + + /** + * Создаёт новый экземпляр блокирующего опрашивателя очереди событий, с точкой подключения RPC-сервиса + * на стороне терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. + * + * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK + * @param authContext контекст защиты передачи данных + * @param serdeModule модуль сериализации/десериализации доменных объектов QLua + * @return новый экземпляр компонента {@link BlockingZmqTcpQluaEventPoller} + */ + BlockingZmqTcpQluaEventPoller( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeModule serdeModule) { + + super(networkAddress, authContext, serdeModule); + } + + @Override + byte[] receiveSubscriptionKeyAsBytes() { + return getSocket().recv(); // blocking call + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/NonBlockingZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/NonBlockingZmqTcpQluaEventPoller.java new file mode 100644 index 0000000..087f768 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/NonBlockingZmqTcpQluaEventPoller.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.zeromq.ZMQ; + +final class NonBlockingZmqTcpQluaEventPoller extends AbstractZmqTcpQluaEventPoller { + + /** + * Создаёт новый экземпляр неблокирующего опрашивателя очереди событий, с точкой подключения RPC-сервиса + * на стороне терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. + * + * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK + * @param authContext контекст защиты передачи данных + * @param serdeModule модуль сериализации/десериализации доменных объектов QLua + * @return новый экземпляр компонента {@link NonBlockingZmqTcpQluaEventPoller} + */ + NonBlockingZmqTcpQluaEventPoller( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeModule serdeModule) { + + super(networkAddress, authContext, serdeModule); + } + + @Override + byte[] receiveSubscriptionKeyAsBytes() { + return getSocket().recv(ZMQ.NOBLOCK); // non-blocking call + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/QluaEventPoller.java similarity index 70% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/QluaEventPoller.java index eafdce4..35b9559 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/QluaEventPoller.java @@ -1,5 +1,7 @@ -package com.enfernuz.quik.lua.rpc.events.api; +package com.enfernuz.quik.lua.rpc.api.zmq; +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventSubscription; import com.enfernuz.quik.lua.rpc.io.Gateway; /** @@ -7,35 +9,16 @@ * терминала QUIK. * @see quik-lua-rpc */ -public interface QluaEventPoller extends QluaEventSubscription, Gateway { +interface QluaEventPoller extends QluaEventSubscription, Gateway { /** * Опрашивает удалённый RPC-сервис quik-lua-rpc на предмет появления нового события API QLua терминала QUIK. * - * @param mode режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала - * QUIK * @return {@link QluaEvent событие} API QLua терминала QUIK или null в случае отсутствия новых событий * @throws PollingException в случае ошибки при опросе удалённого RPC-сервиса quik-lua-rpc на предмет * появления нового события API QLua терминала QUIK */ - QluaEvent poll(final PollingMode mode) throws PollingException; - - /** - * Режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала - * QUIK. - */ - enum PollingMode { - - /** - * Блокирующее чтение очереди событий. Читающий поток заблокируется до получения нового события. - */ - BLOCKING, - - /** - * Неблокирующее чтение очереди событий. Читающий поток не блокируется при отсутствии новых событий. - */ - NO_BLOCKING; - } + QluaEvent poll() throws PollingException; /** * Исключение, возникающее в случае ошибки при опросе удалённого RPC-сервиса quik-lua-rpc на предмет diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaEventProcessor.java similarity index 82% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventProcessor.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaEventProcessor.java index 53967e2..0d4848a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaEventProcessor.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.events.api; +package com.enfernuz.quik.lua.rpc.api.zmq; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; /** diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaRpcClient.java new file mode 100644 index 0000000..f2e1102 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/TcpQluaRpcClient.java @@ -0,0 +1,7 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.api.QluaRpcClient; +import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; + +public interface TcpQluaRpcClient extends QluaRpcClient, TcpGateway { +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqQluaRpcClient.java deleted file mode 100644 index 1fbcd2b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqQluaRpcClient.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.zmq; - -import com.enfernuz.quik.lua.rpc.api.QluaRpcClient; -import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; - -/** - * Компонент, представляющий собой Java-обёртку над API QLua терминала QUIK и поддерживающий защищённую передачу данных - * с помощью ZeroMQ. - * - * @see ZeroMQ - Distributed Messaging - */ -public interface ZmqQluaRpcClient extends QluaRpcClient, ZmqSecurable { -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventPoller.java similarity index 70% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventPoller.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventPoller.java index 68800f4..d843452 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/TcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventPoller.java @@ -1,5 +1,6 @@ -package com.enfernuz.quik.lua.rpc.events.api; +package com.enfernuz.quik.lua.rpc.api.zmq; +import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; /** @@ -9,5 +10,5 @@ * Связь с quik-lua-rpc происходит по протоколу TCP. * @see quik-lua-rpc */ -public interface TcpQluaEventPoller extends QluaEventPoller, TcpGateway { +interface ZmqTcpQluaEventPoller extends QluaEventPoller, TcpGateway, ZmqSecurable { } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java similarity index 85% rename from src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java rename to src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java index 644a63a..8bbc651 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java @@ -1,10 +1,13 @@ -package com.enfernuz.quik.lua.rpc.events.impl; +package com.enfernuz.quik.lua.rpc.api.zmq; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; import com.enfernuz.quik.lua.rpc.api.structures.*; +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.events.api.*; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.SerdeUtils; import com.google.common.collect.*; import java.io.IOException; @@ -25,7 +28,7 @@ * @see quik-lua-rpc * @see ZeroMQ - Distributed Messaging */ -public class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor { +public final class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor, ZmqSecurable { private ZmqTcpQluaEventPoller eventPoller; private final List eventHandlers; @@ -35,20 +38,26 @@ public class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor { * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventProcessor}, с точкой подключения RPC-сервиса на стороне * терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. * - * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK - * @param authContext контекст защиты передачи данных - * @param serdeModule модуль сериализации/десериализации доменных объектов QLua + * @param config конфигурация клиента точки подключения к RPC-сервису QUIK * @return новый экземпляр компонента {@link ZmqTcpQluaEventProcessor} */ - public static ZmqTcpQluaEventProcessor newInstance( - final NetworkAddress networkAddress, - final AuthContext authContext, - final SerdeModule serdeModule) { - - return new ZmqTcpQluaEventProcessor( - ZmqTcpQluaEventPoller.newInstance(networkAddress, authContext, serdeModule), - serdeModule - ); + public static ZmqTcpQluaEventProcessor newInstance(final ClientConfiguration config, final PollingMode pollingMode) { + + final SerdeModule serdeModule = SerdeUtils.getSerdeModule( config.getSerdeProtocol() ); + final ZmqTcpQluaEventPoller eventPoller; + switch ( requireNonNull(pollingMode, "Аргумент 'pollingMode' не должен быть null.") ) { + case BLOCKING: + eventPoller = new BlockingZmqTcpQluaEventPoller(config.getNetworkAddress(), config.getAuthContext(), serdeModule); + break; + case NO_BLOCKING: + eventPoller = new NonBlockingZmqTcpQluaEventPoller(config.getNetworkAddress(), config.getAuthContext(), serdeModule); + break; + default: + throw new IllegalArgumentException(String.format("Неподдерживаемый режим чтения очереди событий: '%s'.", pollingMode)); + } + + + return new ZmqTcpQluaEventProcessor(eventPoller, serdeModule); } private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final SerdeModule serdeModule) { @@ -58,13 +67,18 @@ private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final this.eventHandlers = new CopyOnWriteArrayList<>(); } + @Override + public AuthContext getAuthContext() { + return eventPoller.getAuthContext(); + } + @Override public void process() throws QluaEventProcessingException { try { - final QluaEvent event = eventPoller.poll(QluaEventPoller.PollingMode.BLOCKING); - final byte[] eventData = event.getData(); + final QluaEvent event = eventPoller.poll(); if (event != null) { + final byte[] eventData = event.getData(); for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { case ON_STOP: diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index b5409f2..df40a0c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -1,16 +1,523 @@ package com.enfernuz.quik.lua.rpc.api.zmq; -import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; +import com.enfernuz.quik.lua.rpc.api.ClientRpcException; +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.ServiceRpcException; +import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; +import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; +import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.SerdeUtils; +import org.jetbrains.annotations.Contract; +import org.zeromq.ZMQ; +import org.zeromq.ZMsg; + +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; /** - * Компонент Java-обёртка над API QLua терминала QUIK, удовлетворяющий следующим критериям: - *
    - *
  • 1. передача данных с помощью ZeroMQ
  • - *
  • 2. использование протокола TCP на транспортном уровне для осуществления межпроцессного взаимодействия
  • - *
  • 3. поддержка защиты передачи данных с помощью механизмов ZeroMQ
  • - *
- * - * @see ZeroMQ - Distributed Messaging + * Реализация компонента Java-обёртка над API QLua терминала QUIK на базе ZeroMQ. */ -public interface ZmqTcpQluaRpcClient extends ZmqQluaRpcClient, TcpGateway { +public final class ZmqTcpQluaRpcClient extends AbstractTcpZmqClient implements TcpQluaRpcClient, ZmqSecurable { + + private ZMQ.Context zmqContext; + private ZMQ.Socket reqSocket; + private final AuthContext authContext; + + private final SerdeModule serdeModule; + + /** + * Создаёт новый экземпляр компонента {@link ZmqTcpQluaRpcClient}, соответствующий заданной конфигурации клиента + * точки подключения к RPC-сервису QUIK. + * + * @param config конфигурация клиента точки подключения к RPC-сервису QUIK + * @return новый экземпляр компонента {@link ZmqTcpQluaRpcClient} + */ + public static ZmqTcpQluaRpcClient newInstance(final ClientConfiguration config) { + + return new ZmqTcpQluaRpcClient( + requireNonNull(config.getNetworkAddress(), "Свойство аргумента 'config.getNetworkAddress()' не должно быть null."), + requireNonNull(config.getAuthContext(), "Свойство аргумента 'config.getAuthContext()' не должно быть null."), + SerdeUtils.getSerdeModule( config.getSerdeProtocol() ) + ); + } + + private ZmqTcpQluaRpcClient( + final NetworkAddress networkAddress, + final AuthContext authContext, + final SerdeModule serdeModule) { + + super(networkAddress); + + this.authContext = authContext; + this.serdeModule = serdeModule; + } + + @Contract(pure = true) + @Override + public AuthContext getAuthContext() { + return authContext; + } + + @Contract(pure = true) + @Override + public ZMQ.Socket getSocket() { + return reqSocket; + } + + @Override + void initializeIO() { + + zmqContext = ZMQ.context(1); + + reqSocket = zmqContext.socket(ZMQ.REQ); + reqSocket.setLinger(0); // no waiting before closing the socket + + ZmqUtils.setSocketSecurity(reqSocket, authContext); + } + + @Override + void deinitializeIO() { + + reqSocket.close(); + zmqContext.term(); + zmqContext = null; + reqSocket = null; + } + + @Override + public AddColumn.Result qlua_AddColumn(final AddColumn.Request request) { + return makeRPC(request, AddColumn.Result.class); + } + + @Override + public AddLabel.Result qlua_AddLabel(final AddLabel.Request request) { + return makeRPC(request, AddLabel.Result.class); + } + + @Override + public AllocTable.Result qlua_AllocTable() { + return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class); + } + + @Override + public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { + return makeRPC(request, CalcBuySell.Result.class); + } + + @Override + public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamRequest.Request request) { + return makeRPC(request, CancelParamRequest.Result.class); + } + + @Override + public Clear.Result qlua_Clear(final Clear.Request request) { + return makeRPC(request, Clear.Result.class); + } + + @Override + public CreateWindow.Result qlua_CreateWindow(final CreateWindow.Request request) { + return makeRPC(request, CreateWindow.Result.class); + } + + @Override + public DelAllLabels.Result qlua_DelAllLabels(final DelAllLabels.Request request) { + return makeRPC(request, DelAllLabels.Result.class); + } + + @Override + public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request request) { + return makeRPC(request, DeleteRow.Result.class); + } + + @Override + public DelLabel.Result qlua_DelLabel(final DelLabel.Request request) { + return makeRPC(request, DelLabel.Result.class); + } + + @Override + public DestroyTable.Result qlua_DestroyTable(final DestroyTable.Request request) { + return makeRPC(request, DestroyTable.Result.class); + } + + @Override + public GetBuySellInfo.Result qlua_getBuySellInfo(final GetBuySellInfo.Request request) { + return makeRPC(request, GetBuySellInfo.Result.class); + } + + @Override + public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { + return makeRPC(request, GetBuySellInfoEx.Result.class); + } + + @Override + public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Request request) { + return makeRPC(request, GetCandlesByIndex.Result.class); + } + + @Override + public GetCell.Result qlua_GetCell(final GetCell.Result request) { + return makeRPC(request, GetCell.Result.class); + } + + @Override + public GetClassesList.Result qlua_getClassesList() { + return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class); + } + + @Override + public GetClassInfo.Result qlua_getClassInfo(final GetClassInfo.Request request) { + return makeRPC(request, GetClassInfo.Result.class); + } + + @Override + public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecurities.Request request) { + return makeRPC(request, GetClassSecurities.Result.class); + } + + @Override + public GetDepo.Result qlua_getDepo(final GetDepo.Request request) { + return makeRPC(request, GetDepo.Result.class); + } + + @Override + public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request request) { + return makeRPC(request, GetDepoEx.Result.class); + } + + @Override + public GetFuturesHolding.Result qlua_getFuturesHolding(final GetFuturesHolding.Request request) { + return makeRPC(request, GetFuturesHolding.Result.class); + } + + @Override + public GetFuturesLimit.Result qlua_getFuturesLimit(final GetFuturesLimit.Request request) { + return makeRPC(request, GetFuturesLimit.Result.class); + } + + @Override + public GetInfoParam.Result qlua_getInfoParam(final GetInfoParam.Request request) { + return makeRPC(request, GetInfoParam.Result.class); + } + + @Override + public GetItem.Result qlua_getItem(final GetItem.Request request) { + return makeRPC(request, GetItem.Result.class); + } + + @Override + public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request request) { + return makeRPC(request, GetLabelParams.Result.class); + } + + @Override + public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request request) { + return makeRPC(request, GetLinesCount.Result.class); + } + + @Override + public GetMoney.Result qlua_getMoney(final GetMoney.Request request) { + return makeRPC(request, GetMoney.Result.class); + } + + @Override + public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request request) { + return makeRPC(request, GetMoneyEx.Result.class); + } + + @Override + public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request request) { + return makeRPC(request, GetNumberOf.Result.class); + } + + @Override + public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request request) { + return makeRPC(request, GetNumCandles.Result.class); + } + + @Override + public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request request) { + return makeRPC(request, GetOrderByNumber.Result.class); + } + + @Override + public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { + return makeRPC(request, GetParamEx.Result.class); + } + + @Override + public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { + return makeRPC(request, GetParamEx2.Result.class); + } + + @Override + public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request request) { + return makeRPC(request, GetPortfolioInfo.Result.class); + } + + @Override + public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request request) { + return makeRPC(request, GetPortfolioInfoEx.Result.class); + } + + @Override + public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request request) { + return makeRPC(request, GetQuoteLevel2.Result.class); + } + + @Override + public GetScriptPath.Result qlua_getScriptPath() { + return makeRPC(GetScriptPath.Request.INSTANCE, GetScriptPath.Result.class); + } + + @Override + public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request request) { + return makeRPC(request, GetSecurityInfo.Result.class); + } + + @Override + public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request request) { + return makeRPC(request, GetTableSize.Result.class); + } + + @Override + public GetTradeDate.Result qlua_getTradeDate() { + return makeRPC(GetTradeDate.Request.INSTANCE, GetTradeDate.Result.class); + } + + @Override + public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request request) { + return makeRPC(request, GetWindowCaption.Result.class); + } + + @Override + public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request request) { + return makeRPC(request, GetWindowRect.Result.class); + } + + @Override + public GetWorkingFolder.Result qlua_getWorkingFolder() { + return makeRPC(GetWorkingFolder.Request.INSTANCE, GetWorkingFolder.Result.class); + } + + @Override + public Highlight.Result qlua_Highlight(final Highlight.Request request) { + return makeRPC(request, Highlight.Result.class); + } + + @Override + public InsertRow.Result qlua_InsertRow(final InsertRow.Request request) { + return makeRPC(request, InsertRow.Result.class); + } + + @Override + public IsConnected.Result qlua_isConnected() { + return makeRPC(IsConnected.Request.INSTANCE, IsConnected.Result.class); + } + + @Override + public IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(final IsSubscribedLevel2Quotes.Request request) { + return makeRPC(request, IsSubscribedLevel2Quotes.Result.class); + } + + @Override + public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request request) { + return makeRPC(request, IsWindowClosed.Result.class); + } + + @Override + public Message.Result qlua_message(final Message.Request request) { + return makeRPC(request, Message.Result.class); + } + + @Override + public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request request) { + return makeRPC(request, ParamRequest.Result.class); + } + + @Override + public PrintDbgStr.Result qlua_PrintDbgStr(final PrintDbgStr.Request request) { + return makeRPC(request, PrintDbgStr.Result.class); + } + + @Override + public RGB.Result qlua_RGB(final RGB.Request request) { + return makeRPC(request, RGB.Result.class); + } + + @Override + public SearchItems.Result qlua_SearchItems(final SearchItems.Request request) { + return makeRPC(request, SearchItems.Result.class); + } + + @Override + public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request request) { + return makeRPC(request, SendTransaction.Result.class); + } + + @Override + public SetCell.Result qlua_SetCell(final SetCell.Request request) { + return makeRPC(request, SetCell.Result.class); + } + + @Override + public SetColor.Result qlua_SetColor(final SetColor.Request request) { + return makeRPC(request, SetColor.Result.class); + } + + @Override + public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request request) { + return makeRPC(request, SetLabelParams.Result.class); + } + + @Override + public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request request) { + return makeRPC(request, SetSelectedRow.Result.class); + } + + @Override + public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(final SetTableNotificationCallback.Request request) { + return makeRPC(request, SetTableNotificationCallback.Result.class); + } + + @Override + public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request request) { + return makeRPC(request, SetWindowCaption.Result.class); + } + + @Override + public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request request) { + return makeRPC(request, SetWindowPos.Result.class); + } + + @Override + public Sleep.Result qlua_sleep(final Sleep.Request request) { + return makeRPC(request, Sleep.Result.class); + } + + @Override + public SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevel2Quotes.Request request) { + return makeRPC(request, SubscribeLevel2Quotes.Result.class); + } + + @Override + public UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevel2Quotes.Request request) { + return makeRPC(request, UnsubscribeLevel2Quotes.Result.class); + } + + @Override + public BAnd.Result bit_band(final BAnd.Request request) { + return makeRPC(request, BAnd.Result.class); + } + + @Override + public BNot.Result bit_bnot(final BNot.Request request) { + return makeRPC(request, BNot.Result.class); + } + + @Override + public BOr.Result bit_bor(final BOr.Request request) { + return makeRPC(request, BOr.Result.class); + } + + @Override + public BXor.Result bit_bxor(final BXor.Request request) { + return makeRPC(request, BXor.Result.class); + } + + @Override + public ToHex.Result bit_tohex(final ToHex.Request request) { + return makeRPC(request, ToHex.Result.class); + } + + @Override + public C.Result datasource_C(final C.Request request) { + return makeRPC(request, C.Result.class); + } + + @Override + public Close.Result datasource_Close(final Close.Request request) { + return makeRPC(request, Close.Result.class); + } + + @Override + public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request request) { + return makeRPC(request, CreateDataSource.Result.class); + } + + @Override + public H.Result datasource_H(final H.Request request) { + return makeRPC(request, H.Result.class); + } + + @Override + public L.Result datasource_L(final L.Request request) { + return makeRPC(request, L.Result.class); + } + + @Override + public O.Result datasource_O(final O.Request request) { + return makeRPC(request, O.Result.class); + } + + @Override + public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request request) { + return makeRPC(request, SetEmptyCallback.Result.class); + } + + @Override + public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request request) { + return makeRPC(request, SetUpdateCallback.Result.class); + } + + @Override + public Size.Result datasource_Size(final Size.Request request) { + return makeRPC(request, Size.Result.class); + } + + @Override + public T.Result datasource_T(final T.Request request) { + return makeRPC(request, T.Result.class); + } + + @Override + public V.Result datasource_V(final V.Request request) { + return makeRPC(request, V.Result.class); + } + + private U makeRPC(final T request, final Class resultClass) { + + try { + + checkState(isOpened(), "Соединение должно быть открыто."); + + final ZMsg zRequest = new ZMsg(); + zRequest.add( serdeModule.serialize(request) ); + zRequest.send(reqSocket); + zRequest.destroy(); + + final ZMsg zResponse = ZMsg.recvMsg(reqSocket); + final byte[] response = ZmqUtils.convertZMsgToByteArray(zResponse); + zResponse.destroy(); + + final ResponseEnvelope responseEnvelope = + serdeModule.deserialize(ResponseEnvelope.class, response); + final ServiceError error = responseEnvelope.getError(); + if (error == null) { + return serdeModule.deserialize(resultClass, responseEnvelope.getResult()); + } else { + throw new ServiceRpcException(error); + } + } catch (final ServiceRpcException ex) { + throw ex; + } catch (final Exception ex) { + throw new ClientRpcException(ex); + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java new file mode 100644 index 0000000..cc3bac1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.api.zmq; + +import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; +import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; +import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; +import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; +import org.jetbrains.annotations.NotNull; +import org.zeromq.ZFrame; +import org.zeromq.ZMQ; +import org.zeromq.ZMsg; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +final class ZmqUtils { + + private ZmqUtils() {} + + public static @NotNull byte[] convertZMsgToByteArray(@NotNull final ZMsg message) throws IOException { + + // our event data is small (at the moment, at least), so it's safe to cast the content size to a long + final ByteArrayOutputStream output = new ByteArrayOutputStream( (int) message.contentSize() ); + for (final ZFrame frame : message) { + output.write( frame.getData() ); + } + + return output.toByteArray(); + } + + public static void setSocketSecurity(@NotNull final ZMQ.Socket socket, @NotNull final AuthContext authContext) { + + switch (authContext.getAuthMechanism()) { + case PLAIN: + final PlainCredentials plainCredentials = authContext.getPlainCredentials(); + socket.setPlainUsername( plainCredentials.getUsername() ); + socket.setPlainPassword( plainCredentials.getPassword() ); + break; + case CURVE: + final CurveCredentials curveCredentials = authContext.getCurveCredentials(); + final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); + socket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); + socket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); + socket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); + break; + case NULL: + break; + default: + throw new IllegalStateException( + String.format( + "Неподдерживаемый механизм аутентификации: \"s\".", + authContext.getAuthMechanism() + ) + ); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java deleted file mode 100644 index c342306..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImpl.java +++ /dev/null @@ -1,630 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.zmq.impl; - -import com.enfernuz.quik.lua.rpc.api.ClientRpcException; -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.api.ServiceRpcException; -import com.enfernuz.quik.lua.rpc.api.messages.*; -import com.enfernuz.quik.lua.rpc.api.messages.bit.*; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; -import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; -import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; -import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; -import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; -import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; -import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; -import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; -import org.jetbrains.annotations.NotNull; -import org.zeromq.ZFrame; -import org.zeromq.ZMQ; -import org.zeromq.ZMsg; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; - -import static com.google.common.base.Preconditions.checkState; -import static java.util.Objects.requireNonNull; - -/** - * Реализация компонента Java-обёртка над API QLua терминала QUIK на базе ZeroMQ. - */ -public class ZmqTcpQluaRpcClientImpl implements ZmqTcpQluaRpcClient { - - private final NetworkAddress networkAddress; - private final String uri; - private ZMQ.Context zmqContext; - private ZMQ.Socket reqSocket; - private final AuthContext authContext; - private boolean isOpened; - - private final SerdeModule serdeModule; - - /** - * Создаёт новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl}, соответствующий заданной конфигурации клиента - * точки подключения к RPC-сервису QUIK. - * - * @param config конфигурация клиента точки подключения к RPC-сервису QUIK - * @return новый экземпляр компонента {@link ZmqTcpQluaRpcClientImpl} - */ - public static ZmqTcpQluaRpcClientImpl newInstance(final ClientConfiguration config) { - - return new ZmqTcpQluaRpcClientImpl( - requireNonNull(config.getNetworkAddress(), "Аргумент 'networkAddress' не должен быть null."), - requireNonNull(config.getAuthContext(), "Аргумент 'authContext' не должен быть null."), - getSerdeModule(config) - ); - } - - private ZmqTcpQluaRpcClientImpl( - final NetworkAddress networkAddress, - final AuthContext authContext, - final SerdeModule serdeModule) { - - this.networkAddress = networkAddress; - this.authContext = authContext; - this.serdeModule = serdeModule; - this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); - } - - @Override - public NetworkAddress getNetworkAddress() { - return networkAddress; - } - - @Override - public AuthContext getAuthContext() { - return authContext; - } - - @Override - public void open() throws IOException { - - if (!isOpened) { - - initializeIO(); - - if ( reqSocket.connect(uri) ) { - isOpened = true; - } else { - - final String errorMessage = String.format( - "Не удалось соединиться с '%s'. Номер ошибки (errno) сокета ZMQ: %d.", - uri, - reqSocket.errno() - ); - - deinitializeIO(); - - throw new IOException(errorMessage); - } - } - } - - @Override - public boolean isOpened() { - return isOpened; - } - - @Override - public void close() throws IOException { - - if (isOpened) { - - if (reqSocket.disconnect(uri)) { - isOpened = false; - deinitializeIO(); - } else { - throw new IOException( - String.format( - "Не удалось отсоединиться от '%s'. Номер ошибки (errno) сокета ZMQ: %d", - uri, - reqSocket.errno() - ) - ); - } - } - } - - @Override - public AddColumn.Result qlua_AddColumn(final AddColumn.Request request) { - return makeRPC(request, AddColumn.Result.class); - } - - @Override - public AddLabel.Result qlua_AddLabel(final AddLabel.Request request) { - return makeRPC(request, AddLabel.Result.class); - } - - @Override - public AllocTable.Result qlua_AllocTable() { - return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class); - } - - @Override - public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { - return makeRPC(request, CalcBuySell.Result.class); - } - - @Override - public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamRequest.Request request) { - return makeRPC(request, CancelParamRequest.Result.class); - } - - @Override - public Clear.Result qlua_Clear(final Clear.Request request) { - return makeRPC(request, Clear.Result.class); - } - - @Override - public CreateWindow.Result qlua_CreateWindow(final CreateWindow.Request request) { - return makeRPC(request, CreateWindow.Result.class); - } - - @Override - public DelAllLabels.Result qlua_DelAllLabels(final DelAllLabels.Request request) { - return makeRPC(request, DelAllLabels.Result.class); - } - - @Override - public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request request) { - return makeRPC(request, DeleteRow.Result.class); - } - - @Override - public DelLabel.Result qlua_DelLabel(final DelLabel.Request request) { - return makeRPC(request, DelLabel.Result.class); - } - - @Override - public DestroyTable.Result qlua_DestroyTable(final DestroyTable.Request request) { - return makeRPC(request, DestroyTable.Result.class); - } - - @Override - public GetBuySellInfo.Result qlua_getBuySellInfo(final GetBuySellInfo.Request request) { - return makeRPC(request, GetBuySellInfo.Result.class); - } - - @Override - public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { - return makeRPC(request, GetBuySellInfoEx.Result.class); - } - - @Override - public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Request request) { - return makeRPC(request, GetCandlesByIndex.Result.class); - } - - @Override - public GetCell.Result qlua_GetCell(final GetCell.Result request) { - return makeRPC(request, GetCell.Result.class); - } - - @Override - public GetClassesList.Result qlua_getClassesList() { - return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class); - } - - @Override - public GetClassInfo.Result qlua_getClassInfo(final GetClassInfo.Request request) { - return makeRPC(request, GetClassInfo.Result.class); - } - - @Override - public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecurities.Request request) { - return makeRPC(request, GetClassSecurities.Result.class); - } - - @Override - public GetDepo.Result qlua_getDepo(final GetDepo.Request request) { - return makeRPC(request, GetDepo.Result.class); - } - - @Override - public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request request) { - return makeRPC(request, GetDepoEx.Result.class); - } - - @Override - public GetFuturesHolding.Result qlua_getFuturesHolding(final GetFuturesHolding.Request request) { - return makeRPC(request, GetFuturesHolding.Result.class); - } - - @Override - public GetFuturesLimit.Result qlua_getFuturesLimit(final GetFuturesLimit.Request request) { - return makeRPC(request, GetFuturesLimit.Result.class); - } - - @Override - public GetInfoParam.Result qlua_getInfoParam(final GetInfoParam.Request request) { - return makeRPC(request, GetInfoParam.Result.class); - } - - @Override - public GetItem.Result qlua_getItem(final GetItem.Request request) { - return makeRPC(request, GetItem.Result.class); - } - - @Override - public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request request) { - return makeRPC(request, GetLabelParams.Result.class); - } - - @Override - public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request request) { - return makeRPC(request, GetLinesCount.Result.class); - } - - @Override - public GetMoney.Result qlua_getMoney(final GetMoney.Request request) { - return makeRPC(request, GetMoney.Result.class); - } - - @Override - public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request request) { - return makeRPC(request, GetMoneyEx.Result.class); - } - - @Override - public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request request) { - return makeRPC(request, GetNumberOf.Result.class); - } - - @Override - public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request request) { - return makeRPC(request, GetNumCandles.Result.class); - } - - @Override - public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request request) { - return makeRPC(request, GetOrderByNumber.Result.class); - } - - @Override - public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { - return makeRPC(request, GetParamEx.Result.class); - } - - @Override - public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { - return makeRPC(request, GetParamEx2.Result.class); - } - - @Override - public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request request) { - return makeRPC(request, GetPortfolioInfo.Result.class); - } - - @Override - public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request request) { - return makeRPC(request, GetPortfolioInfoEx.Result.class); - } - - @Override - public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request request) { - return makeRPC(request, GetQuoteLevel2.Result.class); - } - - @Override - public GetScriptPath.Result qlua_getScriptPath() { - return makeRPC(GetScriptPath.Request.INSTANCE, GetScriptPath.Result.class); - } - - @Override - public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request request) { - return makeRPC(request, GetSecurityInfo.Result.class); - } - - @Override - public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request request) { - return makeRPC(request, GetTableSize.Result.class); - } - - @Override - public GetTradeDate.Result qlua_getTradeDate() { - return makeRPC(GetTradeDate.Request.INSTANCE, GetTradeDate.Result.class); - } - - @Override - public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request request) { - return makeRPC(request, GetWindowCaption.Result.class); - } - - @Override - public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request request) { - return makeRPC(request, GetWindowRect.Result.class); - } - - @Override - public GetWorkingFolder.Result qlua_getWorkingFolder() { - return makeRPC(GetWorkingFolder.Request.INSTANCE, GetWorkingFolder.Result.class); - } - - @Override - public Highlight.Result qlua_Highlight(final Highlight.Request request) { - return makeRPC(request, Highlight.Result.class); - } - - @Override - public InsertRow.Result qlua_InsertRow(final InsertRow.Request request) { - return makeRPC(request, InsertRow.Result.class); - } - - @Override - public IsConnected.Result qlua_isConnected() { - return makeRPC(IsConnected.Request.INSTANCE, IsConnected.Result.class); - } - - @Override - public IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(final IsSubscribedLevel2Quotes.Request request) { - return makeRPC(request, IsSubscribedLevel2Quotes.Result.class); - } - - @Override - public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request request) { - return makeRPC(request, IsWindowClosed.Result.class); - } - - @Override - public Message.Result qlua_message(final Message.Request request) { - return makeRPC(request, Message.Result.class); - } - - @Override - public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request request) { - return makeRPC(request, ParamRequest.Result.class); - } - - @Override - public PrintDbgStr.Result qlua_PrintDbgStr(final PrintDbgStr.Request request) { - return makeRPC(request, PrintDbgStr.Result.class); - } - - @Override - public RGB.Result qlua_RGB(final RGB.Request request) { - return makeRPC(request, RGB.Result.class); - } - - @Override - public SearchItems.Result qlua_SearchItems(final SearchItems.Request request) { - return makeRPC(request, SearchItems.Result.class); - } - - @Override - public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request request) { - return makeRPC(request, SendTransaction.Result.class); - } - - @Override - public SetCell.Result qlua_SetCell(final SetCell.Request request) { - return makeRPC(request, SetCell.Result.class); - } - - @Override - public SetColor.Result qlua_SetColor(final SetColor.Request request) { - return makeRPC(request, SetColor.Result.class); - } - - @Override - public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request request) { - return makeRPC(request, SetLabelParams.Result.class); - } - - @Override - public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request request) { - return makeRPC(request, SetSelectedRow.Result.class); - } - - @Override - public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(final SetTableNotificationCallback.Request request) { - return makeRPC(request, SetTableNotificationCallback.Result.class); - } - - @Override - public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request request) { - return makeRPC(request, SetWindowCaption.Result.class); - } - - @Override - public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request request) { - return makeRPC(request, SetWindowPos.Result.class); - } - - @Override - public Sleep.Result qlua_sleep(final Sleep.Request request) { - return makeRPC(request, Sleep.Result.class); - } - - @Override - public SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevel2Quotes.Request request) { - return makeRPC(request, SubscribeLevel2Quotes.Result.class); - } - - @Override - public UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevel2Quotes.Request request) { - return makeRPC(request, UnsubscribeLevel2Quotes.Result.class); - } - - @Override - public BAnd.Result bit_band(final BAnd.Request request) { - return makeRPC(request, BAnd.Result.class); - } - - @Override - public BNot.Result bit_bnot(final BNot.Request request) { - return makeRPC(request, BNot.Result.class); - } - - @Override - public BOr.Result bit_bor(final BOr.Request request) { - return makeRPC(request, BOr.Result.class); - } - - @Override - public BXor.Result bit_bxor(final BXor.Request request) { - return makeRPC(request, BXor.Result.class); - } - - @Override - public ToHex.Result bit_tohex(final ToHex.Request request) { - return makeRPC(request, ToHex.Result.class); - } - - @Override - public C.Result datasource_C(final C.Request request) { - return makeRPC(request, C.Result.class); - } - - @Override - public Close.Result datasource_Close(final Close.Request request) { - return makeRPC(request, Close.Result.class); - } - - @Override - public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request request) { - return makeRPC(request, CreateDataSource.Result.class); - } - - @Override - public H.Result datasource_H(final H.Request request) { - return makeRPC(request, H.Result.class); - } - - @Override - public L.Result datasource_L(final L.Request request) { - return makeRPC(request, L.Result.class); - } - - @Override - public O.Result datasource_O(final O.Request request) { - return makeRPC(request, O.Result.class); - } - - @Override - public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request request) { - return makeRPC(request, SetEmptyCallback.Result.class); - } - - @Override - public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request request) { - return makeRPC(request, SetUpdateCallback.Result.class); - } - - @Override - public Size.Result datasource_Size(final Size.Request request) { - return makeRPC(request, Size.Result.class); - } - - @Override - public T.Result datasource_T(final T.Request request) { - return makeRPC(request, T.Result.class); - } - - @Override - public V.Result datasource_V(final V.Request request) { - return makeRPC(request, V.Result.class); - } - - private void checkIfOpen() { - checkState(isOpened, "The connection must be open."); - } - - private U makeRPC(final T request, final Class resultClass) { - - try { - - checkIfOpen(); - - final ZMsg zRequest = new ZMsg(); - zRequest.add( serdeModule.serialize(request) ); - zRequest.send(reqSocket); - - final ZMsg zResponse = ZMsg.recvMsg(reqSocket); - - final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream( (int) zResponse.contentSize() ); - for (final ZFrame frame : zResponse) { - byteArrayOutputStream.write( frame.getData() ); - } - - zResponse.destroy(); - - final ResponseEnvelope responseEnvelope = - serdeModule.deserialize(ResponseEnvelope.class, byteArrayOutputStream.toByteArray()); - final ServiceError error = responseEnvelope.getError(); - if (error == null) { - return serdeModule.deserialize(resultClass, responseEnvelope.getResult()); - } else { - throw new ServiceRpcException(error); - } - } catch (final ServiceRpcException ex) { - throw ex; - } catch (final Exception ex) { - throw new ClientRpcException(ex); - } - } - - private void initializeIO() { - - zmqContext = ZMQ.context(1); - - reqSocket = zmqContext.socket(ZMQ.REQ); - reqSocket.setLinger(0); // no waiting before closing the socket - - switch (authContext.getAuthMechanism()) { - case PLAIN: - final PlainCredentials plainCredentials = authContext.getPlainCredentials(); - reqSocket.setPlainUsername( plainCredentials.getUsername() ); - reqSocket.setPlainPassword( plainCredentials.getPassword() ); - break; - case CURVE: - final CurveCredentials curveCredentials = authContext.getCurveCredentials(); - final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); - reqSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); - reqSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); - reqSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); - break; - case NULL: - break; - default: - throw new IllegalStateException( - String.format( - "Unsupported authentication mechanism: \"s\".", - authContext.getAuthMechanism() - ) - ); - } - } - - private void deinitializeIO() { - reqSocket.close(); - zmqContext.term(); - zmqContext = null; - reqSocket = null; - } - - @NotNull - private static SerdeModule getSerdeModule(@NotNull final ClientConfiguration config) { - - final SerdeModule serdeModule; - switch (config.getSerdeProtocol()) { - case JSON: - serdeModule = JsonSerdeModule.INSTANCE; - break; - case PROTOBUF: - serdeModule = ProtobufSerdeModule.INSTANCE; - break; - default: - throw new IllegalArgumentException( - String.format( - "Неподдерживаемый протокол сериализации/десериализации сообщений: %s.", - config.getSerdeProtocol() - ) - ); - } - return serdeModule; - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java index 1347316..967aae5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -3,9 +3,9 @@ import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; -import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; -import com.enfernuz.quik.lua.rpc.events.impl.ZmqTcpQluaEventProcessor; +import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,8 +46,7 @@ public static void main(final String[] args) { LOGGER.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); - try (final ZmqTcpQluaEventProcessor eventProcessor = - ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), JsonSerdeModule.INSTANCE)) { + try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { LOGGER.info("Подписка на все события..."); eventProcessor.subscribeToEverything(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java index f7f649a..2b60683 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java @@ -3,9 +3,10 @@ import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; +import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; -import com.enfernuz.quik.lua.rpc.events.impl.ZmqTcpQluaEventProcessor; +import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,8 +47,7 @@ public static void main(final String[] args) { LOGGER.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); - try (final ZmqTcpQluaEventProcessor eventProcessor = - ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), ProtobufSerdeModule.INSTANCE)) { + try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { LOGGER.info("Подписка на все события..."); //eventProcessor.subscribeToEverything(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index a08be51..b4bd2d7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; -import com.enfernuz.quik.lua.rpc.api.zmq.impl.ZmqTcpQluaRpcClientImpl; import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import org.slf4j.Logger; @@ -40,7 +39,7 @@ public static void main(final String[] args) { } LOGGER.info("Инициализация клиента..."); - try (final ZmqTcpQluaRpcClient rpcClient = ZmqTcpQluaRpcClientImpl.newInstance(config)) { + try (final ZmqTcpQluaRpcClient rpcClient = ZmqTcpQluaRpcClient.newInstance(config)) { LOGGER.info("Соединение с RPC-сервисом..."); rpcClient.open(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java index ad8d94d..736fb66 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; -import com.enfernuz.quik.lua.rpc.events.impl.ZmqTcpQluaEventProcessor; +import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/PollingMode.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/PollingMode.java new file mode 100644 index 0000000..3508e00 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/PollingMode.java @@ -0,0 +1,18 @@ +package com.enfernuz.quik.lua.rpc.events.api; + +/** + * Режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала + * QUIK. + */ +public enum PollingMode { + + /** + * Блокирующее чтение очереди событий. Читающий поток заблокируется до получения нового события. + */ + BLOCKING, + + /** + * Неблокирующее чтение очереди событий. Читающий поток не блокируется при отсутствии новых событий. + */ + NO_BLOCKING; +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java deleted file mode 100644 index 0ddb0f6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/impl/ZmqTcpQluaEventPoller.java +++ /dev/null @@ -1,311 +0,0 @@ -package com.enfernuz.quik.lua.rpc.events.impl; - -import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; -import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveCredentials; -import com.enfernuz.quik.lua.rpc.api.security.zmq.CurveKeyPair; -import com.enfernuz.quik.lua.rpc.api.security.zmq.PlainCredentials; -import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.events.api.TcpQluaEventPoller; -import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.common.collect.ImmutableSet; -import org.zeromq.ZFrame; -import org.zeromq.ZMQ; -import org.zeromq.ZMsg; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.EnumSet; - -import static java.util.Objects.requireNonNull; - -/** - * Компонент, опрашивающий удалённый RPC-сервис quik-lua-rpc на предмет появления новых событий API QLua - * терминала QUIK. - *
- * Связь с quik-lua-rpc происходит по протоколу TCP с помощью ZeroMQ. - *
- * Экземпляры класса не потокобезопасны. - * - * @see quik-lua-rpc - * @see ZeroMQ - Distributed Messaging - */ -class ZmqTcpQluaEventPoller implements TcpQluaEventPoller { - - private final NetworkAddress networkAddress; - private final String uri; - private ZMQ.Context zmqContext; - private ZMQ.Socket subSocket; - private final AuthContext authContext; - private boolean isOpened; - private final EnumSet subscription; - private final SerdeModule serdeModule; - - /** - * Создаёт новый экземпляр компонента {@link ZmqTcpQluaEventPoller}, с точкой подключения RPC-сервиса на стороне - * терминала QUIK по заданному сетевому адресу с заданным контекстом защиты передачи данных. - * - * @param networkAddress сетевой адрес точки подключения RPC-сервиса на стороне терминала QUIK - * @param authContext контекст защиты передачи данных - * @param serdeModule модуль сериализации/десериализации доменных объектов QLua - * @return новый экземпляр компонента {@link ZmqTcpQluaEventPoller} - */ - static ZmqTcpQluaEventPoller newInstance( - final NetworkAddress networkAddress, - final AuthContext authContext, - final SerdeModule serdeModule) { - - return new ZmqTcpQluaEventPoller( - requireNonNull(networkAddress), - requireNonNull(authContext), - requireNonNull(serdeModule) - ); - } - - private ZmqTcpQluaEventPoller( - final NetworkAddress networkAddress, - final AuthContext authContext, - final SerdeModule serdeModule) { - - this.networkAddress = networkAddress; - this.authContext = authContext; - this.serdeModule = serdeModule; - this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); - this.subscription = EnumSet.noneOf(QluaEvent.EventType.class); - } - - /** - * Получает следующее событие в очереди событий терминала API QLua терминала QUIK. - *
- * - * @param mode режим опроса удалённого RPC-сервиса quik-lua-rpc на предмет появления нового события API QLua терминала - * QUIK - * @return следующее событие в очереди событий терминала API QLua терминала QUIK или null, если очередь пуста - * @throws PollingException в случае ошибки при попытке получить следующее событие в очереди событий терминала API - * QLua терминала QUIK - */ - @Override - public QluaEvent poll(final PollingMode mode) throws PollingException { - - try { - - final QluaEvent result; - final byte[] subscriptionKeyAsBytes; - switch (mode) { - case BLOCKING: - subscriptionKeyAsBytes = subSocket.recv(); - break; - case NO_BLOCKING: - subscriptionKeyAsBytes = subSocket.recv(ZMQ.NOBLOCK); - break; - default: - throw new IllegalArgumentException( - String.format("Неподдерживаемый режим опроса очереди событий: '%s'.", mode) - ); - } - - if (subscriptionKeyAsBytes == null) { - result = null; - } else { - - final QluaEvent.EventType eventType = serdeModule.deserialize(QluaEvent.EventType.class, subscriptionKeyAsBytes); - if (eventType == null) { - throw new PollingException( String.format("Неизвестный ключ подписки на QLua-события: \"%s\".", new String(subscriptionKeyAsBytes, StandardCharsets.UTF_8)) ); - } - - final boolean hasReceiveMore = subSocket.hasReceiveMore(); - - if (hasReceiveMore) { - - final ZMsg eventDataAsMsg = ZMsg.recvMsg(subSocket); - if (eventDataAsMsg == null) { - throw new PollingException( - String.format("Для QLua-события \"%s\" не получено данных.", eventType) - ); - } - - result = QluaEvent.create(eventType, convertZMsgToByteArray(eventDataAsMsg)); - } else { - result = QluaEvent.create(eventType); - } - } - - return result; - } catch (final PollingException ex) { - throw ex; - } catch (final Exception ex) { - throw new PollingException("Ошибка при чтении очереди QLua-событий.", ex); - } - } - - @Override - public void subscribe(final QluaEvent.EventType eventType) { - - if (isOpened) { - subSocket.subscribe( serdeModule.serialize(eventType) ); - } - - subscription.add(eventType); - } - - @Override - public void subscribe(final Iterable eventTypes) { - - for (final QluaEvent.EventType eventType : eventTypes) { - subscribe(eventType); - } - } - - @Override - public void subscribe(final QluaEvent.EventType... eventTypes) { - - for (final QluaEvent.EventType eventType : eventTypes) { - subscribe(eventType); - } - } - - @Override - public void subscribeToEverything() { - subscribe( QluaEvent.EventType.values() ); - } - - @Override - public void unsubscribe(final QluaEvent.EventType eventType) { - - if (isOpened) { - subSocket.unsubscribe( serdeModule.serialize(eventType) ); - } - - subscription.remove(eventType); - } - - @Override - public void unsubscribe(final Iterable eventTypes) { - - for (final QluaEvent.EventType eventType : eventTypes) { - unsubscribe(eventType); - } - } - - @Override - public void unsubscribe(final QluaEvent.EventType... eventTypes) { - - for (final QluaEvent.EventType eventType : eventTypes) { - unsubscribe(eventType); - } - } - - @Override - public void unsubscribeFromEverything() { - unsubscribe( QluaEvent.EventType.values() ); - } - - @Override - public ImmutableSet getCurrentSubscription() { - return ImmutableSet.copyOf(subscription); - } - - @Override - public NetworkAddress getNetworkAddress() { - return networkAddress; - } - - @Override - public void open() throws IOException { - - if (!this.isOpened) { - - zmqContext = ZMQ.context(1); - zmqContext.setMaxSockets(1); - subSocket = zmqContext.socket(ZMQ.SUB); - subSocket.setLinger(0); // no waiting before closing the socket - - for (final QluaEvent.EventType eventType : subscription) { - subSocket.subscribe( serdeModule.serialize(eventType) ); - } - - switch (authContext.getAuthMechanism()) { - case PLAIN: - final PlainCredentials plainCredentials = authContext.getPlainCredentials(); - subSocket.setPlainUsername( plainCredentials.getUsername() ); - subSocket.setPlainPassword( plainCredentials.getPassword() ); - break; - case CURVE: - final CurveCredentials curveCredentials = authContext.getCurveCredentials(); - final CurveKeyPair clientKeyPair = curveCredentials.getClientKeyPair(); - subSocket.setCurveServerKey( curveCredentials.getServerPublicKey().asBinary() ); - subSocket.setCurvePublicKey( clientKeyPair.getPublicKey().asBinary() ); - subSocket.setCurveSecretKey( clientKeyPair.getSecretKey().asBinary() ); - break; - case NULL: - break; - default: - throw new IllegalStateException( - String.format( - "Неподдерживаемый механизм аутентификации: \"s\".", - authContext.getAuthMechanism() - ) - ); - } - - final boolean _isConnected = this.subSocket.connect(uri); - if (_isConnected) { - this.isOpened = true; - } else { - - final String errorMessage = - String.format("Не удалось соединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", uri, subSocket.errno()); - - subSocket.close(); - zmqContext.term(); - zmqContext = null; - subSocket = null; - - throw new IOException(errorMessage); - } - } - } - - @Override - public boolean isOpened() { - return isOpened; - } - - @Override - public void close() throws IOException { - - if (this.isOpened) { - - final boolean isDisconnected = this.subSocket.disconnect(uri); - - if (isDisconnected) { - subSocket.close(); - zmqContext.term(); - zmqContext = null; - subSocket = null; - this.isOpened = false; - } else { - throw new IOException( - String.format( - "Не удалось разъединиться с %s. Номер ошибки сокета ZMQ (errno): %d.", - uri, - subSocket.errno() - ) - ); - } - } - } - - private static byte[] convertZMsgToByteArray(final ZMsg message) throws IOException { - - // our event data is small (at the moment, at least), so it's safe to cast the content size to a long - final ByteArrayOutputStream output = new ByteArrayOutputStream( (int) message.contentSize() ); - for (final ZFrame frame : message) { - output.write( frame.getData() ); - } - - return output.toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java new file mode 100644 index 0000000..7f02b1c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde; + +import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; +import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; +import org.jetbrains.annotations.NotNull; + +import static java.util.Objects.requireNonNull; + +public class SerdeUtils { + + private SerdeUtils() {} + + @NotNull + public static SerdeModule getSerdeModule(@NotNull final ClientConfiguration.SerdeProtocol serdeProtocol) { + + requireNonNull(serdeProtocol, "Аргумент 'serdeProtocol' не может быть null."); + + final SerdeModule serdeModule; + switch (serdeProtocol) { + case JSON: + serdeModule = JsonSerdeModule.INSTANCE; + break; + case PROTOBUF: + serdeModule = ProtobufSerdeModule.INSTANCE; + break; + default: + throw new IllegalArgumentException( + String.format( + "Неподдерживаемый протокол сериализации/десериализации сообщений: %s.", + serdeProtocol + ) + ); + } + return serdeModule; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java index 7df3a37..1cfe133 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/zmq/impl/ZmqTcpQluaRpcClientImplTest.java @@ -22,14 +22,14 @@ //@PrepareForTest(ZmqTcpRpcGatewayImpl.class) public class ZmqTcpQluaRpcClientImplTest { -// private ZmqTcpQluaRpcClientImpl sut; +// private ZmqTcpQluaRpcClient sut; // // @Before // public void setup() throws IOException { // // final NetworkAddress networkAddress = new SimpleNetworkAddress("127.0.0.1", 5560); // -// this.sut = ZmqTcpQluaRpcClientImpl.newInstance(null); +// this.sut = ZmqTcpQluaRpcClient.newInstance(null); // } // // @After From 5e59964539115e39ce57e1767b11ccfcd2635440 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 31 Aug 2018 23:58:52 +0300 Subject: [PATCH 145/549] Removed custom JSON deserializer for DateTimeEntry, AllTrade. Fixed --- .../quik/lua/rpc/api/structures/AllTrade.java | 40 ++++++++------- .../lua/rpc/api/structures/DateTimeEntry.java | 21 ++++---- .../jackson/AllTradeJsonDeserializer.java | 46 ----------------- .../DateTimeEntryJsonDeserializer.java | 32 ------------ .../jackson/QluaJsonJacksonDeserializers.java | 2 - .../api/structures/AllTradeJsonSerdeTest.java | 51 +++++++++++++++++++ .../DateTimeEntryJsonSerdeTest.java | 45 ++++++++++++++++ .../resources/json/structures/AllTrade.json | 30 +++++++++++ .../json/structures/DateTimeEntry.json | 11 ++++ 9 files changed, 171 insertions(+), 107 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java create mode 100644 src/test/resources/json/structures/AllTrade.json create mode 100644 src/test/resources/json/structures/DateTimeEntry.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 64e6e73..890c12f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -35,24 +37,26 @@ public class AllTrade { private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder - private AllTrade(final long tradeNum, - final int flags, - final String price, - final int qty, - final String value, - final String accruedInt, - final String yield, - final String settleCode, - final String repoRate, - final String repoValue, - final String repo2Value, - final String repoTerm, - final String secCode, - final String classCode, - final DateTimeEntry datetime, - final int period, - final String openInterest, - final String exchangeCode) { + @JsonCreator + private AllTrade( + @JsonProperty(value = "trade_num", required = true) final long tradeNum, + @JsonProperty(value = "flags", required = true) final int flags, + @JsonProperty(value = "price", required = true) final String price, + @JsonProperty(value = "qty", required = true) final int qty, + @JsonProperty("value") final String value, + @JsonProperty("accruedint") final String accruedInt, + @JsonProperty("yield") final String yield, + @JsonProperty("settlecode") final String settleCode, + @JsonProperty("reporate") final String repoRate, + @JsonProperty("repovalue") final String repoValue, + @JsonProperty("repo2value") final String repo2Value, + @JsonProperty("repoterm") final String repoTerm, + @JsonProperty("sec_code") final String secCode, + @JsonProperty("class_code") final String classCode, + @JsonProperty(value = "datetime", required = true) final DateTimeEntry datetime, + @JsonProperty(value = "period", required = true) final int period, + @JsonProperty("open_interest") final String openInterest, + @JsonProperty("exchange_code") final String exchangeCode) { this.tradeNum = tradeNum; this.flags = flags; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index 6302476..8916afb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import com.google.common.collect.ComparisonChain; import lombok.AccessLevel; @@ -27,16 +29,17 @@ public class DateTimeEntry implements Comparable { private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @Builder + @JsonCreator private DateTimeEntry( - final int mcs, - final int ms, - final int sec, - final int min, - final int hour, - final int day, - final int weekDay, - final int month, - final int year) { + @JsonProperty(value = "mcs", required = true) final int mcs, + @JsonProperty(value = "ms", required = true) final int ms, + @JsonProperty(value = "sec", required = true) final int sec, + @JsonProperty(value = "min", required = true) final int min, + @JsonProperty(value = "hour", required = true) final int hour, + @JsonProperty(value = "day", required = true) final int day, + @JsonProperty(value = "week_day", required = true) final int weekDay, + @JsonProperty(value = "month", required = true) final int month, + @JsonProperty(value = "year", required = true) final int year) { this.mcs = mcs; this.ms = ms; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java deleted file mode 100644 index 8d0f964..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllTradeJsonDeserializer.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -class AllTradeJsonDeserializer extends JsonDeserializer { - - @Override - public AllTrade deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) - throws IOException { - - final ObjectCodec objectCodec = jsonParser.getCodec(); - final JsonNode node = objectCodec.readTree(jsonParser); - - return AllTrade - .builder() - .tradeNum( node.get("trade_num").asLong() ) - .flags( node.get("flags").asInt() ) - .price( node.get("price").asText() ) - .qty( node.get("qty").asInt() ) - .value( asText(node, "value") ) - .accruedInt( asText(node, "accruedint") ) - .yield( asText(node, "yield") ) - .settleCode( asText(node, "settlecode") ) - .repoRate( asText(node, "reporate") ) - .repoValue( asText(node, "repovalue") ) - .repo2Value( asText(node, "repo2value") ) - .repoTerm( asText(node, "repoterm") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .period( node.get("period").asInt() ) - .openInterest( asText(node, "open_interest") ) - .exchangeCode( asText(node, "exchange_code") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java deleted file mode 100644 index c87d740..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DateTimeEntryJsonDeserializer.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class DateTimeEntryJsonDeserializer extends JsonDeserializer { - - @Override - public DateTimeEntry deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) - throws IOException { - - final JsonNode node = jsonParser.getCodec().readTree(jsonParser); - - return DateTimeEntry - .builder() - .mcs( node.get("mcs").asInt() ) - .ms( node.get("ms").asInt() ) - .sec( node.get("sec").asInt() ) - .min( node.get("min").asInt() ) - .hour( node.get("hour").asInt() ) - .day( node.get("day").asInt() ) - .weekDay( node.get("week_day").asInt() ) - .month( node.get("month").asInt() ) - .year( node.get("year").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 72a4fa6..a9ef068 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -14,7 +14,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); super.addDeserializer(ConnectedEventInfo.class, new ConnectedEventInfoJsonDeserializer()); - super.addDeserializer(AllTrade.class, new AllTradeJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); @@ -28,7 +27,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); - super.addDeserializer(DateTimeEntry.class, new DateTimeEntryJsonDeserializer()); super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java new file mode 100644 index 0000000..b0356a3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class AllTradeJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static AccountBalance expectedObject; + private static String expectedJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + expectedObject = AccountBalance.builder() + .firmId("1") + .secCode("2") + .trdAccId("3") + .depAccId("4") + .openBal("5") + .currentPos("6") + .plannedPosSell("7") + .plannedPosBuy("8") + .planBal("9") + .usqtyb("10") + .usqtys("11") + .planned("12") + .settleBal("13") + .bankAccId("14") + .firmUse(15) + .build(); + + expectedJson = Resources.toString(Resources.getResource("json/structures/AccountBalance.json"), Charsets.UTF_8); + } + + @Test + public void testDeserialize() throws IOException { + + final AccountBalance actualObject = sut.readValue(expectedJson, AccountBalance.class); + + assertEquals(expectedObject, actualObject); + } +} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java new file mode 100644 index 0000000..f14df6a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class DateTimeEntryJsonSerdeTest { + + private final ObjectMapper sut = new ObjectMapper(); + + private static DateTimeEntry expectedObject; + private static String expectedJson; + + @BeforeClass + public static void globalSetup() throws IOException { + + expectedObject = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedJson = Resources.toString(Resources.getResource("json/structures/DateTimeEntry.json"), Charsets.UTF_8); + } + + @Test + public void testDeserialize() throws IOException { + + final DateTimeEntry actualObject = sut.readValue(expectedJson, DateTimeEntry.class); + + assertEquals(expectedObject, actualObject); + } +} \ No newline at end of file diff --git a/src/test/resources/json/structures/AllTrade.json b/src/test/resources/json/structures/AllTrade.json new file mode 100644 index 0000000..e73ae9d --- /dev/null +++ b/src/test/resources/json/structures/AllTrade.json @@ -0,0 +1,30 @@ +{ + "trade_num" : 123456789012345, + "flags" : 2, + "price" : "3", + "qty" : 4, + "value" : "5", + "accruedint" : "6", + "yield" : "7", + "settlecode" : "8", + "reporate" : "9", + "repovalue" : "10", + "repo2value" : "11", + "repoterm" : "12", + "sec_code" : "13", + "class_code" : "14", + "datetime" : { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 + }, + "period" : 16, + "open_interest" : "17", + "exchange_code" : "18" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/DateTimeEntry.json b/src/test/resources/json/structures/DateTimeEntry.json new file mode 100644 index 0000000..7faafc2 --- /dev/null +++ b/src/test/resources/json/structures/DateTimeEntry.json @@ -0,0 +1,11 @@ +{ + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 +} \ No newline at end of file From e31d5a75cac964ab5ed2714f8cdbf247a77e1792 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 00:00:01 +0300 Subject: [PATCH 146/549] Made the Lombok's generated equals & hashCode call super. --- .../java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java index 38f056f..47a5946 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java @@ -1,9 +1,11 @@ package com.enfernuz.quik.lua.rpc.api; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; @Value +@EqualsAndHashCode(callSuper = true) public class ServiceRpcException extends RpcException { @NonNull ServiceError error; From 1b546605dc9ee2320fac7382e2a3206b904e1807 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 00:00:27 +0300 Subject: [PATCH 147/549] Removed unused imports. --- .../rpc/application/JsonSubscriptionExampleApplication.java | 1 - .../com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java index 967aae5..1226722 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -6,7 +6,6 @@ import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index 1a3fff6..025eeff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -1,13 +1,10 @@ package com.enfernuz.quik.lua.rpc.serde.json; -import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.SneakyThrows; import static java.util.Objects.requireNonNull; From 38cc443d6abfe3e69f5c1ff129f1ada4875af8ec Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 00:00:52 +0300 Subject: [PATCH 148/549] Fixed creation of the event processor. --- .../lua/rpc/application/SubscriptionExampleApplication.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java index 736fb66..44e6ade 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; import com.enfernuz.quik.lua.rpc.events.api.LoggingEventHandler; +import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; import org.slf4j.Logger; @@ -44,8 +45,7 @@ public static void main(final String[] args) { LOGGER.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); - try (final ZmqTcpQluaEventProcessor eventProcessor = - ZmqTcpQluaEventProcessor.newInstance(config.getNetworkAddress(), config.getAuthContext(), null)) { + try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { LOGGER.info("Подписка на все события..."); eventProcessor.subscribeToEverything(); From abb3b644ac851650a329b59b749f1f0a9055ec0c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 12:25:35 +0300 Subject: [PATCH 149/549] Removed serialization for Firm: don't need it. --- .../enfernuz/quik/lua/rpc/api/structures/Firm.java | 12 ++++++------ .../lua/rpc/api/structures/FirmJsonSerdeTest.java | 8 -------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index 7ef8364..3388bcf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -12,16 +12,16 @@ @Value public class Firm { - @JsonProperty("firm_id") String firmId; - @JsonProperty("firm_name") String firmName; - @JsonProperty("status") int status; - @JsonProperty("exchange") String exchange; + String firmId; + String firmName; + int status; + String exchange; @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient int hashCode; + private @NonFinal transient int hashCode; @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient String asString; + private @NonFinal transient String asString; @Builder @JsonCreator diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java index 6f3991e..4a320e8 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java @@ -30,14 +30,6 @@ public static void globalSetup() throws IOException { firmAsJson = Resources.toString(Resources.getResource("json/structures/Firm.json"), Charsets.UTF_8); } - @Test - public void testSerialize() throws IOException { - - final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(firm); - - assertEquals(firmAsJson, actual); - } - @Test public void testDeserialize() throws IOException { From 42858dd3bd7ae42f1c9f5b3f43bbb1ac88524ff3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:35:37 +0300 Subject: [PATCH 150/549] Renamed the 'nullIfNullOrEmpty' method; added a new protobuf utility method. --- .../protobuf/ProtobufFirmDeserializer.java | 6 ++--- .../ProtobufMoneyLimitDeserializer.java | 26 +++++++++---------- .../serde/protobuf/ProtobufSerdeUtils.java | 9 +++++-- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java index c54aef0..6f45b2c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java @@ -6,7 +6,7 @@ import lombok.SneakyThrows; import qlua.structs.QluaStructures; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; enum ProtobufFirmDeserializer implements Deserializer { @@ -20,9 +20,9 @@ public Firm deserialize(final byte[] data) { return Firm .builder() .firmId(firm.getFirmid()) - .firmName( nullIfNullOrEmpty(firm.getFirmName()) ) + .firmName( convertFromPbString(firm.getFirmName()) ) .status(firm.getStatus()) - .exchange( nullIfNullOrEmpty(firm.getExchange()) ) + .exchange( convertFromPbString(firm.getExchange()) ) .build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java index df202cb..5f382bf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java @@ -6,7 +6,7 @@ import lombok.SneakyThrows; import qlua.structs.QluaStructures; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.nullIfNullOrEmpty; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; enum ProtobufMoneyLimitDeserializer implements Deserializer { @@ -19,18 +19,18 @@ public MoneyLimit deserialize(final byte[] data) { final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); return MoneyLimit .builder() - .currCode( nullIfNullOrEmpty(moneyLimit.getCurrcode()) ) - .tag( nullIfNullOrEmpty(moneyLimit.getTag()) ) - .firmId( nullIfNullOrEmpty(moneyLimit.getFirmid()) ) - .clientCode( nullIfNullOrEmpty(moneyLimit.getClientCode()) ) - .openBal( nullIfNullOrEmpty(moneyLimit.getOpenbal()) ) - .openLimit( nullIfNullOrEmpty(moneyLimit.getOpenlimit()) ) - .currentBal( nullIfNullOrEmpty(moneyLimit.getCurrentbal()) ) - .currentLimit( nullIfNullOrEmpty(moneyLimit.getCurrentlimit()) ) - .locked( nullIfNullOrEmpty(moneyLimit.getLocked()) ) - .lockedValueCoef( nullIfNullOrEmpty(moneyLimit.getLockedValueCoef()) ) - .lockedMarginValue( nullIfNullOrEmpty(moneyLimit.getLockedMarginValue()) ) - .leverage( nullIfNullOrEmpty(moneyLimit.getLeverage()) ) + .currCode( convertFromPbString(moneyLimit.getCurrcode()) ) + .tag( convertFromPbString(moneyLimit.getTag()) ) + .firmId( convertFromPbString(moneyLimit.getFirmid()) ) + .clientCode( convertFromPbString(moneyLimit.getClientCode()) ) + .openBal( convertFromPbString(moneyLimit.getOpenbal()) ) + .openLimit( convertFromPbString(moneyLimit.getOpenlimit()) ) + .currentBal( convertFromPbString(moneyLimit.getCurrentbal()) ) + .currentLimit( convertFromPbString(moneyLimit.getCurrentlimit()) ) + .locked( convertFromPbString(moneyLimit.getLocked()) ) + .lockedValueCoef( convertFromPbString(moneyLimit.getLockedValueCoef()) ) + .lockedMarginValue( convertFromPbString(moneyLimit.getLockedMarginValue()) ) + .leverage( convertFromPbString(moneyLimit.getLeverage()) ) .limitKind( moneyLimit.getLimitKind() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 51a57e8..afb5219 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -4,6 +4,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.Optional; final class ProtobufSerdeUtils { @@ -13,7 +14,11 @@ private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); } - static String nullIfNullOrEmpty(final String str) { - return Strings.isNullOrEmpty(str) ? null : str; + static String convertFromPbString(final String protobufString) { + return Strings.isNullOrEmpty(protobufString) ? null : protobufString; + } + + static String convertToPbString(final String string) { + return Optional.ofNullable(string).orElse(""); } } From ebb72dd662cfaabd21c6817ca3f05e9c9b57b5eb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:36:15 +0300 Subject: [PATCH 151/549] Added a test for the Firm protobuf deserializer. --- .../serde/protobuf/FirmProtobufSerdeTest.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java new file mode 100644 index 0000000..c1ade18 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import org.jetbrains.annotations.NotNull; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static org.junit.Assert.assertEquals; + +public class FirmProtobufSerdeTest { + + private static Firm expectedObject; + private static byte[] expectedPbInput; + + private static Firm expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + expectedObject = Firm.builder() + .firmId("1") + .firmName("2") + .status(3) + .exchange("4") + .build(); + expectedPbInput = convertToPbByteArray(expectedObject); + + expectedObjectWithNullNonRequiredStringFileds = Firm.builder() + .firmId("1") + .status(2) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); + } + + @Test + public void testDeserialize() { + + final Firm actualObject = ProtobufFirmDeserializer.INSTANCE.deserialize(expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final Firm actualObject = ProtobufFirmDeserializer.INSTANCE.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } + + private static byte[] convertToPbByteArray(@NotNull final Firm firm) { + + return QluaStructures.Firm.newBuilder() + .setFirmid( firm.getFirmId() ) + .setFirmName( convertToPbString(firm.getFirmName()) ) + .setStatus( firm.getStatus() ) + .setExchange( convertToPbString(firm.getExchange()) ) + .build() + .toByteArray(); + } +} From 55f95a11e049fcd0b0acf805804ac2eddfb0f89b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:40:32 +0300 Subject: [PATCH 152/549] Fixed a typo. --- src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java index cc3bac1..0a3140b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqUtils.java @@ -18,7 +18,7 @@ private ZmqUtils() {} public static @NotNull byte[] convertZMsgToByteArray(@NotNull final ZMsg message) throws IOException { - // our event data is small (at the moment, at least), so it's safe to cast the content size to a long + // our event data is small (at the moment, at least), so it's safe to cast the content size to int final ByteArrayOutputStream output = new ByteArrayOutputStream( (int) message.contentSize() ); for (final ZFrame frame : message) { output.write( frame.getData() ); From 2de060a48e7ddd679bed1372030cc7bd02659f64 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:43:22 +0300 Subject: [PATCH 153/549] Renamed the Firm protobuf deserializer. --- ...{ProtobufFirmDeserializer.java => FirmPbDeserializer.java} | 2 +- .../quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java | 2 +- .../quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{ProtobufFirmDeserializer.java => FirmPbDeserializer.java} (93%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java similarity index 93% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java index 6f45b2c..f80588c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufFirmDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java @@ -8,7 +8,7 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -enum ProtobufFirmDeserializer implements Deserializer { +enum FirmPbDeserializer implements Deserializer { INSTANCE; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index f6bbffc..9b79be2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -73,7 +73,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { final Map, Deserializer> result = new HashMap<>(); registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); - registerDeserializer(result, Firm.class, ProtobufFirmDeserializer.INSTANCE); + registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); registerDeserializer(result, MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); return result; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java index c1ade18..ba651fd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java @@ -38,7 +38,7 @@ public static void globalSetup() { @Test public void testDeserialize() { - final Firm actualObject = ProtobufFirmDeserializer.INSTANCE.deserialize(expectedPbInput); + final Firm actualObject = FirmPbDeserializer.INSTANCE.deserialize(expectedPbInput); assertEquals(actualObject, expectedObject); } @@ -46,7 +46,7 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final Firm actualObject = ProtobufFirmDeserializer.INSTANCE.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + final Firm actualObject = FirmPbDeserializer.INSTANCE.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); } From 6d1ce68529879147090c41d3535d216c3ca1c220 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:43:47 +0300 Subject: [PATCH 154/549] Renamed the MoneyLimit protobuf deserializer. --- ...oneyLimitDeserializer.java => MoneyLimitPbDeserializer.java} | 2 +- .../quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{ProtobufMoneyLimitDeserializer.java => MoneyLimitPbDeserializer.java} (95%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java similarity index 95% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java index 5f382bf..b4d61ef 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufMoneyLimitDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java @@ -8,7 +8,7 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -enum ProtobufMoneyLimitDeserializer implements Deserializer { +enum MoneyLimitPbDeserializer implements Deserializer { INSTANCE; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 9b79be2..6938d76 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -74,7 +74,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); - registerDeserializer(result, MoneyLimit.class, ProtobufMoneyLimitDeserializer.INSTANCE); + registerDeserializer(result, MoneyLimit.class, MoneyLimitPbDeserializer.INSTANCE); return result; } From b785960e6716ef2964322a472fd0f3a002a01fee Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:51:51 +0300 Subject: [PATCH 155/549] Added a test for the MoneyLimit protobuf deserializer. --- .../protobuf/MoneyLimitProtobufSerdeTest.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java new file mode 100644 index 0000000..c962d6b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static org.junit.Assert.assertEquals; + +public class MoneyLimitProtobufSerdeTest { + + private static Deserializer sut; + + private static MoneyLimit expectedObject; + private static byte[] expectedPbInput; + + private static MoneyLimit expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = MoneyLimitPbDeserializer.INSTANCE; + + expectedObject = MoneyLimit.builder() + .currCode("1") + .tag("2") + .firmId("3") + .clientCode("4") + .openBal("5") + .openLimit("6") + .currentBal("7") + .currentLimit("8") + .locked("9") + .lockedValueCoef("10") + .lockedMarginValue("11") + .leverage("12") + .limitKind(13) + .build(); + expectedPbInput = convertToPbByteArray(expectedObject); + + expectedObjectWithNullNonRequiredStringFileds = MoneyLimit.builder() + .limitKind(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); + } + + @Test + public void testDeserialize() { + + final MoneyLimit actualObject = sut.deserialize(expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final MoneyLimit actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } + + private static byte[] convertToPbByteArray(@NotNull final MoneyLimit moneyLimit) { + + return QluaStructures.MoneyLimit.newBuilder() + .setCurrcode( convertToPbString(moneyLimit.getCurrCode()) ) + .setTag( convertToPbString(moneyLimit.getTag()) ) + .setFirmid( convertToPbString(moneyLimit.getFirmId()) ) + .setClientCode( convertToPbString(moneyLimit.getClientCode()) ) + .setOpenbal( convertToPbString(moneyLimit.getOpenBal()) ) + .setOpenlimit( convertToPbString(moneyLimit.getOpenLimit()) ) + .setCurrentbal( convertToPbString(moneyLimit.getCurrentBal()) ) + .setCurrentlimit( convertToPbString(moneyLimit.getCurrentLimit()) ) + .setLocked( convertToPbString(moneyLimit.getLocked()) ) + .setLockedValueCoef( convertToPbString(moneyLimit.getLockedValueCoef()) ) + .setLockedMarginValue( convertToPbString(moneyLimit.getLockedMarginValue()) ) + .setLeverage( convertToPbString(moneyLimit.getLeverage()) ) + .setLimitKind( moneyLimit.getLimitKind() ) + .build() + .toByteArray(); + } +} From 21fda02b101669b36cecb08bdd816965aebef944 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 16:53:13 +0300 Subject: [PATCH 156/549] Defined the capabilities being tested for FirmPbDeserializer. --- .../lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java index ba651fd..ea37843 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; import org.junit.BeforeClass; import org.junit.Test; @@ -11,6 +12,8 @@ public class FirmProtobufSerdeTest { + private static Deserializer sut; + private static Firm expectedObject; private static byte[] expectedPbInput; @@ -20,6 +23,8 @@ public class FirmProtobufSerdeTest { @BeforeClass public static void globalSetup() { + sut = FirmPbDeserializer.INSTANCE; + expectedObject = Firm.builder() .firmId("1") .firmName("2") @@ -38,7 +43,7 @@ public static void globalSetup() { @Test public void testDeserialize() { - final Firm actualObject = FirmPbDeserializer.INSTANCE.deserialize(expectedPbInput); + final Firm actualObject = sut.deserialize(expectedPbInput); assertEquals(actualObject, expectedObject); } @@ -46,7 +51,7 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final Firm actualObject = FirmPbDeserializer.INSTANCE.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + final Firm actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); } From dcd6704407054c2c501c341fa0ef6d6f4003f7be Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 17:33:17 +0300 Subject: [PATCH 157/549] Added the AccountBalance protobuf deserializer. --- .../AccountBalancePbDeserializer.java | 39 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../AccountBalanceProtobufSerdeTest.java | 91 +++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java new file mode 100644 index 0000000..4f165b8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum AccountBalancePbDeserializer implements Deserializer { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountBalance deserialize(final byte[] data) { + + final QluaStructures.AccountBalance accountBalance = QluaStructures.AccountBalance.parseFrom(data); + return AccountBalance + .builder() + .firmId( convertFromPbString(accountBalance.getFirmid()) ) + .secCode( convertFromPbString(accountBalance.getSecCode()) ) + .trdAccId( convertFromPbString(accountBalance.getTrdaccid()) ) + .depAccId( convertFromPbString(accountBalance.getDepaccid()) ) + .openBal( convertFromPbString(accountBalance.getOpenbal()) ) + .currentPos( convertFromPbString(accountBalance.getCurrentpos()) ) + .plannedPosSell( convertFromPbString(accountBalance.getPlannedpossell()) ) + .plannedPosBuy( convertFromPbString(accountBalance.getPlannedposbuy()) ) + .planBal( convertFromPbString(accountBalance.getPlanbal()) ) + .usqtyb( convertFromPbString(accountBalance.getUsqtyb()) ) + .usqtys( convertFromPbString(accountBalance.getUsqtys()) ) + .planned( convertFromPbString(accountBalance.getPlanned()) ) + .settleBal( convertFromPbString(accountBalance.getSettlebal()) ) + .bankAccId( convertFromPbString(accountBalance.getBankAccId()) ) + .firmUse( accountBalance.getFirmuse() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 6938d76..c1ffeff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; @@ -75,6 +76,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); registerDeserializer(result, MoneyLimit.class, MoneyLimitPbDeserializer.INSTANCE); + registerDeserializer(result, AccountBalance.class, AccountBalancePbDeserializer.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java new file mode 100644 index 0000000..0f2563a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java @@ -0,0 +1,91 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static org.junit.Assert.assertEquals; + +public class AccountBalanceProtobufSerdeTest { + + private static Deserializer sut; + + private static AccountBalance expectedObject; + private static byte[] expectedPbInput; + + private static AccountBalance expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = AccountBalancePbDeserializer.INSTANCE; + + expectedObject = AccountBalance.builder() + .firmId("1") + .secCode("2") + .trdAccId("3") + .depAccId("4") + .openBal("5") + .currentPos("6") + .plannedPosSell("7") + .plannedPosBuy("8") + .planBal("9") + .usqtyb("10") + .usqtys("11") + .planned("12") + .settleBal("13") + .bankAccId("14") + .firmUse(15) + .build(); + expectedPbInput = convertToPbByteArray(expectedObject); + + expectedObjectWithNullNonRequiredStringFileds = AccountBalance.builder() + .firmUse(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); + } + + @Test + public void testDeserialize() { + + final AccountBalance actualObject = sut.deserialize(expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AccountBalance actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } + + private static byte[] convertToPbByteArray(@NotNull final AccountBalance accountBalance) { + + return QluaStructures.AccountBalance.newBuilder() + .setFirmid( convertToPbString(accountBalance.getFirmId()) ) + .setSecCode( convertToPbString(accountBalance.getSecCode()) ) + .setTrdaccid( convertToPbString(accountBalance.getTrdAccId()) ) + .setDepaccid( convertToPbString(accountBalance.getDepAccId()) ) + .setOpenbal( convertToPbString(accountBalance.getOpenBal()) ) + .setCurrentpos( convertToPbString(accountBalance.getCurrentPos()) ) + .setPlannedpossell( convertToPbString(accountBalance.getPlannedPosSell()) ) + .setPlannedposbuy( convertToPbString(accountBalance.getPlannedPosBuy()) ) + .setPlanbal( convertToPbString(accountBalance.getPlanBal()) ) + .setUsqtyb( convertToPbString(accountBalance.getUsqtyb()) ) + .setUsqtys( convertToPbString(accountBalance.getUsqtys()) ) + .setPlanned( convertToPbString(accountBalance.getPlanned()) ) + .setSettlebal( convertToPbString(accountBalance.getSettleBal()) ) + .setBankAccId( convertToPbString(accountBalance.getBankAccId()) ) + .setFirmuse( accountBalance.getFirmUse() ) + .build() + .toByteArray(); + } +} From 054d236528dd44ca43acd35cb29095de0110160e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 17:34:56 +0300 Subject: [PATCH 158/549] Removed unused import. --- .../lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java index 0f2563a..4d871c8 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; import org.junit.BeforeClass; From 5ccbdc54a023ffd389e95150608cc309a952af41 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 18:00:51 +0300 Subject: [PATCH 159/549] Applying the Lombok's magic for logging. --- .../application/CurveKeyPairGenerator.java | 15 ++++----- .../JsonSubscriptionExampleApplication.java | 32 +++++++++--------- ...rotobufSubscriptionExampleApplication.java | 33 +++++++++---------- .../application/RpcExampleApplication.java | 26 +++++++-------- .../SubscriptionExampleApplication.java | 32 +++++++++--------- 5 files changed, 64 insertions(+), 74 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/CurveKeyPairGenerator.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/CurveKeyPairGenerator.java index aa5b4a1..c646c6f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/CurveKeyPairGenerator.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/CurveKeyPairGenerator.java @@ -1,22 +1,21 @@ package com.enfernuz.quik.lua.rpc.application; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.zeromq.ZMQ; +@Slf4j public class CurveKeyPairGenerator { - private static final Logger LOGGER = LoggerFactory.getLogger(CurveKeyPairGenerator.class); - public static void main(final String[] args) { try { final ZMQ.Curve.KeyPair keyPair = ZMQ.Curve.generateKeyPair(); - System.out.println( - String.format("Public key: \n%s\n\nSecret key: \n%s", keyPair.publicKey, keyPair.secretKey) - ); + final String msg = + String.format("Public key: \n%s\n\nSecret key: \n%s", keyPair.publicKey, keyPair.secretKey); + System.out.println(msg); + log.info(msg); } catch (final RuntimeException ex) { - LOGGER.error("Ошибка при попытке сгенерировать ключевую пару CURVE.", ex); + log.error("Ошибка при попытке сгенерировать ключевую пару CURVE.", ex); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java index 1226722..9780f47 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/JsonSubscriptionExampleApplication.java @@ -6,23 +6,21 @@ import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; +@Slf4j public class JsonSubscriptionExampleApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionExampleApplication.class); - public static void main(final String[] args) { final String filePath = args[0]; if (filePath == null) { - LOGGER.error("Не задан путь до файла конфигурации."); + log.error("Не задан путь до файла конфигурации."); return; } @@ -30,30 +28,30 @@ public static void main(final String[] args) { try { configFile = new File(filePath); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + log.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); return; } - LOGGER.info("Чтение файла конфигурации..."); + log.info("Чтение файла конфигурации..."); ClientConfiguration config; try { config = JsonClientConfigurationReader.INSTANCE.read(configFile); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + log.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); return; } - LOGGER.info("Инициализация клиента..."); + log.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { - LOGGER.info("Подписка на все события..."); + log.info("Подписка на все события..."); eventProcessor.subscribeToEverything(); - LOGGER.info("Регистрация обработчиков событий..."); + log.info("Регистрация обработчиков событий..."); eventProcessor.register(LoggingEventHandler.INSTANCE); - LOGGER.info("Соединение с RPC-сервисом..."); + log.info("Соединение с RPC-сервисом..."); eventProcessor.open(); // monitor the Enter key pressing @@ -63,20 +61,20 @@ public static void main(final String[] args) { try { enough.set(System.in.read() > 0); } catch (final Exception ex) { - LOGGER.error("Ошибка при чтении стандартного потока ввода.", ex); + log.error("Ошибка при чтении стандартного потока ввода.", ex); } }); - LOGGER.info("Начало обработки событий. Нажмите Enter для остановки..."); + log.info("Начало обработки событий. Нажмите Enter для остановки..."); while ( !enough.get() ) { eventProcessor.process(1); } - LOGGER.info("Выход из программы..."); + log.info("Выход из программы..."); } catch (final QluaEventProcessor.QluaEventProcessingException ex) { - LOGGER.error("Ошибка при обработке события.", ex); + log.error("Ошибка при обработке события.", ex); } catch (final Exception ex) { - LOGGER.error("Не удалось начать обработку событий.", ex); + log.error("Не удалось начать обработку событий.", ex); } finally { stdinScannerExecutorService.shutdownNow(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java index 2b60683..ae3ae56 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/ProtobufSubscriptionExampleApplication.java @@ -7,24 +7,21 @@ import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; -import com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeModule; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; +@Slf4j public class ProtobufSubscriptionExampleApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionExampleApplication.class); - public static void main(final String[] args) { final String filePath = args[0]; if (filePath == null) { - LOGGER.error("Не задан путь до файла конфигурации."); + log.error("Не задан путь до файла конфигурации."); return; } @@ -32,32 +29,32 @@ public static void main(final String[] args) { try { configFile = new File(filePath); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + log.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); return; } - LOGGER.info("Чтение файла конфигурации..."); + log.info("Чтение файла конфигурации..."); ClientConfiguration config; try { config = JsonClientConfigurationReader.INSTANCE.read(configFile); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + log.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); return; } - LOGGER.info("Инициализация клиента..."); + log.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { - LOGGER.info("Подписка на все события..."); + log.info("Подписка на все события..."); //eventProcessor.subscribeToEverything(); eventProcessor.subscribe(QluaEvent.EventType.ON_FIRM); eventProcessor.subscribe(QluaEvent.EventType.ON_MONEY_LIMIT); - LOGGER.info("Регистрация обработчиков событий..."); + log.info("Регистрация обработчиков событий..."); eventProcessor.register(LoggingEventHandler.INSTANCE); - LOGGER.info("Соединение с RPC-сервисом..."); + log.info("Соединение с RPC-сервисом..."); eventProcessor.open(); // monitor the Enter key pressing @@ -67,20 +64,20 @@ public static void main(final String[] args) { try { enough.set(System.in.read() > 0); } catch (final Exception ex) { - LOGGER.error("Ошибка при чтении стандартного потока ввода.", ex); + log.error("Ошибка при чтении стандартного потока ввода.", ex); } }); - LOGGER.info("Начало обработки событий. Нажмите Enter для остановки..."); + log.info("Начало обработки событий. Нажмите Enter для остановки..."); while ( !enough.get() ) { eventProcessor.process(1); } - LOGGER.info("Выход из программы..."); + log.info("Выход из программы..."); } catch (final QluaEventProcessor.QluaEventProcessingException ex) { - LOGGER.error("Ошибка при обработке события.", ex); + log.error("Ошибка при обработке события.", ex); } catch (final Exception ex) { - LOGGER.error("Не удалось начать обработку событий.", ex); + log.error("Не удалось начать обработку событий.", ex); } finally { stdinScannerExecutorService.shutdownNow(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index b4bd2d7..db1493a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -4,20 +4,18 @@ import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaRpcClient; import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.config.JsonClientConfigurationReader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import java.io.File; +@Slf4j public class RpcExampleApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(RpcExampleApplication.class); - public static void main(final String[] args) { final String filePath = args[0]; if (filePath == null) { - LOGGER.error("Не задан путь до файла конфигурации."); + log.error("Не задан путь до файла конфигурации."); return; } @@ -25,34 +23,34 @@ public static void main(final String[] args) { try { configFile = new File(filePath); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + log.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); return; } - LOGGER.info("Чтение файла конфигурации..."); + log.info("Чтение файла конфигурации..."); ClientConfiguration config; try { config = JsonClientConfigurationReader.INSTANCE.read(configFile); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + log.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); return; } - LOGGER.info("Инициализация клиента..."); + log.info("Инициализация клиента..."); try (final ZmqTcpQluaRpcClient rpcClient = ZmqTcpQluaRpcClient.newInstance(config)) { - LOGGER.info("Соединение с RPC-сервисом..."); + log.info("Соединение с RPC-сервисом..."); rpcClient.open(); final Message.Request request = new Message.Request("Hello, world!", Message.IconType.WARNING); - LOGGER.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); + log.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); final Message.Result result = rpcClient.qlua_message(request); - LOGGER.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); - LOGGER.info("Выход из программы..."); + log.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); + log.info("Выход из программы..."); } catch (final Exception ex) { - LOGGER.error("Не удалось выполнить удалённый вызов процедуры.", ex); + log.error("Не удалось выполнить удалённый вызов процедуры.", ex); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java index 44e6ade..7f788db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/SubscriptionExampleApplication.java @@ -6,23 +6,21 @@ import com.enfernuz.quik.lua.rpc.events.api.PollingMode; import com.enfernuz.quik.lua.rpc.events.api.QluaEventProcessor; import com.enfernuz.quik.lua.rpc.api.zmq.ZmqTcpQluaEventProcessor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import java.io.File; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; +@Slf4j public class SubscriptionExampleApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionExampleApplication.class); - public static void main(final String[] args) { final String filePath = args[0]; if (filePath == null) { - LOGGER.error("Не задан путь до файла конфигурации."); + log.error("Не задан путь до файла конфигурации."); return; } @@ -30,30 +28,30 @@ public static void main(final String[] args) { try { configFile = new File(filePath); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); + log.error(String.format("Не удалось прочитать файл '%s'.", filePath), ex); return; } - LOGGER.info("Чтение файла конфигурации..."); + log.info("Чтение файла конфигурации..."); ClientConfiguration config; try { config = JsonClientConfigurationReader.INSTANCE.read(configFile); } catch (final Exception ex) { - LOGGER.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); + log.error(String.format("Не удалось получить объект конфигурации из файла '%s'.", filePath), ex); return; } - LOGGER.info("Инициализация клиента..."); + log.info("Инициализация клиента..."); final ExecutorService stdinScannerExecutorService = Executors.newSingleThreadExecutor(); try (final ZmqTcpQluaEventProcessor eventProcessor = ZmqTcpQluaEventProcessor.newInstance(config, PollingMode.BLOCKING)) { - LOGGER.info("Подписка на все события..."); + log.info("Подписка на все события..."); eventProcessor.subscribeToEverything(); - LOGGER.info("Регистрация обработчиков событий..."); + log.info("Регистрация обработчиков событий..."); eventProcessor.register(LoggingEventHandler.INSTANCE); - LOGGER.info("Соединение с RPC-сервисом..."); + log.info("Соединение с RPC-сервисом..."); eventProcessor.open(); // monitor the Enter key pressing @@ -63,20 +61,20 @@ public static void main(final String[] args) { try { enough.set(System.in.read() > 0); } catch (final Exception ex) { - LOGGER.error("Ошибка при чтении стандартного потока ввода.", ex); + log.error("Ошибка при чтении стандартного потока ввода.", ex); } }); - LOGGER.info("Начало обработки событий. Нажмите Enter для остановки..."); + log.info("Начало обработки событий. Нажмите Enter для остановки..."); while ( !enough.get() ) { eventProcessor.process(1); } - LOGGER.info("Выход из программы..."); + log.info("Выход из программы..."); } catch (final QluaEventProcessor.QluaEventProcessingException ex) { - LOGGER.error("Ошибка при обработке события.", ex); + log.error("Ошибка при обработке события.", ex); } catch (final Exception ex) { - LOGGER.error("Не удалось начать обработку событий.", ex); + log.error("Не удалось начать обработку событий.", ex); } finally { stdinScannerExecutorService.shutdownNow(); } From d8ee70dfd75fc571bf1a20d9630904cac7b10639 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 18:30:18 +0300 Subject: [PATCH 160/549] Added the AccountPosition protobuf deserializer. --- .../AccountPositionPbDeserializer.java | 42 +++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 9 +- .../AccountPositionProtobufSerdeTest.java | 94 +++++++++++++++++++ 3 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java new file mode 100644 index 0000000..3878b3d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum AccountPositionPbDeserializer implements Deserializer { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountPosition deserialize(final byte[] data) { + + final QluaStructures.AccountPosition accountPosition = QluaStructures.AccountPosition.parseFrom(data); + return AccountPosition + .builder() + .firmId( convertFromPbString(accountPosition.getFirmid()) ) + .currCode( convertFromPbString(accountPosition.getCurrcode()) ) + .tag( convertFromPbString(accountPosition.getTag()) ) + .description( convertFromPbString(accountPosition.getDescription()) ) + .openBal( convertFromPbString(accountPosition.getOpenbal()) ) + .currentPos( convertFromPbString(accountPosition.getCurrentpos()) ) + .plannedPos( convertFromPbString(accountPosition.getPlannedpos()) ) + .limit1( convertFromPbString(accountPosition.getLimit1()) ) + .limit2( convertFromPbString(accountPosition.getLimit2()) ) + .orderBuy( convertFromPbString(accountPosition.getOrderbuy()) ) + .orderSell( convertFromPbString(accountPosition.getOrdersell()) ) + .netto( convertFromPbString(accountPosition.getNetto()) ) + .plannedBal( convertFromPbString(accountPosition.getPlannedbal()) ) + .debit( convertFromPbString(accountPosition.getDebit()) ) + .credit( convertFromPbString(accountPosition.getCredit()) ) + .bankAccId( convertFromPbString(accountPosition.getBankAccId()) ) + .marginCall( convertFromPbString(accountPosition.getMargincall()) ) + .settleBal( convertFromPbString(accountPosition.getSettlebal()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index c1ffeff..f7e2c97 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,12 +1,14 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; @@ -62,9 +64,9 @@ public T deserialize(final Class clazz, final byte[] data) { } private static void registerDeserializer( - final Map, Deserializer> map, - final Class clazz, - final Deserializer deserializer) { + @NotNull final Map, Deserializer> map, + @NotNull final Class clazz, + @NotNull final Deserializer deserializer) { map.put(clazz, deserializer); } @@ -77,6 +79,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); registerDeserializer(result, MoneyLimit.class, MoneyLimitPbDeserializer.INSTANCE); registerDeserializer(result, AccountBalance.class, AccountBalancePbDeserializer.INSTANCE); + registerDeserializer(result, AccountPosition.class, AccountPositionPbDeserializer.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java new file mode 100644 index 0000000..f5d1e78 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java @@ -0,0 +1,94 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static org.junit.Assert.assertEquals; + +public class AccountPositionProtobufSerdeTest { + + private static Deserializer sut; + + private static AccountPosition expectedObject; + private static byte[] expectedPbInput; + + private static AccountPosition expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = AccountPositionPbDeserializer.INSTANCE; + + expectedObject = AccountPosition.builder() + .firmId("1") + .currCode("2") + .tag("3") + .description("4") + .openBal("5") + .currentPos("6") + .plannedPos("7") + .limit1("8") + .limit2("9") + .orderBuy("10") + .orderSell("11") + .netto("12") + .plannedBal("13") + .debit("14") + .credit("15") + .bankAccId("16") + .marginCall("17") + .settleBal("18") + .build(); + expectedPbInput = convertToPbByteArray(expectedObject); + + expectedObjectWithNullNonRequiredStringFileds = AccountPosition.builder().build(); + expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); + } + + @Test + public void testDeserialize() { + + final AccountPosition actualObject = sut.deserialize(expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AccountPosition actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } + + private static byte[] convertToPbByteArray(@NotNull final AccountPosition accountPosition) { + + return QluaStructures.AccountPosition.newBuilder() + .setFirmid( convertToPbString(accountPosition.getFirmId()) ) + .setCurrcode( convertToPbString(accountPosition.getCurrCode()) ) + .setTag( convertToPbString(accountPosition.getTag()) ) + .setDescription( convertToPbString(accountPosition.getDescription()) ) + .setOpenbal( convertToPbString(accountPosition.getOpenBal()) ) + .setCurrentpos( convertToPbString(accountPosition.getCurrentPos()) ) + .setPlannedpos( convertToPbString(accountPosition.getPlannedPos()) ) + .setLimit1( convertToPbString(accountPosition.getLimit1()) ) + .setLimit2( convertToPbString(accountPosition.getLimit2()) ) + .setOrderbuy( convertToPbString(accountPosition.getOrderBuy()) ) + .setOrdersell( convertToPbString(accountPosition.getOrderSell()) ) + .setNetto( convertToPbString(accountPosition.getNetto()) ) + .setPlannedbal( convertToPbString(accountPosition.getPlannedBal()) ) + .setDebit( convertToPbString(accountPosition.getDebit()) ) + .setCredit( convertToPbString(accountPosition.getCredit()) ) + .setBankAccId( convertToPbString(accountPosition.getBankAccId()) ) + .setMargincall( convertToPbString(accountPosition.getMarginCall()) ) + .setSettlebal( convertToPbString(accountPosition.getSettleBal()) ) + .build() + .toByteArray(); + } +} From d8dd11c4f623b220876f428bbe66bc41f43169c2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 20:01:45 +0300 Subject: [PATCH 161/549] Added interface of a Protobuf-to-Domain converter. --- .../quik/lua/rpc/serde/PbConverter.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java new file mode 100644 index 0000000..71a7501 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde; + +import com.google.protobuf.GeneratedMessageV3; + +/** + * Интерфейс компонента для преобразования экземпляров классов, сгенерированных protobuf-плагином, в экземпляры + * соответствующих классов фреймворка, и обратно. + * + * @param класс, сгенерированный protobuf-плагином + * @param класс фреймворка, соответствующий классу, сгененированному protobuf-плагином + */ +public interface PbConverter { + + /** + * Конвертирует экземпляр класса, сгенерированного protobuf-плагином, в экземпляр соответствующего класса фреймворка. + * + * @param pbObject экземпляр класса, сгенерированного protobuf плагином + * @return экземпляр класса фреймворка, соответствующего классу заданного объекта + */ + DOMAIN_OBJECT convertFromPb(PB_OBJECT pbObject); + + /** + * Конвертирует экземпляр класс фреймворка в экземпляр соответствующего класса, сгенерированного protobuf-плагином. + * + * @param domainObject экземпляр класса фреймворка + * @return экземпляр соответствующего класса, сгенерированного protobuf-плагином + */ + PB_OBJECT convertToPb(DOMAIN_OBJECT domainObject); +} From 5721a71e168fa6a8e3ba6ea3a742d67c9584b406 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 20:10:15 +0300 Subject: [PATCH 162/549] Renamed pb-deserializers to *PbSerde, implemented them as a PbConverter; marked the 'dateTime' field of AllTrade as @NonNull. --- .../quik/lua/rpc/api/structures/AllTrade.java | 9 +- .../AccountBalancePbDeserializer.java | 39 -------- .../serde/protobuf/AccountBalancePbSerde.java | 70 ++++++++++++++ .../AccountPositionPbDeserializer.java | 42 --------- .../protobuf/AccountPositionPbSerde.java | 76 +++++++++++++++ .../rpc/serde/protobuf/AllTradePbSerde.java | 77 +++++++++++++++ .../serde/protobuf/DateTimeEntryPbSerde.java | 53 +++++++++++ .../serde/protobuf/FirmPbDeserializer.java | 28 ------ .../lua/rpc/serde/protobuf/FirmPbSerde.java | 48 ++++++++++ .../protobuf/MoneyLimitPbDeserializer.java | 37 -------- .../rpc/serde/protobuf/MoneyLimitPbSerde.java | 66 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 15 ++- .../protobuf/AccountBalancePbSerdeTest.java | 70 ++++++++++++++ .../AccountBalanceProtobufSerdeTest.java | 90 ------------------ .../protobuf/AccountPositionPbSerdeTest.java | 71 ++++++++++++++ .../AccountPositionProtobufSerdeTest.java | 94 ------------------- .../serde/protobuf/AllTradePbSerdeTest.java | 90 ++++++++++++++++++ .../protobuf/DateTimeEntryPbSerdeTest.java | 47 ++++++++++ ...bufSerdeTest.java => FirmPbSerdeTest.java} | 33 +++---- .../serde/protobuf/MoneyLimitPbSerdeTest.java | 68 ++++++++++++++ .../protobuf/MoneyLimitProtobufSerdeTest.java | 86 ----------------- 21 files changed, 758 insertions(+), 451 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{FirmProtobufSerdeTest.java => FirmPbSerdeTest.java} (51%) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 890c12f..95d66e0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; @@ -16,7 +13,7 @@ public class AllTrade { long tradeNum; int flags; - String price; + @NonNull String price; int qty; String value; String accruedInt; @@ -28,7 +25,7 @@ public class AllTrade { String repoTerm; String secCode; String classCode; - DateTimeEntry datetime; + @NonNull DateTimeEntry datetime; int period; String openInterest; String exchangeCode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java deleted file mode 100644 index 4f165b8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; - -enum AccountBalancePbDeserializer implements Deserializer { - - INSTANCE; - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AccountBalance deserialize(final byte[] data) { - - final QluaStructures.AccountBalance accountBalance = QluaStructures.AccountBalance.parseFrom(data); - return AccountBalance - .builder() - .firmId( convertFromPbString(accountBalance.getFirmid()) ) - .secCode( convertFromPbString(accountBalance.getSecCode()) ) - .trdAccId( convertFromPbString(accountBalance.getTrdaccid()) ) - .depAccId( convertFromPbString(accountBalance.getDepaccid()) ) - .openBal( convertFromPbString(accountBalance.getOpenbal()) ) - .currentPos( convertFromPbString(accountBalance.getCurrentpos()) ) - .plannedPosSell( convertFromPbString(accountBalance.getPlannedpossell()) ) - .plannedPosBuy( convertFromPbString(accountBalance.getPlannedposbuy()) ) - .planBal( convertFromPbString(accountBalance.getPlanbal()) ) - .usqtyb( convertFromPbString(accountBalance.getUsqtyb()) ) - .usqtys( convertFromPbString(accountBalance.getUsqtys()) ) - .planned( convertFromPbString(accountBalance.getPlanned()) ) - .settleBal( convertFromPbString(accountBalance.getSettlebal()) ) - .bankAccId( convertFromPbString(accountBalance.getBankAccId()) ) - .firmUse( accountBalance.getFirmuse() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java new file mode 100644 index 0000000..0eb2d17 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum AccountBalancePbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountBalance deserialize(final byte[] data) { + return convertFromPb( QluaStructures.AccountBalance.parseFrom(data) ); + } + + @Override + public AccountBalance convertFromPb(@NotNull final QluaStructures.AccountBalance accountBalance) { + + return AccountBalance + .builder() + .firmId( convertFromPbString(accountBalance.getFirmid()) ) + .secCode( convertFromPbString(accountBalance.getSecCode()) ) + .trdAccId( convertFromPbString(accountBalance.getTrdaccid()) ) + .depAccId( convertFromPbString(accountBalance.getDepaccid()) ) + .openBal( convertFromPbString(accountBalance.getOpenbal()) ) + .currentPos( convertFromPbString(accountBalance.getCurrentpos()) ) + .plannedPosSell( convertFromPbString(accountBalance.getPlannedpossell()) ) + .plannedPosBuy( convertFromPbString(accountBalance.getPlannedposbuy()) ) + .planBal( convertFromPbString(accountBalance.getPlanbal()) ) + .usqtyb( convertFromPbString(accountBalance.getUsqtyb()) ) + .usqtys( convertFromPbString(accountBalance.getUsqtys()) ) + .planned( convertFromPbString(accountBalance.getPlanned()) ) + .settleBal( convertFromPbString(accountBalance.getSettlebal()) ) + .bankAccId( convertFromPbString(accountBalance.getBankAccId()) ) + .firmUse( accountBalance.getFirmuse() ) + .build(); + } + + @Override + public QluaStructures.AccountBalance convertToPb(@NotNull final AccountBalance accountBalance) { + + return QluaStructures.AccountBalance.newBuilder() + .setFirmid( convertToPbString(accountBalance.getFirmId()) ) + .setSecCode( convertToPbString(accountBalance.getSecCode()) ) + .setTrdaccid( convertToPbString(accountBalance.getTrdAccId()) ) + .setDepaccid( convertToPbString(accountBalance.getDepAccId()) ) + .setOpenbal( convertToPbString(accountBalance.getOpenBal()) ) + .setCurrentpos( convertToPbString(accountBalance.getCurrentPos()) ) + .setPlannedpossell( convertToPbString(accountBalance.getPlannedPosSell()) ) + .setPlannedposbuy( convertToPbString(accountBalance.getPlannedPosBuy()) ) + .setPlanbal( convertToPbString(accountBalance.getPlanBal()) ) + .setUsqtyb( convertToPbString(accountBalance.getUsqtyb()) ) + .setUsqtys( convertToPbString(accountBalance.getUsqtys()) ) + .setPlanned( convertToPbString(accountBalance.getPlanned()) ) + .setSettlebal( convertToPbString(accountBalance.getSettleBal()) ) + .setBankAccId( convertToPbString(accountBalance.getBankAccId()) ) + .setFirmuse( accountBalance.getFirmUse() ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java deleted file mode 100644 index 3878b3d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; - -enum AccountPositionPbDeserializer implements Deserializer { - - INSTANCE; - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AccountPosition deserialize(final byte[] data) { - - final QluaStructures.AccountPosition accountPosition = QluaStructures.AccountPosition.parseFrom(data); - return AccountPosition - .builder() - .firmId( convertFromPbString(accountPosition.getFirmid()) ) - .currCode( convertFromPbString(accountPosition.getCurrcode()) ) - .tag( convertFromPbString(accountPosition.getTag()) ) - .description( convertFromPbString(accountPosition.getDescription()) ) - .openBal( convertFromPbString(accountPosition.getOpenbal()) ) - .currentPos( convertFromPbString(accountPosition.getCurrentpos()) ) - .plannedPos( convertFromPbString(accountPosition.getPlannedpos()) ) - .limit1( convertFromPbString(accountPosition.getLimit1()) ) - .limit2( convertFromPbString(accountPosition.getLimit2()) ) - .orderBuy( convertFromPbString(accountPosition.getOrderbuy()) ) - .orderSell( convertFromPbString(accountPosition.getOrdersell()) ) - .netto( convertFromPbString(accountPosition.getNetto()) ) - .plannedBal( convertFromPbString(accountPosition.getPlannedbal()) ) - .debit( convertFromPbString(accountPosition.getDebit()) ) - .credit( convertFromPbString(accountPosition.getCredit()) ) - .bankAccId( convertFromPbString(accountPosition.getBankAccId()) ) - .marginCall( convertFromPbString(accountPosition.getMargincall()) ) - .settleBal( convertFromPbString(accountPosition.getSettlebal()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java new file mode 100644 index 0000000..ec9b034 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum AccountPositionPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountPosition deserialize(final byte[] data) { + return convertFromPb( QluaStructures.AccountPosition.parseFrom(data) ); + } + + @Override + public AccountPosition convertFromPb(@NotNull final QluaStructures.AccountPosition accountPosition) { + + return AccountPosition + .builder() + .firmId( convertFromPbString(accountPosition.getFirmid()) ) + .currCode( convertFromPbString(accountPosition.getCurrcode()) ) + .tag( convertFromPbString(accountPosition.getTag()) ) + .description( convertFromPbString(accountPosition.getDescription()) ) + .openBal( convertFromPbString(accountPosition.getOpenbal()) ) + .currentPos( convertFromPbString(accountPosition.getCurrentpos()) ) + .plannedPos( convertFromPbString(accountPosition.getPlannedpos()) ) + .limit1( convertFromPbString(accountPosition.getLimit1()) ) + .limit2( convertFromPbString(accountPosition.getLimit2()) ) + .orderBuy( convertFromPbString(accountPosition.getOrderbuy()) ) + .orderSell( convertFromPbString(accountPosition.getOrdersell()) ) + .netto( convertFromPbString(accountPosition.getNetto()) ) + .plannedBal( convertFromPbString(accountPosition.getPlannedbal()) ) + .debit( convertFromPbString(accountPosition.getDebit()) ) + .credit( convertFromPbString(accountPosition.getCredit()) ) + .bankAccId( convertFromPbString(accountPosition.getBankAccId()) ) + .marginCall( convertFromPbString(accountPosition.getMargincall()) ) + .settleBal( convertFromPbString(accountPosition.getSettlebal()) ) + .build(); + } + + @Override + public QluaStructures.AccountPosition convertToPb(@NotNull final AccountPosition accountPosition) { + + return QluaStructures.AccountPosition.newBuilder() + .setFirmid( convertToPbString(accountPosition.getFirmId()) ) + .setCurrcode( convertToPbString(accountPosition.getCurrCode()) ) + .setTag( convertToPbString(accountPosition.getTag()) ) + .setDescription( convertToPbString(accountPosition.getDescription()) ) + .setOpenbal( convertToPbString(accountPosition.getOpenBal()) ) + .setCurrentpos( convertToPbString(accountPosition.getCurrentPos()) ) + .setPlannedpos( convertToPbString(accountPosition.getPlannedPos()) ) + .setLimit1( convertToPbString(accountPosition.getLimit1()) ) + .setLimit2( convertToPbString(accountPosition.getLimit2()) ) + .setOrderbuy( convertToPbString(accountPosition.getOrderBuy()) ) + .setOrdersell( convertToPbString(accountPosition.getOrderSell()) ) + .setNetto( convertToPbString(accountPosition.getNetto()) ) + .setPlannedbal( convertToPbString(accountPosition.getPlannedBal()) ) + .setDebit( convertToPbString(accountPosition.getDebit()) ) + .setCredit( convertToPbString(accountPosition.getCredit()) ) + .setBankAccId( convertToPbString(accountPosition.getBankAccId()) ) + .setMargincall( convertToPbString(accountPosition.getMarginCall()) ) + .setSettlebal( convertToPbString(accountPosition.getSettleBal()) ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java new file mode 100644 index 0000000..87bab47 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java @@ -0,0 +1,77 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum AllTradePbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AllTrade deserialize(final byte[] data) { + return convertFromPb( QluaStructures.AllTrade.parseFrom(data) ); + } + + @Override + public AllTrade convertFromPb(@NotNull final QluaStructures.AllTrade allTrade) { + + return AllTrade + .builder() + .tradeNum( allTrade.getTradeNum() ) + .flags( allTrade.getFlags() ) + .price( allTrade.getPrice() ) + .qty( allTrade.getQty() ) + .value( convertFromPbString(allTrade.getValue()) ) + .accruedInt( convertFromPbString(allTrade.getAccruedint()) ) + .yield( convertFromPbString(allTrade.getYield()) ) + .settleCode( convertFromPbString(allTrade.getSettlecode()) ) + .repoRate( convertFromPbString(allTrade.getReporate()) ) + .repoValue( convertFromPbString(allTrade.getRepovalue()) ) + .repo2Value( convertFromPbString(allTrade.getRepo2Value()) ) + .repoTerm( convertFromPbString(allTrade.getRepoterm()) ) + .secCode( convertFromPbString(allTrade.getSecCode()) ) + .classCode( convertFromPbString(allTrade.getClassCode()) ) + .datetime( DateTimeEntryPbSerde.INSTANCE.convertFromPb(allTrade.getDatetime()) ) + .period( allTrade.getPeriod() ) + .openInterest( convertFromPbString(allTrade.getOpenInterest()) ) + .exchangeCode( convertFromPbString(allTrade.getExchangeCode()) ) + .build(); + } + + @Override + public QluaStructures.AllTrade convertToPb(@NotNull final AllTrade allTrade) { + + return QluaStructures.AllTrade.newBuilder() + .setTradeNum( allTrade.getTradeNum() ) + .setFlags( allTrade.getFlags() ) + .setPrice( allTrade.getPrice() ) + .setQty( allTrade.getQty() ) + .setValue( convertToPbString(allTrade.getValue()) ) + .setAccruedint( convertToPbString(allTrade.getAccruedInt()) ) + .setYield( convertToPbString(allTrade.getYield()) ) + .setSettlecode( convertToPbString(allTrade.getSettleCode()) ) + .setReporate( convertToPbString(allTrade.getRepoRate()) ) + .setRepovalue( convertToPbString(allTrade.getRepoValue()) ) + .setRepo2Value( convertToPbString(allTrade.getRepo2Value()) ) + .setRepoterm( convertToPbString(allTrade.getRepoTerm()) ) + .setSecCode( convertToPbString(allTrade.getSecCode()) ) + .setClassCode( convertToPbString(allTrade.getClassCode()) ) + .setDatetime( DateTimeEntryPbSerde.INSTANCE.convertToPb(allTrade.getDatetime()) ) + .setPeriod( allTrade.getPeriod() ) + .setOpenInterest( convertToPbString(allTrade.getOpenInterest()) ) + .setExchangeCode( convertToPbString(allTrade.getExchangeCode()) ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java new file mode 100644 index 0000000..1a543d6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum DateTimeEntryPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DateTimeEntry deserialize(final byte[] data) { + return convertFromPb( QluaStructures.DateTimeEntry.parseFrom(data) ); + } + + @Override + public DateTimeEntry convertFromPb(@NotNull final QluaStructures.DateTimeEntry dateTimeEntry) { + + return DateTimeEntry + .builder() + .mcs( dateTimeEntry.getMcs() ) + .ms( dateTimeEntry.getMs() ) + .sec( dateTimeEntry.getSec() ) + .min( dateTimeEntry.getMin() ) + .hour( dateTimeEntry.getHour() ) + .day( dateTimeEntry.getDay() ) + .weekDay( dateTimeEntry.getWeekDay() ) + .month( dateTimeEntry.getMonth() ) + .year( dateTimeEntry.getYear() ) + .build(); + } + + @Override + public QluaStructures.DateTimeEntry convertToPb(@NotNull final DateTimeEntry dateTimeEntry) { + + return QluaStructures.DateTimeEntry.newBuilder() + .setMcs( dateTimeEntry.getMcs() ) + .setMs( dateTimeEntry.getMs() ) + .setSec( dateTimeEntry.getSec() ) + .setMin( dateTimeEntry.getMin() ) + .setHour( dateTimeEntry.getHour() ) + .setDay( dateTimeEntry.getDay() ) + .setWeekDay( dateTimeEntry.getWeekDay() ) + .setMonth( dateTimeEntry.getMonth() ) + .setYear( dateTimeEntry.getYear() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java deleted file mode 100644 index f80588c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; - -enum FirmPbDeserializer implements Deserializer { - - INSTANCE; - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Firm deserialize(final byte[] data) { - - final QluaStructures.Firm firm = QluaStructures.Firm.parseFrom(data); - return Firm - .builder() - .firmId(firm.getFirmid()) - .firmName( convertFromPbString(firm.getFirmName()) ) - .status(firm.getStatus()) - .exchange( convertFromPbString(firm.getExchange()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java new file mode 100644 index 0000000..5ab6e8a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum FirmPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Firm deserialize(final byte[] data) { + return convertFromPb(QluaStructures.Firm.parseFrom(data)); + } + + @Override + public Firm convertFromPb(@NotNull QluaStructures.Firm firm) { + + return Firm + .builder() + .firmId(firm.getFirmid()) + .firmName( convertFromPbString(firm.getFirmName()) ) + .status(firm.getStatus()) + .exchange( convertFromPbString(firm.getExchange()) ) + .build(); + } + + @Override + public QluaStructures.Firm convertToPb(@NotNull final Firm firm) { + + return QluaStructures.Firm.newBuilder() + .setFirmid( firm.getFirmId() ) + .setFirmName( convertToPbString(firm.getFirmName()) ) + .setStatus( firm.getStatus() ) + .setExchange( convertToPbString(firm.getExchange()) ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java deleted file mode 100644 index b4d61ef..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; - -enum MoneyLimitPbDeserializer implements Deserializer { - - INSTANCE; - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public MoneyLimit deserialize(final byte[] data) { - - final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.parseFrom(data); - return MoneyLimit - .builder() - .currCode( convertFromPbString(moneyLimit.getCurrcode()) ) - .tag( convertFromPbString(moneyLimit.getTag()) ) - .firmId( convertFromPbString(moneyLimit.getFirmid()) ) - .clientCode( convertFromPbString(moneyLimit.getClientCode()) ) - .openBal( convertFromPbString(moneyLimit.getOpenbal()) ) - .openLimit( convertFromPbString(moneyLimit.getOpenlimit()) ) - .currentBal( convertFromPbString(moneyLimit.getCurrentbal()) ) - .currentLimit( convertFromPbString(moneyLimit.getCurrentlimit()) ) - .locked( convertFromPbString(moneyLimit.getLocked()) ) - .lockedValueCoef( convertFromPbString(moneyLimit.getLockedValueCoef()) ) - .lockedMarginValue( convertFromPbString(moneyLimit.getLockedMarginValue()) ) - .leverage( convertFromPbString(moneyLimit.getLeverage()) ) - .limitKind( moneyLimit.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java new file mode 100644 index 0000000..aff6d31 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum MoneyLimitPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public MoneyLimit deserialize(final byte[] data) { + return convertFromPb( QluaStructures.MoneyLimit.parseFrom(data) ); + } + + @Override + public MoneyLimit convertFromPb(@NotNull QluaStructures.MoneyLimit moneyLimit) { + + return MoneyLimit + .builder() + .currCode( convertFromPbString(moneyLimit.getCurrcode()) ) + .tag( convertFromPbString(moneyLimit.getTag()) ) + .firmId( convertFromPbString(moneyLimit.getFirmid()) ) + .clientCode( convertFromPbString(moneyLimit.getClientCode()) ) + .openBal( convertFromPbString(moneyLimit.getOpenbal()) ) + .openLimit( convertFromPbString(moneyLimit.getOpenlimit()) ) + .currentBal( convertFromPbString(moneyLimit.getCurrentbal()) ) + .currentLimit( convertFromPbString(moneyLimit.getCurrentlimit()) ) + .locked( convertFromPbString(moneyLimit.getLocked()) ) + .lockedValueCoef( convertFromPbString(moneyLimit.getLockedValueCoef()) ) + .lockedMarginValue( convertFromPbString(moneyLimit.getLockedMarginValue()) ) + .leverage( convertFromPbString(moneyLimit.getLeverage()) ) + .limitKind( moneyLimit.getLimitKind() ) + .build(); + } + + @Override + public QluaStructures.MoneyLimit convertToPb(@NotNull final MoneyLimit moneyLimit) { + + return QluaStructures.MoneyLimit.newBuilder() + .setCurrcode( convertToPbString(moneyLimit.getCurrCode()) ) + .setTag( convertToPbString(moneyLimit.getTag()) ) + .setFirmid( convertToPbString(moneyLimit.getFirmId()) ) + .setClientCode( convertToPbString(moneyLimit.getClientCode()) ) + .setOpenbal( convertToPbString(moneyLimit.getOpenBal()) ) + .setOpenlimit( convertToPbString(moneyLimit.getOpenLimit()) ) + .setCurrentbal( convertToPbString(moneyLimit.getCurrentBal()) ) + .setCurrentlimit( convertToPbString(moneyLimit.getCurrentLimit()) ) + .setLocked( convertToPbString(moneyLimit.getLocked()) ) + .setLockedValueCoef( convertToPbString(moneyLimit.getLockedValueCoef()) ) + .setLockedMarginValue( convertToPbString(moneyLimit.getLockedMarginValue()) ) + .setLeverage( convertToPbString(moneyLimit.getLeverage()) ) + .setLimitKind( moneyLimit.getLimitKind() ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index f7e2c97..2ae6822 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,10 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; @@ -76,10 +73,12 @@ private static Map, Deserializer> createClassToDeserializerMap() { final Map, Deserializer> result = new HashMap<>(); registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); - registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); - registerDeserializer(result, MoneyLimit.class, MoneyLimitPbDeserializer.INSTANCE); - registerDeserializer(result, AccountBalance.class, AccountBalancePbDeserializer.INSTANCE); - registerDeserializer(result, AccountPosition.class, AccountPositionPbDeserializer.INSTANCE); + registerDeserializer(result, Firm.class, FirmPbSerde.INSTANCE); + registerDeserializer(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); + registerDeserializer(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); + registerDeserializer(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); + registerDeserializer(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); + registerDeserializer(result, AllTrade.class, AllTradePbSerde.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java new file mode 100644 index 0000000..4c3a1e4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class AccountBalancePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static AccountBalance expectedObject; + private static byte[] expectedPbInput; + + private static AccountBalance expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = AccountBalancePbSerde.INSTANCE; + + expectedObject = AccountBalance.builder() + .firmId("1") + .secCode("2") + .trdAccId("3") + .depAccId("4") + .openBal("5") + .currentPos("6") + .plannedPosSell("7") + .plannedPosBuy("8") + .planBal("9") + .usqtyb("10") + .usqtys("11") + .planned("12") + .settleBal("13") + .bankAccId("14") + .firmUse(15) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = AccountBalance.builder() + .firmUse(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java deleted file mode 100644 index 4d871c8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalanceProtobufSerdeTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import org.jetbrains.annotations.NotNull; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -import static org.junit.Assert.assertEquals; - -public class AccountBalanceProtobufSerdeTest { - - private static Deserializer sut; - - private static AccountBalance expectedObject; - private static byte[] expectedPbInput; - - private static AccountBalance expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; - - @BeforeClass - public static void globalSetup() { - - sut = AccountBalancePbDeserializer.INSTANCE; - - expectedObject = AccountBalance.builder() - .firmId("1") - .secCode("2") - .trdAccId("3") - .depAccId("4") - .openBal("5") - .currentPos("6") - .plannedPosSell("7") - .plannedPosBuy("8") - .planBal("9") - .usqtyb("10") - .usqtys("11") - .planned("12") - .settleBal("13") - .bankAccId("14") - .firmUse(15) - .build(); - expectedPbInput = convertToPbByteArray(expectedObject); - - expectedObjectWithNullNonRequiredStringFileds = AccountBalance.builder() - .firmUse(1) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); - } - - @Test - public void testDeserialize() { - - final AccountBalance actualObject = sut.deserialize(expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final AccountBalance actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); - - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); - } - - private static byte[] convertToPbByteArray(@NotNull final AccountBalance accountBalance) { - - return QluaStructures.AccountBalance.newBuilder() - .setFirmid( convertToPbString(accountBalance.getFirmId()) ) - .setSecCode( convertToPbString(accountBalance.getSecCode()) ) - .setTrdaccid( convertToPbString(accountBalance.getTrdAccId()) ) - .setDepaccid( convertToPbString(accountBalance.getDepAccId()) ) - .setOpenbal( convertToPbString(accountBalance.getOpenBal()) ) - .setCurrentpos( convertToPbString(accountBalance.getCurrentPos()) ) - .setPlannedpossell( convertToPbString(accountBalance.getPlannedPosSell()) ) - .setPlannedposbuy( convertToPbString(accountBalance.getPlannedPosBuy()) ) - .setPlanbal( convertToPbString(accountBalance.getPlanBal()) ) - .setUsqtyb( convertToPbString(accountBalance.getUsqtyb()) ) - .setUsqtys( convertToPbString(accountBalance.getUsqtys()) ) - .setPlanned( convertToPbString(accountBalance.getPlanned()) ) - .setSettlebal( convertToPbString(accountBalance.getSettleBal()) ) - .setBankAccId( convertToPbString(accountBalance.getBankAccId()) ) - .setFirmuse( accountBalance.getFirmUse() ) - .build() - .toByteArray(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java new file mode 100644 index 0000000..716b26e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java @@ -0,0 +1,71 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class AccountPositionPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static AccountPosition expectedObject; + private static byte[] expectedPbInput; + + private static AccountPosition expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = AccountPositionPbSerde.INSTANCE; + + expectedObject = AccountPosition.builder() + .firmId("1") + .currCode("2") + .tag("3") + .description("4") + .openBal("5") + .currentPos("6") + .plannedPos("7") + .limit1("8") + .limit2("9") + .orderBuy("10") + .orderSell("11") + .netto("12") + .plannedBal("13") + .debit("14") + .credit("15") + .bankAccId("16") + .marginCall("17") + .settleBal("18") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = AccountPosition.builder().build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java deleted file mode 100644 index f5d1e78..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionProtobufSerdeTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import org.jetbrains.annotations.NotNull; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -import static org.junit.Assert.assertEquals; - -public class AccountPositionProtobufSerdeTest { - - private static Deserializer sut; - - private static AccountPosition expectedObject; - private static byte[] expectedPbInput; - - private static AccountPosition expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; - - @BeforeClass - public static void globalSetup() { - - sut = AccountPositionPbDeserializer.INSTANCE; - - expectedObject = AccountPosition.builder() - .firmId("1") - .currCode("2") - .tag("3") - .description("4") - .openBal("5") - .currentPos("6") - .plannedPos("7") - .limit1("8") - .limit2("9") - .orderBuy("10") - .orderSell("11") - .netto("12") - .plannedBal("13") - .debit("14") - .credit("15") - .bankAccId("16") - .marginCall("17") - .settleBal("18") - .build(); - expectedPbInput = convertToPbByteArray(expectedObject); - - expectedObjectWithNullNonRequiredStringFileds = AccountPosition.builder().build(); - expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); - } - - @Test - public void testDeserialize() { - - final AccountPosition actualObject = sut.deserialize(expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final AccountPosition actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); - - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); - } - - private static byte[] convertToPbByteArray(@NotNull final AccountPosition accountPosition) { - - return QluaStructures.AccountPosition.newBuilder() - .setFirmid( convertToPbString(accountPosition.getFirmId()) ) - .setCurrcode( convertToPbString(accountPosition.getCurrCode()) ) - .setTag( convertToPbString(accountPosition.getTag()) ) - .setDescription( convertToPbString(accountPosition.getDescription()) ) - .setOpenbal( convertToPbString(accountPosition.getOpenBal()) ) - .setCurrentpos( convertToPbString(accountPosition.getCurrentPos()) ) - .setPlannedpos( convertToPbString(accountPosition.getPlannedPos()) ) - .setLimit1( convertToPbString(accountPosition.getLimit1()) ) - .setLimit2( convertToPbString(accountPosition.getLimit2()) ) - .setOrderbuy( convertToPbString(accountPosition.getOrderBuy()) ) - .setOrdersell( convertToPbString(accountPosition.getOrderSell()) ) - .setNetto( convertToPbString(accountPosition.getNetto()) ) - .setPlannedbal( convertToPbString(accountPosition.getPlannedBal()) ) - .setDebit( convertToPbString(accountPosition.getDebit()) ) - .setCredit( convertToPbString(accountPosition.getCredit()) ) - .setBankAccId( convertToPbString(accountPosition.getBankAccId()) ) - .setMargincall( convertToPbString(accountPosition.getMarginCall()) ) - .setSettlebal( convertToPbString(accountPosition.getSettleBal()) ) - .build() - .toByteArray(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java new file mode 100644 index 0000000..93a6950 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -0,0 +1,90 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class AllTradePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static AllTrade expectedObject; + private static byte[] expectedPbInput; + + private static AllTrade expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = AllTradePbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = AllTrade.builder() + .tradeNum(1L) + .flags(2) + .price("3") + .qty(4) + .value("5") + .accruedInt("6") + .yield("7") + .settleCode("8") + .repoRate("9") + .repoValue("10") + .repo2Value("11") + .repoTerm("12") + .secCode("13") + .classCode("14") + .datetime(dateTimeEntry) + .period(16) + .openInterest("17") + .exchangeCode("18") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = AllTrade.builder() + .tradeNum(1L) + .flags(2) + .price("3") + .period(4) + .datetime(dateTimeEntry) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java new file mode 100644 index 0000000..a4ec169 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class DateTimeEntryPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static DateTimeEntry expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = DateTimeEntryPbSerde.INSTANCE; + + expectedObject = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + } + + @Test + public void testDeserialize() { + + final DateTimeEntry actualObject = sut.deserialize(DateTimeEntry.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java similarity index 51% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index ea37843..6f6230a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmProtobufSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -1,18 +1,18 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import org.jetbrains.annotations.NotNull; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; import qlua.structs.QluaStructures; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; import static org.junit.Assert.assertEquals; -public class FirmProtobufSerdeTest { +public class FirmPbSerdeTest { - private static Deserializer sut; + private static SerdeModule sut; + private static PbConverter pbConverter; private static Firm expectedObject; private static byte[] expectedPbInput; @@ -23,7 +23,8 @@ public class FirmProtobufSerdeTest { @BeforeClass public static void globalSetup() { - sut = FirmPbDeserializer.INSTANCE; + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = FirmPbSerde.INSTANCE; expectedObject = Firm.builder() .firmId("1") @@ -31,19 +32,20 @@ public static void globalSetup() { .status(3) .exchange("4") .build(); - expectedPbInput = convertToPbByteArray(expectedObject); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); expectedObjectWithNullNonRequiredStringFileds = Firm.builder() .firmId("1") .status(2) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } @Test public void testDeserialize() { - final Firm actualObject = sut.deserialize(expectedPbInput); + final Firm actualObject = sut.deserialize(Firm.class, expectedPbInput); assertEquals(actualObject, expectedObject); } @@ -51,19 +53,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final Firm actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); + final Firm actualObject = sut.deserialize(Firm.class, expectedPbInputWithEmptyNonRequiredStringFields); assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); } - - private static byte[] convertToPbByteArray(@NotNull final Firm firm) { - - return QluaStructures.Firm.newBuilder() - .setFirmid( firm.getFirmId() ) - .setFirmName( convertToPbString(firm.getFirmName()) ) - .setStatus( firm.getStatus() ) - .setExchange( convertToPbString(firm.getExchange()) ) - .build() - .toByteArray(); - } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java new file mode 100644 index 0000000..9e1eb44 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class MoneyLimitPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static MoneyLimit expectedObject; + private static byte[] expectedPbInput; + + private static MoneyLimit expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = MoneyLimitPbSerde.INSTANCE; + + expectedObject = MoneyLimit.builder() + .currCode("1") + .tag("2") + .firmId("3") + .clientCode("4") + .openBal("5") + .openLimit("6") + .currentBal("7") + .currentLimit("8") + .locked("9") + .lockedValueCoef("10") + .lockedMarginValue("11") + .leverage("12") + .limitKind(13) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = MoneyLimit.builder() + .limitKind(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java deleted file mode 100644 index c962d6b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitProtobufSerdeTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import org.jetbrains.annotations.NotNull; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -import static org.junit.Assert.assertEquals; - -public class MoneyLimitProtobufSerdeTest { - - private static Deserializer sut; - - private static MoneyLimit expectedObject; - private static byte[] expectedPbInput; - - private static MoneyLimit expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; - - @BeforeClass - public static void globalSetup() { - - sut = MoneyLimitPbDeserializer.INSTANCE; - - expectedObject = MoneyLimit.builder() - .currCode("1") - .tag("2") - .firmId("3") - .clientCode("4") - .openBal("5") - .openLimit("6") - .currentBal("7") - .currentLimit("8") - .locked("9") - .lockedValueCoef("10") - .lockedMarginValue("11") - .leverage("12") - .limitKind(13) - .build(); - expectedPbInput = convertToPbByteArray(expectedObject); - - expectedObjectWithNullNonRequiredStringFileds = MoneyLimit.builder() - .limitKind(1) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = convertToPbByteArray(expectedObjectWithNullNonRequiredStringFileds); - } - - @Test - public void testDeserialize() { - - final MoneyLimit actualObject = sut.deserialize(expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final MoneyLimit actualObject = sut.deserialize(expectedPbInputWithEmptyNonRequiredStringFields); - - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); - } - - private static byte[] convertToPbByteArray(@NotNull final MoneyLimit moneyLimit) { - - return QluaStructures.MoneyLimit.newBuilder() - .setCurrcode( convertToPbString(moneyLimit.getCurrCode()) ) - .setTag( convertToPbString(moneyLimit.getTag()) ) - .setFirmid( convertToPbString(moneyLimit.getFirmId()) ) - .setClientCode( convertToPbString(moneyLimit.getClientCode()) ) - .setOpenbal( convertToPbString(moneyLimit.getOpenBal()) ) - .setOpenlimit( convertToPbString(moneyLimit.getOpenLimit()) ) - .setCurrentbal( convertToPbString(moneyLimit.getCurrentBal()) ) - .setCurrentlimit( convertToPbString(moneyLimit.getCurrentLimit()) ) - .setLocked( convertToPbString(moneyLimit.getLocked()) ) - .setLockedValueCoef( convertToPbString(moneyLimit.getLockedValueCoef()) ) - .setLockedMarginValue( convertToPbString(moneyLimit.getLockedMarginValue()) ) - .setLeverage( convertToPbString(moneyLimit.getLeverage()) ) - .setLimitKind( moneyLimit.getLimitKind() ) - .build() - .toByteArray(); - } -} From bca5f4817b978133a6717263e98d6bb4bda968d6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 21:43:01 +0300 Subject: [PATCH 163/549] Changed the system-under-test in some *JsonSerdeTest's from ObjectMapper to JsonSerdeModule and configured json serialization for the corresponding objects. --- .../rpc/api/structures/AccountBalance.java | 30 ++++---- .../rpc/api/structures/AccountPosition.java | 36 ++++----- .../quik/lua/rpc/api/structures/AllTrade.java | 36 ++++----- .../lua/rpc/api/structures/DateTimeEntry.java | 18 ++--- .../quik/lua/rpc/api/structures/Firm.java | 8 +- .../lua/rpc/api/structures/FuturesLimit.java | 2 +- .../quik/lua/rpc/api/structures/Money.java | 14 ++-- .../quik/lua/rpc/serde/SerdeUtils.java | 4 + .../AccountBalanceJsonSerdeTest.java | 24 +++++- .../AccountPositionJsonSerdeTest.java | 24 +++++- .../api/structures/AllTradeJsonSerdeTest.java | 75 +++++++++++++------ .../DateTimeEntryJsonSerdeTest.java | 24 +++++- .../rpc/api/structures/FirmJsonSerdeTest.java | 34 ++++++--- .../FuturesClientHoldingJsonSerdeTest.java | 22 ++++-- .../structures/FuturesLimitJsonSerdeTest.java | 22 ++++-- .../api/structures/MoneyJsonSerdeTest.java | 34 ++++++--- .../PortfolioInfoJsonSerdeTest.java | 32 +++++--- 17 files changed, 289 insertions(+), 150 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java index 5b103f5..645086a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java @@ -14,21 +14,21 @@ @Value public class AccountBalance { - String firmId; - String secCode; - String trdAccId; - String depAccId; - String openBal; - String currentPos; - String plannedPosSell; - String plannedPosBuy; - String planBal; - String usqtyb; - String usqtys; - String planned; - String settleBal; - String bankAccId; - int firmUse; + @JsonProperty("firmid") String firmId; + @JsonProperty("sec_code") String secCode; + @JsonProperty("trdaccid") String trdAccId; + @JsonProperty("depaccid") String depAccId; + @JsonProperty("openbal") String openBal; + @JsonProperty("currentpos") String currentPos; + @JsonProperty("plannedpossell") String plannedPosSell; + @JsonProperty("plannedposbuy") String plannedPosBuy; + @JsonProperty("planbal") String planBal; + @JsonProperty("usqtyb") String usqtyb; + @JsonProperty("usqtys") String usqtys; + @JsonProperty("planned") String planned; + @JsonProperty("settlebal") String settleBal; + @JsonProperty("bank_acc_id") String bankAccId; + @JsonProperty(value = "firmuse") int firmUse; private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; private transient @NonFinal @Getter(AccessLevel.NONE) String asString; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java index 72d88d6..4ce529a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java @@ -14,24 +14,24 @@ @Value public class AccountPosition { - String firmId; - String currCode; - String tag; - String description; - String openBal; - String currentPos; - String plannedPos; - String limit1; - String limit2; - String orderBuy; - String orderSell; - String netto; - String plannedBal; - String debit; - String credit; - String bankAccId; - String marginCall; - String settleBal; + @JsonProperty("firmid") String firmId; + @JsonProperty("currcode") String currCode; + @JsonProperty("tag") String tag; + @JsonProperty("description") String description; + @JsonProperty("openbal") String openBal; + @JsonProperty("currentpos") String currentPos; + @JsonProperty("plannedpos") String plannedPos; + @JsonProperty("limit1") String limit1; + @JsonProperty("limit2") String limit2; + @JsonProperty("orderbuy") String orderBuy; + @JsonProperty("ordersell") String orderSell; + @JsonProperty("netto") String netto; + @JsonProperty("plannedbal") String plannedBal; + @JsonProperty("debit") String debit; + @JsonProperty("credit") String credit; + @JsonProperty("bank_acc_id") String bankAccId; + @JsonProperty("margincall") String marginCall; + @JsonProperty("settlebal") String settleBal; private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; private transient @NonFinal @Getter(AccessLevel.NONE) String asString; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 95d66e0..470dee7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -11,24 +11,24 @@ @Value public class AllTrade { - long tradeNum; - int flags; - @NonNull String price; - int qty; - String value; - String accruedInt; - String yield; - String settleCode; - String repoRate; - String repoValue; - String repo2Value; - String repoTerm; - String secCode; - String classCode; - @NonNull DateTimeEntry datetime; - int period; - String openInterest; - String exchangeCode; + @JsonProperty("trade_num") long tradeNum; + @JsonProperty("flags") int flags; + @JsonProperty("price") @NonNull String price; + @JsonProperty("qty") int qty; + @JsonProperty("value") String value; + @JsonProperty("accruedint") String accruedInt; + @JsonProperty("yield") String yield; + @JsonProperty("settlecode") String settleCode; + @JsonProperty("reporate") String repoRate; + @JsonProperty("repovalue") String repoValue; + @JsonProperty("repo2value") String repo2Value; + @JsonProperty("repoterm") String repoTerm; + @JsonProperty("sec_code") String secCode; + @JsonProperty("class_code") String classCode; + @JsonProperty("datetime") @NonNull DateTimeEntry datetime; + @JsonProperty("period") int period; + @JsonProperty("open_interest") String openInterest; + @JsonProperty("exchange_code") String exchangeCode; private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; private @NonFinal @Getter(AccessLevel.NONE) transient String asString; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index 8916afb..94590ea 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -15,15 +15,15 @@ @Value public class DateTimeEntry implements Comparable { - int mcs; - int ms; - int sec; - int min; - int hour; - int day; - int weekDay; - int month; - int year; + @JsonProperty("mcs") int mcs; + @JsonProperty("ms") int ms; + @JsonProperty("sec") int sec; + @JsonProperty("min") int min; + @JsonProperty("hour") int hour; + @JsonProperty("day") int day; + @JsonProperty("week_day") int weekDay; + @JsonProperty("month") int month; + @JsonProperty("year") int year; private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; private @NonFinal @Getter(AccessLevel.NONE) transient String asString; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index 3388bcf..591d962 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -12,10 +12,10 @@ @Value public class Firm { - String firmId; - String firmName; - int status; - String exchange; + @JsonProperty("firm_id") String firmId; + @JsonProperty("firm_name") String firmName; + @JsonProperty("status") int status; + @JsonProperty("exchange") String exchange; @Getter(AccessLevel.NONE) private @NonFinal transient int hashCode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java index 140e7b6..4d85366 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java @@ -17,7 +17,7 @@ public class FuturesLimit { @JsonProperty("firmid") String firmId; @JsonProperty("trdaccid") String trdAccId; - @JsonProperty(value = "limit_type") int limitType; + @JsonProperty("limit_type") int limitType; @JsonProperty("liquidity_coef") String liquidityCoef; @JsonProperty("cbp_prev_limit") String cbpPrevLimit; @JsonProperty("cbplimit") String cbpLimit; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java index c9c0ba5..cbb3d26 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java @@ -15,13 +15,13 @@ @Value public class Money { - String moneyOpenLimit; - String moneyLimitLockedNonMarginalValue; - String moneyLimitLocked; - String moneyOpenBalance; - String moneyCurrentLimit; - String moneyCurrentBalance; - String moneyLimitAvailable; + @JsonProperty("money_open_limit") String moneyOpenLimit; + @JsonProperty("money_limit_locked_nonmarginal_value") String moneyLimitLockedNonMarginalValue; + @JsonProperty("money_limit_locked") String moneyLimitLocked; + @JsonProperty("money_open_balance") String moneyOpenBalance; + @JsonProperty("money_current_limit") String moneyCurrentLimit; + @JsonProperty("money_current_balance") String moneyCurrentBalance; + @JsonProperty("money_limit_available") String moneyLimitAvailable; @Getter(AccessLevel.NONE) private @JsonIgnore @NonFinal transient int hashCode; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java index 7f02b1c..cac46e2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java @@ -34,4 +34,8 @@ public static SerdeModule getSerdeModule(@NotNull final ClientConfiguration.Serd } return serdeModule; } + + public static String trimAndRemoveLineBreaks(final String str) { + return str.replaceAll("[\\s\\r\\n]", ""); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java index ee3bae7..466d2c1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java @@ -1,25 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AccountBalanceJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; private static AccountBalance expectedObject; private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { + sut = JsonSerdeModule.INSTANCE; + expectedObject = AccountBalance.builder() .firmId("1") .secCode("2") @@ -39,12 +46,21 @@ public static void globalSetup() throws IOException { .build(); expectedJson = Resources.toString(Resources.getResource("json/structures/AccountBalance.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final AccountBalance actualObject = sut.readValue(expectedJson, AccountBalance.class); + final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedJsonAsBytes); assertEquals(expectedObject, actualObject); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java index 7f1239a..6f29bd2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java @@ -1,25 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AccountPositionJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; private static AccountPosition expectedObject; private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { + sut = JsonSerdeModule.INSTANCE; + expectedObject = AccountPosition.builder() .firmId("1") .currCode("2") @@ -42,12 +49,21 @@ public static void globalSetup() throws IOException { .build(); expectedJson = Resources.toString(Resources.getResource("json/structures/AccountPosition.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final AccountPosition actualObject = sut.readValue(expectedJson, AccountPosition.class); + final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedJsonAsBytes); assertEquals(expectedObject, actualObject); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java index b0356a3..1b83fa3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java @@ -1,50 +1,81 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AllTradeJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; - private static AccountBalance expectedObject; + private static AllTrade expectedObject; private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { - expectedObject = AccountBalance.builder() - .firmId("1") - .secCode("2") - .trdAccId("3") - .depAccId("4") - .openBal("5") - .currentPos("6") - .plannedPosSell("7") - .plannedPosBuy("8") - .planBal("9") - .usqtyb("10") - .usqtys("11") - .planned("12") - .settleBal("13") - .bankAccId("14") - .firmUse(15) + sut = JsonSerdeModule.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = AllTrade.builder() + .tradeNum(123456789012345L) + .flags(2) + .price("3") + .qty(4) + .value("5") + .accruedInt("6") + .yield("7") + .settleCode("8") + .repoRate("9") + .repoValue("10") + .repo2Value("11") + .repoTerm("12") + .secCode("13") + .classCode("14") + .datetime(dateTimeEntry) + .period(16) + .openInterest("17") + .exchangeCode("18") .build(); - expectedJson = Resources.toString(Resources.getResource("json/structures/AccountBalance.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/structures/AllTrade.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final AccountBalance actualObject = sut.readValue(expectedJson, AccountBalance.class); + final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedJsonAsBytes); assertEquals(expectedObject, actualObject); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java index f14df6a..23485af 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java @@ -1,25 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class DateTimeEntryJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; private static DateTimeEntry expectedObject; private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { + sut = JsonSerdeModule.INSTANCE; + expectedObject = DateTimeEntry.builder() .mcs(1) .ms(2) @@ -33,12 +40,21 @@ public static void globalSetup() throws IOException { .build(); expectedJson = Resources.toString(Resources.getResource("json/structures/DateTimeEntry.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final DateTimeEntry actualObject = sut.readValue(expectedJson, DateTimeEntry.class); + final DateTimeEntry actualObject = sut.deserialize(DateTimeEntry.class, expectedJsonAsBytes); assertEquals(expectedObject, actualObject); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java index 4a320e8..db56c1f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java @@ -1,40 +1,56 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FirmJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; - private static Firm firm; - private static String firmAsJson; + private static Firm expectedObject; + private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { - firm = Firm.builder() + sut = JsonSerdeModule.INSTANCE; + + expectedObject = Firm.builder() .firmId("1") .firmName("2") .status(3) .exchange("4") .build(); - firmAsJson = Resources.toString(Resources.getResource("json/structures/Firm.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/structures/Firm.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final Firm actual = sut.readValue(firmAsJson, Firm.class); + final Firm actual = sut.deserialize(Firm.class, expectedJsonAsBytes); - assertEquals(firm, actual); + assertEquals(expectedObject, actual); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java index 653c702..de4d0f5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java @@ -1,25 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FuturesClientHoldingJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; private static FuturesClientHolding futuresClientHolding; private static String futuresClientHoldingAsJson; + private static byte[] futuresClientHoldingAsJsonBytes; @BeforeClass public static void globalSetup() throws IOException { + sut = JsonSerdeModule.INSTANCE; + futuresClientHolding = FuturesClientHolding.builder() .firmId("1") .trdAccId("2") @@ -44,20 +51,21 @@ public static void globalSetup() throws IOException { futuresClientHoldingAsJson = Resources.toString(Resources.getResource("json/structures/FuturesClientHolding.json"), Charsets.UTF_8); + futuresClientHoldingAsJsonBytes = trimAndRemoveLineBreaks(futuresClientHoldingAsJson).getBytes(Charsets.UTF_8); } @Test - public void testSerialize() throws IOException { + public void testSerialize() { - final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(futuresClientHolding); + final byte[] actual = sut.serialize(futuresClientHolding); - assertEquals(futuresClientHoldingAsJson, actual); + assertTrue( Arrays.equals(futuresClientHoldingAsJsonBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final FuturesClientHolding actual = sut.readValue(futuresClientHoldingAsJson, FuturesClientHolding.class); + final FuturesClientHolding actual = sut.deserialize(FuturesClientHolding.class, futuresClientHoldingAsJsonBytes); assertEquals(futuresClientHolding, actual); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java index 8bfc661..3e653b2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java @@ -1,25 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FuturesLimitJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; private static FuturesLimit expectedObj; private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { + sut = JsonSerdeModule.INSTANCE; + expectedObj = FuturesLimit.builder() .firmId("1") .trdAccId("2") @@ -41,20 +48,21 @@ public static void globalSetup() throws IOException { .build(); expectedJson = Resources.toString(Resources.getResource("json/structures/FuturesLimit.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); } @Test - public void testSerialize() throws IOException { + public void testSerialize() { - final String actualJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(expectedObj); + final byte[] actual = sut.serialize(expectedObj); - assertEquals(expectedJson, actualJson); + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final FuturesLimit actualObj = sut.readValue(expectedJson, FuturesLimit.class); + final FuturesLimit actualObj = sut.deserialize(FuturesLimit.class, expectedJsonAsBytes); assertEquals(expectedObj, actualObj); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java index b15f597..aa22111 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java @@ -1,26 +1,33 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class MoneyJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; - private static Money money; - private static String moneyAsJson; + private static Money expectedObj; + private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { - money = Money.builder() + sut = JsonSerdeModule.INSTANCE; + + expectedObj = Money.builder() .moneyOpenLimit("1") .moneyLimitLockedNonMarginalValue("2") .moneyLimitLocked("3") @@ -30,14 +37,23 @@ public static void globalSetup() throws IOException { .moneyLimitAvailable("7") .build(); - moneyAsJson = Resources.toString(Resources.getResource("json/structures/Money.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/structures/Money.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObj); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final Money actual = sut.readValue(moneyAsJson, Money.class); + final Money actual = sut.deserialize(Money.class, expectedJsonAsBytes); - assertEquals(money, actual); + assertEquals(expectedObj, actual); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java index 1c3d12c..22e0588 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java @@ -1,26 +1,33 @@ package com.enfernuz.quik.lua.rpc.api.structures; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; import com.google.common.base.Charsets; import com.google.common.io.Resources; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class PortfolioInfoJsonSerdeTest { - private final ObjectMapper sut = new ObjectMapper(); + private static SerdeModule sut; - private static PortfolioInfo portfolioInfo; - private static String portfolioInfoAsJson; + private static PortfolioInfo expectedObject; + private static String expectedJson; + private static byte[] expectedJsonAsBytes; @BeforeClass public static void globalSetup() throws IOException { - portfolioInfo = PortfolioInfo.builder() + sut = JsonSerdeModule.INSTANCE; + + expectedObject = PortfolioInfo.builder() .isLeverage("1") .inAssets("2") .leverage("3") @@ -63,22 +70,23 @@ public static void globalSetup() throws IOException { .currTag("40") .build(); - portfolioInfoAsJson = Resources.toString(Resources.getResource("json/structures/PortfolioInfo.json"), Charsets.UTF_8); + expectedJson = Resources.toString(Resources.getResource("json/structures/PortfolioInfo.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); } @Test - public void testSerialize() throws IOException { + public void testSerialize() { - final String actual = sut.writerWithDefaultPrettyPrinter().writeValueAsString(portfolioInfo); + final byte[] actual = sut.serialize(expectedObject); - assertEquals(portfolioInfoAsJson, actual); + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); } @Test - public void testDeserialize() throws IOException { + public void testDeserialize() { - final PortfolioInfo actual = sut.readValue(portfolioInfoAsJson, PortfolioInfo.class); + final PortfolioInfo actual = sut.deserialize(PortfolioInfo.class, expectedJsonAsBytes); - assertEquals(portfolioInfo, actual); + assertEquals(expectedObject, actual); } } From e6dd21c40d57176f4018462591d759f55b9a68ca Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 22:46:21 +0300 Subject: [PATCH 164/549] Added a protobuf serde facility for FuturesClientHolding. --- .../protobuf/FuturesClientHoldingPbSerde.java | 75 ++++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../FuturesClientHoldingPbSerdeTest.java | 77 +++++++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java new file mode 100644 index 0000000..1b2a5de --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java @@ -0,0 +1,75 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum FuturesClientHoldingPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesClientHolding deserialize(final byte[] data) { + return convertFromPb(QluaStructures.FuturesClientHolding.parseFrom(data)); + } + + @Override + public FuturesClientHolding convertFromPb(@NotNull QluaStructures.FuturesClientHolding futuresClientHolding) { + + return FuturesClientHolding.builder() + .firmId( convertFromPbString(futuresClientHolding.getFirmid()) ) + .trdAccId( convertFromPbString(futuresClientHolding.getTrdaccid()) ) + .secCode( convertFromPbString(futuresClientHolding.getSecCode()) ) + .type( futuresClientHolding.getType() ) + .startBuy( convertFromPbString(futuresClientHolding.getStartbuy()) ) + .startSell( convertFromPbString(futuresClientHolding.getStartsell()) ) + .todayBuy( convertFromPbString(futuresClientHolding.getTodaybuy()) ) + .todaySell( convertFromPbString(futuresClientHolding.getTodaysell()) ) + .totalNet( convertFromPbString(futuresClientHolding.getTotalnet()) ) + .openBuys( futuresClientHolding.getOpenbuys() ) + .openSells( futuresClientHolding.getOpensells() ) + .cbplUsed( convertFromPbString(futuresClientHolding.getCbplused()) ) + .cbplPlanned( convertFromPbString(futuresClientHolding.getCbplplanned()) ) + .varMargin( convertFromPbString(futuresClientHolding.getVarmargin()) ) + .avrPosnPrice( convertFromPbString(futuresClientHolding.getAvrposnprice()) ) + .positionValue( convertFromPbString(futuresClientHolding.getPositionvalue()) ) + .realVarMargin( convertFromPbString(futuresClientHolding.getRealVarmargin()) ) + .totalVarMargin( convertFromPbString(futuresClientHolding.getTotalVarmargin()) ) + .sessionStatus( futuresClientHolding.getSessionStatus()) + .build(); + } + + @Override + public QluaStructures.FuturesClientHolding convertToPb(@NotNull final FuturesClientHolding futuresClientHolding) { + + return QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid( convertToPbString(futuresClientHolding.getFirmId()) ) + .setTrdaccid( convertToPbString(futuresClientHolding.getTrdAccId()) ) + .setSecCode( convertToPbString(futuresClientHolding.getSecCode()) ) + .setType( futuresClientHolding.getType() ) + .setStartbuy( convertToPbString(futuresClientHolding.getStartBuy()) ) + .setStartsell( convertToPbString(futuresClientHolding.getStartSell()) ) + .setTodaybuy( convertToPbString(futuresClientHolding.getTodayBuy()) ) + .setTodaysell( convertToPbString(futuresClientHolding.getTodaySell()) ) + .setTotalnet( convertToPbString(futuresClientHolding.getTotalNet()) ) + .setOpenbuys( futuresClientHolding.getOpenBuys() ) + .setOpensells( futuresClientHolding.getOpenSells() ) + .setCbplused( convertToPbString(futuresClientHolding.getCbplUsed()) ) + .setCbplplanned( convertToPbString(futuresClientHolding.getCbplPlanned()) ) + .setVarmargin( convertToPbString(futuresClientHolding.getVarMargin()) ) + .setAvrposnprice( convertToPbString(futuresClientHolding.getAvrPosnPrice()) ) + .setPositionvalue( convertToPbString(futuresClientHolding.getPositionValue()) ) + .setRealVarmargin( convertToPbString(futuresClientHolding.getRealVarMargin()) ) + .setTotalVarmargin( convertToPbString(futuresClientHolding.getTotalVarMargin()) ) + .setSessionStatus( futuresClientHolding.getSessionStatus() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 2ae6822..bb383ad 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -79,6 +79,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerDeserializer(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerDeserializer(result, AllTrade.class, AllTradePbSerde.INSTANCE); + registerDeserializer(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java new file mode 100644 index 0000000..8d26c39 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java @@ -0,0 +1,77 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class FuturesClientHoldingPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static FuturesClientHolding expectedObject; + private static byte[] expectedPbInput; + + private static FuturesClientHolding expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = FuturesClientHoldingPbSerde.INSTANCE; + + expectedObject = FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = FuturesClientHolding.builder() + .type(1) + .openBuys(2) + .openSells(3) + .sessionStatus(4) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final FuturesClientHolding actualObject = sut.deserialize(FuturesClientHolding.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final FuturesClientHolding actualObject = sut.deserialize(FuturesClientHolding.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 9b99381eb749bcf33abd9eb11adef7aa43660a30 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 22:59:26 +0300 Subject: [PATCH 165/549] Added a protobuf serde facility for FuturesLimit. --- .../serde/protobuf/FuturesLimitPbSerde.java | 73 +++++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/FuturesLimitPbSerdeTest.java | 72 ++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java new file mode 100644 index 0000000..12a6153 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum FuturesLimitPbSerde implements Deserializer, PbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesLimit deserialize(final byte[] data) { + return convertFromPb(QluaStructures.FuturesLimit.parseFrom(data)); + } + + @Override + public FuturesLimit convertFromPb(@NotNull QluaStructures.FuturesLimit futuresLimit) { + + return FuturesLimit.builder() + .firmId( convertFromPbString(futuresLimit.getFirmid()) ) + .trdAccId( convertFromPbString(futuresLimit.getTrdaccid()) ) + .limitType( futuresLimit.getLimitType() ) + .liquidityCoef( convertFromPbString(futuresLimit.getLiquidityCoef()) ) + .cbpPrevLimit( convertFromPbString(futuresLimit.getCbpPrevLimit()) ) + .cbpLimit( convertFromPbString(futuresLimit.getCbplimit()) ) + .cbplUsed( convertFromPbString(futuresLimit.getCbplused()) ) + .cbplPlanned( convertFromPbString(futuresLimit.getCbplplanned()) ) + .varMargin( convertFromPbString(futuresLimit.getVarmargin()) ) + .accruedInt( convertFromPbString(futuresLimit.getAccruedint()) ) + .cbplUsedForOrders( convertFromPbString(futuresLimit.getCbplusedForOrders()) ) + .cbplUsedForPositions( convertFromPbString(futuresLimit.getCbplusedForPositions()) ) + .optionsPremium( convertFromPbString(futuresLimit.getOptionsPremium()) ) + .tsComission( convertFromPbString(futuresLimit.getTsComission()) ) + .kgo( convertFromPbString(futuresLimit.getKgo()) ) + .currCode( convertFromPbString(futuresLimit.getCurrcode()) ) + .realVarMargin( convertFromPbString(futuresLimit.getRealVarmargin()) ) + .build(); + } + + @Override + public QluaStructures.FuturesLimit convertToPb(@NotNull final FuturesLimit futuresLimit) { + + return QluaStructures.FuturesLimit.newBuilder() + .setFirmid( convertToPbString(futuresLimit.getFirmId()) ) + .setTrdaccid( convertToPbString(futuresLimit.getTrdAccId()) ) + .setLimitType( futuresLimit.getLimitType() ) + .setLiquidityCoef( convertToPbString(futuresLimit.getLiquidityCoef()) ) + .setCbpPrevLimit( convertToPbString(futuresLimit.getCbpPrevLimit()) ) + .setCbplimit( convertToPbString(futuresLimit.getCbpLimit()) ) + .setCbplused( convertToPbString(futuresLimit.getCbplUsed()) ) + .setCbplplanned( convertToPbString(futuresLimit.getCbplPlanned()) ) + .setVarmargin( convertToPbString(futuresLimit.getVarMargin()) ) + .setAccruedint( convertToPbString(futuresLimit.getAccruedInt()) ) + .setCbplusedForOrders( convertToPbString(futuresLimit.getCbplUsedForOrders()) ) + .setCbplusedForPositions( convertToPbString(futuresLimit.getCbplUsedForPositions()) ) + .setOptionsPremium( convertToPbString(futuresLimit.getOptionsPremium()) ) + .setTsComission( convertToPbString(futuresLimit.getTsComission()) ) + .setKgo( convertToPbString(futuresLimit.getKgo()) ) + .setCurrcode( convertToPbString(futuresLimit.getCurrCode()) ) + .setRealVarmargin( convertToPbString(futuresLimit.getRealVarMargin()) ) + .build(); + } + + +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index bb383ad..9f9106d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -80,6 +80,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerDeserializer(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerDeserializer(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); + registerDeserializer(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java new file mode 100644 index 0000000..4eb0379 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java @@ -0,0 +1,72 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import static org.junit.Assert.assertEquals; + +public class FuturesLimitPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static FuturesLimit expectedObject; + private static byte[] expectedPbInput; + + private static FuturesLimit expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = FuturesLimitPbSerde.INSTANCE; + + expectedObject = FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = FuturesLimit.builder() + .limitType(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testDeserialize() { + + final FuturesLimit actualObject = sut.deserialize(FuturesLimit.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final FuturesLimit actualObject = sut.deserialize(FuturesLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From f55e86789ff36241eb1c7ea41a0e46d21af779e9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 23:20:30 +0300 Subject: [PATCH 166/549] Made *PbSerde classes implement the Serde interface. --- .../serde/protobuf/AccountBalancePbSerde.java | 11 +-- .../protobuf/AccountPositionPbSerde.java | 11 +-- .../rpc/serde/protobuf/AllTradePbSerde.java | 12 ++-- .../serde/protobuf/DateTimeEntryPbSerde.java | 9 ++- .../lua/rpc/serde/protobuf/FirmPbSerde.java | 11 +-- .../protobuf/FuturesClientHoldingPbSerde.java | 9 ++- .../serde/protobuf/FuturesLimitPbSerde.java | 11 +-- .../rpc/serde/protobuf/MoneyLimitPbSerde.java | 11 +-- .../serde/protobuf/ProtobufSerdeModule.java | 68 +++++++++---------- 9 files changed, 90 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java index 0eb2d17..1c70307 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum AccountBalancePbSerde implements Deserializer, PbConverter { +enum AccountBalancePbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final AccountBalance accountBalance) { + return convertToPb(accountBalance).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public AccountBalance deserialize(final byte[] data) { @@ -65,6 +70,4 @@ public QluaStructures.AccountBalance convertToPb(@NotNull final AccountBalance a .setFirmuse( accountBalance.getFirmUse() ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java index ec9b034..5d13a5b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum AccountPositionPbSerde implements Deserializer, PbConverter { +enum AccountPositionPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final AccountPosition accountPosition) { + return convertToPb(accountPosition).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public AccountPosition deserialize(final byte[] data) { @@ -71,6 +76,4 @@ public QluaStructures.AccountPosition convertToPb(@NotNull final AccountPosition .setSettlebal( convertToPbString(accountPosition.getSettleBal()) ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java index 87bab47..9fba397 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java @@ -1,9 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -12,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum AllTradePbSerde implements Deserializer, PbConverter { +enum AllTradePbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final AllTrade allTrade) { + return convertToPb(allTrade).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public AllTrade deserialize(final byte[] data) { @@ -72,6 +76,4 @@ public QluaStructures.AllTrade convertToPb(@NotNull final AllTrade allTrade) { .setExchangeCode( convertToPbString(allTrade.getExchangeCode()) ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java index 1a543d6..9ff828e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java @@ -1,17 +1,22 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -enum DateTimeEntryPbSerde implements Deserializer, PbConverter { +enum DateTimeEntryPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final DateTimeEntry dateTimeEntry) { + return convertToPb(dateTimeEntry).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public DateTimeEntry deserialize(final byte[] data) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java index 5ab6e8a..4ff80e0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum FirmPbSerde implements Deserializer, PbConverter { +enum FirmPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final Firm firm) { + return convertToPb(firm).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public Firm deserialize(final byte[] data) { @@ -43,6 +48,4 @@ public QluaStructures.Firm convertToPb(@NotNull final Firm firm) { .setExchange( convertToPbString(firm.getExchange()) ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java index 1b2a5de..ef8a255 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum FuturesClientHoldingPbSerde implements Deserializer, PbConverter { +enum FuturesClientHoldingPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final FuturesClientHolding futuresClientHolding) { + return convertToPb(futuresClientHolding).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public FuturesClientHolding deserialize(final byte[] data) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java index 12a6153..a97dc3b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum FuturesLimitPbSerde implements Deserializer, PbConverter { +enum FuturesLimitPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final FuturesLimit futuresLimit) { + return convertToPb(futuresLimit).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public FuturesLimit deserialize(final byte[] data) { @@ -68,6 +73,4 @@ public QluaStructures.FuturesLimit convertToPb(@NotNull final FuturesLimit futur .setRealVarmargin( convertToPbString(futuresLimit.getRealVarMargin()) ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java index aff6d31..fa0ca4f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; @@ -11,10 +11,15 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum MoneyLimitPbSerde implements Deserializer, PbConverter { +enum MoneyLimitPbSerde implements Serde, PbConverter { INSTANCE; + @Override + public byte[] serialize(final MoneyLimit moneyLimit) { + return convertToPb(moneyLimit).toByteArray(); + } + @SneakyThrows(InvalidProtocolBufferException.class) @Override public MoneyLimit deserialize(final byte[] data) { @@ -61,6 +66,4 @@ public QluaStructures.MoneyLimit convertToPb(@NotNull final MoneyLimit moneyLimi .setLimitKind( moneyLimit.getLimitKind() ) .build(); } - - } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 9f9106d..67d5638 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -2,7 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.Serde; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.jetbrains.annotations.NotNull; @@ -16,41 +16,41 @@ public enum ProtobufSerdeModule implements SerdeModule { INSTANCE; - private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = createClassToDeserializerMap(); + private static final Map, Serde> CLASS_TO_SERDE_MAP = createClassToSerdeMap(); @Override public byte[] serialize(final T t) { requireNonNull(t, "Аргумент не должен быть null."); - if (t instanceof QluaEvent.EventType) { - return ProtobufQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); + // This cast is safe because we used the registerSerde method to fill the map. + @SuppressWarnings("unchecked") + final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(t.getClass()); + if (serde == null) { + throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс для сериализации.") ); } else { - throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс аргумента.") ); + try { + return serde.serialize(t); + } catch (final Exception ex) { + throw new SerdeException( + String.format("Ошибка при сериализации экземпляра класса '%s' в protobuf-представление.", t.getClass().getName()), + ex + ); + } } } @Override public T deserialize(final Class clazz, final byte[] data) { - // This cast is safe because we used the addDeserializer method to fill the map. + // This cast is safe because we used the registerSerde method to fill the map. @SuppressWarnings("unchecked") - final Deserializer deserializer = (Deserializer) CLASS_TO_DESERIALIZER_MAP.get(clazz); - - if (deserializer == null) { + final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(clazz); + if (serde == null) { throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс для десериализации.") ); } else { try { - if (QluaEvent.EventType.class == clazz) { - - // This cast is safe because the ProtobufQluaEventTypeSerde returns an instance of QluaEvent.EventType - // and we obliged to return an instance of Class. - @SuppressWarnings("unchecked") - final T result = (T) ProtobufQluaEventTypeSerde.INSTANCE.deserialize(data); - return result; - } else { - return deserializer.deserialize(data); - } + return serde.deserialize(data); } catch (final Exception ex) { throw new SerdeException( String.format("Ошибка при десериализации экземпляра класса '%s' из protobuf-представления.", clazz.getName()), @@ -60,27 +60,27 @@ public T deserialize(final Class clazz, final byte[] data) { } } - private static void registerDeserializer( - @NotNull final Map, Deserializer> map, + private static void registerSerde( + @NotNull final Map, Serde> map, @NotNull final Class clazz, - @NotNull final Deserializer deserializer) { + @NotNull final Serde serde) { - map.put(clazz, deserializer); + map.put(clazz, serde); } - private static Map, Deserializer> createClassToDeserializerMap() { + private static Map, Serde> createClassToSerdeMap() { - final Map, Deserializer> result = new HashMap<>(); + final Map, Serde> result = new HashMap<>(); - registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); - registerDeserializer(result, Firm.class, FirmPbSerde.INSTANCE); - registerDeserializer(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); - registerDeserializer(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); - registerDeserializer(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); - registerDeserializer(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); - registerDeserializer(result, AllTrade.class, AllTradePbSerde.INSTANCE); - registerDeserializer(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); - registerDeserializer(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); + registerSerde(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); + registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); + registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); + registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); + registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); + registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); + registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); + registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); + registerSerde(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); return result; } From 98bc14a1a364465380b44c62471748aea3b7ad98 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 23:29:58 +0300 Subject: [PATCH 167/549] Added a protobuf serde facility for StopEventInfo. --- .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/StopEventInfoPbSerde.java | 38 ++++++++++++++ .../protobuf/StopEventInfoPbSerdeTest.java | 49 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 67d5638..af2b820 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -73,6 +73,7 @@ private static Map, Serde> createClassToSerdeMap() { final Map, Serde> result = new HashMap<>(); registerSerde(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); + registerSerde(result, StopEventInfo.class, StopEventInfoPbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java new file mode 100644 index 0000000..22b72fa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum StopEventInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final StopEventInfo stopEventInfo) { + return convertToPb(stopEventInfo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public StopEventInfo deserialize(final byte[] data) { + return convertFromPb(QluaStructures.StopEventInfo.parseFrom(data)); + } + + @Override + public StopEventInfo convertFromPb(@NotNull QluaStructures.StopEventInfo stopEventInfo) { + return new StopEventInfo( stopEventInfo.getSignal() ); + } + + @Override + public QluaStructures.StopEventInfo convertToPb(@NotNull final StopEventInfo stopEventInfo) { + + return QluaStructures.StopEventInfo.newBuilder() + .setSignal( stopEventInfo.getSignal() ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java new file mode 100644 index 0000000..960b0cb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class StopEventInfoPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static StopEventInfo expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = StopEventInfoPbSerde.INSTANCE; + + expectedObject = new StopEventInfo(1); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final StopEventInfo actualObject = sut.deserialize(StopEventInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From e9b14d4c49333db6f981070b5d215e8f8c5601f8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 23:30:42 +0300 Subject: [PATCH 168/549] Added tests for protobuf serialization. --- .../protobuf/AccountBalancePbSerdeTest.java | 19 +++++++++++++++++++ .../protobuf/AccountPositionPbSerdeTest.java | 19 +++++++++++++++++++ .../serde/protobuf/AllTradePbSerdeTest.java | 19 +++++++++++++++++++ .../protobuf/DateTimeEntryPbSerdeTest.java | 11 +++++++++++ .../rpc/serde/protobuf/FirmPbSerdeTest.java | 19 +++++++++++++++++++ .../FuturesClientHoldingPbSerdeTest.java | 19 +++++++++++++++++++ .../protobuf/FuturesLimitPbSerdeTest.java | 19 +++++++++++++++++++ .../serde/protobuf/MoneyLimitPbSerdeTest.java | 19 +++++++++++++++++++ .../protobuf/StopEventInfoPbSerdeTest.java | 1 - 9 files changed, 144 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java index 4c3a1e4..a95d1dc 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AccountBalancePbSerdeTest { @@ -52,6 +55,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java index 716b26e..79a1ca8 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AccountPositionPbSerdeTest { @@ -53,6 +56,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java index 93a6950..81cba75 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -8,7 +8,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class AllTradePbSerdeTest { @@ -72,6 +75,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java index a4ec169..932fe32 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class DateTimeEntryPbSerdeTest { @@ -37,6 +40,14 @@ public static void globalSetup() { expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index 6f6230a..515c91b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FirmPbSerdeTest { @@ -42,6 +45,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java index 8d26c39..52b9176 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FuturesClientHoldingPbSerdeTest { @@ -59,6 +62,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java index 4eb0379..772d1f6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class FuturesLimitPbSerdeTest { @@ -54,6 +57,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java index 9e1eb44..cb5e8a9 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java @@ -7,7 +7,10 @@ import org.junit.Test; import qlua.structs.QluaStructures; +import java.util.Arrays; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class MoneyLimitPbSerdeTest { @@ -50,6 +53,22 @@ public static void globalSetup() { pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); } + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + @Test public void testDeserialize() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java index 960b0cb..d6fee7b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.api.structures.Firm; import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; From 0a2c4b10048065bb2c31a341fbb1fcc8dcbd5cf9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 1 Sep 2018 23:42:17 +0300 Subject: [PATCH 169/549] Added a protobuf serde facility for ConnectedEventInfo; replaced the manual JSON deserializer for ConnectedEventInfo by the automated one, added tests for ser/deser. --- .../api/structures/ConnectedEventInfo.java | 21 +++++++- .../ConnectedEventInfoJsonDeserializer.java | 19 ------- .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../protobuf/ConnectedEventInfoPbSerde.java | 38 ++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../ConnectedEventInfoJsonSerdeTest.java | 51 +++++++++++++++++++ .../ConnectedEventInfoPbSerdeTest.java | 48 +++++++++++++++++ .../json/structures/ConnectedEventInfo.json | 3 ++ 8 files changed, 161 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java create mode 100644 src/test/resources/json/structures/ConnectedEventInfo.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java index 0c66320..04dce41 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java @@ -1,13 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.AccessLevel; +import lombok.Getter; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; @Value public class ConnectedEventInfo { - int flag; + @JsonProperty("flag") + @Getter(AccessLevel.NONE) + boolean flag; + @JsonCreator + public ConnectedEventInfo(@JsonProperty(value = "flag", required = true) final boolean flag) { + this.flag = flag; + } + + @Contract(pure = true) + public boolean getFlag() { + return flag; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java deleted file mode 100644 index 8b228b0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ConnectedEventInfoJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class ConnectedEventInfoJsonDeserializer extends JsonDeserializer { - - @Override - public ConnectedEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new ConnectedEventInfo( node.get("flag").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index a9ef068..412010d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -13,7 +13,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(ResponseEnvelope.class, new ResponseEnvelopeJsonDeserializer()); super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); - super.addDeserializer(ConnectedEventInfo.class, new ConnectedEventInfoJsonDeserializer()); super.addDeserializer(Trade.class, new TradeJsonDeserializer()); super.addDeserializer(Order.class, new OrderJsonDeserializer()); super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java new file mode 100644 index 0000000..b52e82b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum ConnectedEventInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ConnectedEventInfo connectedEventInfo) { + return convertToPb(connectedEventInfo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ConnectedEventInfo deserialize(final byte[] data) { + return convertFromPb(QluaStructures.ConnectedEventInfo.parseFrom(data)); + } + + @Override + public ConnectedEventInfo convertFromPb(@NotNull QluaStructures.ConnectedEventInfo connectedEventInfo) { + return new ConnectedEventInfo( connectedEventInfo.getFlag() ); + } + + @Override + public QluaStructures.ConnectedEventInfo convertToPb(@NotNull final ConnectedEventInfo connectedEventInfo) { + + return QluaStructures.ConnectedEventInfo.newBuilder() + .setFlag( connectedEventInfo.getFlag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index af2b820..50de978 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -74,6 +74,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerSerde(result, StopEventInfo.class, StopEventInfoPbSerde.INSTANCE); + registerSerde(result, ConnectedEventInfo.class, ConnectedEventInfoPbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java new file mode 100644 index 0000000..84c6966 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; +import java.util.Arrays; + +import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ConnectedEventInfoJsonSerdeTest { + + private static SerdeModule sut; + + private static ConnectedEventInfo expectedObject; + private static String expectedJson; + private static byte[] expectedJsonAsBytes; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = JsonSerdeModule.INSTANCE; + + expectedObject = new ConnectedEventInfo(true); + + expectedJson = Resources.toString(Resources.getResource("json/structures/ConnectedEventInfo.json"), Charsets.UTF_8); + expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); + } + + @Test + public void testDeserialize() { + + final ConnectedEventInfo actual = sut.deserialize(ConnectedEventInfo.class, expectedJsonAsBytes); + + assertEquals(expectedObject, actual); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java new file mode 100644 index 0000000..aad4161 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ConnectedEventInfoPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static ConnectedEventInfo expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = ConnectedEventInfoPbSerde.INSTANCE; + + expectedObject = new ConnectedEventInfo(true); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final ConnectedEventInfo actualObject = sut.deserialize(ConnectedEventInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/resources/json/structures/ConnectedEventInfo.json b/src/test/resources/json/structures/ConnectedEventInfo.json new file mode 100644 index 0000000..300a274 --- /dev/null +++ b/src/test/resources/json/structures/ConnectedEventInfo.json @@ -0,0 +1,3 @@ +{ + "flag" : true +} \ No newline at end of file From 14cc2c6de3b44a91da8ff2a19302c2098930003d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 00:30:46 +0300 Subject: [PATCH 170/549] Added a protobuf serde facility for Trade. --- .../java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java | 4 ++-- .../quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java index d9180db..e9c0014 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java @@ -65,7 +65,7 @@ public class Trade { private transient @NonFinal @Getter(AccessLevel.NONE) String asString; @Builder - public Trade( + private Trade( final long tradeNum, final long orderNum, final String brokerRef, @@ -96,7 +96,7 @@ public Trade( final String exchangeComission, final String techCenterComission, final String settleDate, - final String settleCurrency, + final String settleCurrency, final String tradeCurrency, final String exchangeCode, final String stationId, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 50de978..f8f539b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -75,6 +75,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerSerde(result, StopEventInfo.class, StopEventInfoPbSerde.INSTANCE); registerSerde(result, ConnectedEventInfo.class, ConnectedEventInfoPbSerde.INSTANCE); + registerSerde(result, Trade.class, TradePbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); From b6d46a7f5453dac2f140583d3af399fda5069b91 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 00:34:13 +0300 Subject: [PATCH 171/549] Added a protobuf serde facility for Trade (failed to add some files in the previous commit); added some JetBrains annotations in ProtobufSerdeUtils. --- .../serde/protobuf/ProtobufSerdeUtils.java | 6 + .../lua/rpc/serde/protobuf/TradePbSerde.java | 146 ++++++++++++++++++ .../rpc/serde/protobuf/TradePbSerdeTest.java | 140 +++++++++++++++++ 3 files changed, 292 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index afb5219..3f4548b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.google.common.base.Strings; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.Nullable; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -10,14 +12,18 @@ final class ProtobufSerdeUtils { static final Charset DEFAULT_PROTOBUF_CHARSET = StandardCharsets.UTF_8; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); } + @Nullable + @Contract(pure = true) static String convertFromPbString(final String protobufString) { return Strings.isNullOrEmpty(protobufString) ? null : protobufString; } + @Contract("_ -> !null") static String convertToPbString(final String string) { return Optional.ofNullable(string).orElse(""); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java new file mode 100644 index 0000000..539bc41 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java @@ -0,0 +1,146 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Trade; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import java.util.Objects; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum TradePbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = + DateTimeEntryPbSerde.INSTANCE; + + @Override + public byte[] serialize(final Trade trade) { + return convertToPb(trade).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Trade deserialize(final byte[] data) { + return convertFromPb(QluaStructures.Trade.parseFrom(data)); + } + + @Override + public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { + + final QluaStructures.DateTimeEntry dateTime = trade.getDatetime(); + final QluaStructures.DateTimeEntry canceledDateTime = trade.getCanceledDatetime(); + return Trade.builder() + .tradeNum( trade.getTradeNum() ) + .orderNum( trade.getOrderNum() ) + .brokerRef( convertFromPbString(trade.getBrokerref()) ) + .userId( convertFromPbString(trade.getUserid()) ) + .firmId( convertFromPbString(trade.getFirmid()) ) + .canceledUid( convertFromPbString(trade.getCanceledUid()) ) + .account( convertFromPbString(trade.getAccount()) ) + .price( convertFromPbString(trade.getPrice()) ) + .qty( trade.getQty() ) + .value( convertFromPbString(trade.getValue()) ) + .accruedInt( convertFromPbString(trade.getAccruedint()) ) + .yield( convertFromPbString(trade.getYield()) ) + .settleCode( convertFromPbString(trade.getSettlecode()) ) + .cpFirmId( convertFromPbString(trade.getCpfirmid()) ) + .flags( trade.getFlags() ) + .price2( convertFromPbString(trade.getPrice2()) ) + .repoRate( convertFromPbString(trade.getReporate()) ) + .clientCode( convertFromPbString(trade.getClientCode()) ) + .accrued2( convertFromPbString(trade.getAccrued2()) ) + .repoTerm( convertFromPbString(trade.getRepoterm()) ) + .repoValue( convertFromPbString(trade.getRepovalue()) ) + .repo2Value( convertFromPbString(trade.getRepo2Value()) ) + .startDiscount( convertFromPbString(trade.getStartDiscount()) ) + .lowerDiscount( convertFromPbString(trade.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(trade.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(trade.getBlockSecurities()) ) + .clearingComission( convertFromPbString(trade.getClearingComission()) ) + .exchangeComission( convertFromPbString(trade.getExchangeComission()) ) + .techCenterComission( convertFromPbString(trade.getTechCenterComission()) ) + .settleDate( convertFromPbString(trade.getSettleDate()) ) + .settleCurrency( convertFromPbString(trade.getSettleCurrency()) ) + .tradeCurrency( convertFromPbString(trade.getTradeCurrency()) ) + .exchangeCode( convertFromPbString(trade.getExchangeCode()) ) + .stationId( convertFromPbString(trade.getStationId()) ) + .secCode( convertFromPbString(trade.getSecCode()) ) + .classCode( convertFromPbString(trade.getClassCode()) ) + .datetime(Objects.equals(dateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTime) ) + .bankAccId( convertFromPbString(trade.getBankAccId()) ) + .brokerComission( convertFromPbString(trade.getBrokerComission()) ) + .linkedTrade( convertFromPbString(trade.getLinkedTrade()) ) + .period( trade.getPeriod() ) + .transId( convertFromPbString(trade.getTransId()) ) + .kind( trade.getKind() ) + .clearingBankAccId( convertFromPbString(trade.getClearingBankAccid()) ) + .canceledDatetime( Objects.equals(canceledDateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(canceledDateTime) ) + .clearingFirmId( convertFromPbString(trade.getClearingFirmid()) ) + .systemRef( convertFromPbString(trade.getSystemRef()) ) + .uid( convertFromPbString(trade.getUid()) ) + .build(); + } + + @Override + public QluaStructures.Trade convertToPb(@NotNull final Trade trade) { + + return QluaStructures.Trade.newBuilder() + .setTradeNum( trade.getTradeNum() ) + .setOrderNum( trade.getOrderNum() ) + .setBrokerref( convertToPbString(trade.getBrokerRef()) ) + .setUserid( convertToPbString(trade.getUserId()) ) + .setFirmid( convertToPbString(trade.getFirmId()) ) + .setCanceledUid( convertToPbString(trade.getCanceledUid()) ) + .setAccount( convertToPbString(trade.getAccount()) ) + .setPrice( convertToPbString(trade.getPrice()) ) + .setQty( trade.getQty() ) + .setValue( convertToPbString(trade.getValue()) ) + .setAccruedint( convertToPbString(trade.getAccruedInt()) ) + .setYield( convertToPbString(trade.getYield()) ) + .setSettlecode( convertToPbString(trade.getSettleCode()) ) + .setCpfirmid( convertToPbString(trade.getCpFirmId()) ) + .setFlags( trade.getFlags() ) + .setPrice2( convertToPbString(trade.getPrice2()) ) + .setReporate( convertToPbString(trade.getRepoRate()) ) + .setClientCode( convertToPbString(trade.getClientCode()) ) + .setAccrued2( convertToPbString(trade.getAccrued2()) ) + .setRepoterm( convertToPbString(trade.getRepoTerm()) ) + .setRepovalue( convertToPbString(trade.getRepoValue()) ) + .setRepo2Value( convertToPbString(trade.getRepo2Value()) ) + .setStartDiscount( convertToPbString(trade.getStartDiscount()) ) + .setLowerDiscount( convertToPbString(trade.getLowerDiscount()) ) + .setUpperDiscount( convertToPbString(trade.getUpperDiscount()) ) + .setBlockSecurities( convertToPbString(trade.getBlockSecurities()) ) + .setClearingComission( convertToPbString(trade.getClearingComission()) ) + .setExchangeComission( convertToPbString(trade.getExchangeComission()) ) + .setTechCenterComission( convertToPbString(trade.getTechCenterComission()) ) + .setSettleDate( convertToPbString(trade.getSettleDate()) ) + .setSettleCurrency( convertToPbString(trade.getSettleCurrency()) ) + .setTradeCurrency( convertToPbString(trade.getTradeCurrency()) ) + .setExchangeCode( convertToPbString(trade.getExchangeCode()) ) + .setStationId( convertToPbString(trade.getStationId()) ) + .setSecCode( convertToPbString(trade.getSecCode()) ) + .setClassCode( convertToPbString(trade.getClassCode()) ) + .setDatetime( trade.getDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(trade.getDatetime())) + .setBankAccId( convertToPbString(trade.getBankAccId()) ) + .setBrokerComission( convertToPbString(trade.getBrokerComission()) ) + .setLinkedTrade( convertToPbString(trade.getLinkedTrade()) ) + .setPeriod( trade.getPeriod() ) + .setTransId( convertToPbString(trade.getTransId()) ) + .setKind( trade.getKind() ) + .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ) + .setCanceledDatetime( trade.getCanceledDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(trade.getCanceledDatetime()) ) + .setClearingFirmid( convertToPbString(trade.getClearingFirmId()) ) + .setSystemRef( convertToPbString(trade.getSystemRef()) ) + .setUid( convertToPbString(trade.getUid()) ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java new file mode 100644 index 0000000..9ea3957 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java @@ -0,0 +1,140 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Trade; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class TradePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static Trade expectedObject; + private static byte[] expectedPbInput; + + private static Trade expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = TradePbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = Trade.builder() + .tradeNum(1L) + .orderNum(2L) + .brokerRef("3") + .userId("4") + .firmId("5") + .canceledUid("6") + .account("7") + .price("8") + .qty(9) + .value("10") + .accruedInt("11") + .yield("12") + .settleCode("13") + .cpFirmId("14") + .flags(15) + .price2("16") + .repoRate("17") + .clientCode("18") + .accrued2("19") + .repoTerm("20") + .repoValue("21") + .repo2Value("22") + .startDiscount("23") + .lowerDiscount("24") + .upperDiscount("25") + .blockSecurities("26") + .clearingComission("27") + .exchangeComission("28") + .techCenterComission("29") + .settleDate("30") + .settleCurrency("31") + .tradeCurrency("32") + .exchangeCode("33") + .stationId("34") + .secCode("35") + .classCode("36") + .datetime(dateTimeEntry) + .bankAccId("38") + .brokerComission("39") + .linkedTrade("40") + .period(41) + .transId("42") + .kind(43) + .clearingBankAccId("44") + .canceledDatetime(dateTimeEntry) + .clearingFirmId("46") + .systemRef("47") + .uid("48") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = Trade.builder() + .tradeNum(1L) + .orderNum(2L) + .qty(3) + .flags(4) + .period(5) + .kind(6) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final Trade actualObject = sut.deserialize(Trade.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final Trade actualObject = sut.deserialize(Trade.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 1913fb4be59357f8ea0378f230248ac367dbaa70 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 13:15:18 +0300 Subject: [PATCH 172/549] Added a protobuf serde facility for Order. --- .../lua/rpc/serde/protobuf/OrderPbSerde.java | 134 +++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../rpc/serde/protobuf/OrderPbSerdeTest.java | 139 ++++++++++++++++++ 3 files changed, 274 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java new file mode 100644 index 0000000..5e25a2e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java @@ -0,0 +1,134 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import java.util.Objects; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum OrderPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = + DateTimeEntryPbSerde.INSTANCE; + + @Override + public byte[] serialize(final Order firm) { + return convertToPb(firm).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Order deserialize(final byte[] data) { + return convertFromPb(QluaStructures.Order.parseFrom(data)); + } + + @Override + public Order convertFromPb(@NotNull QluaStructures.Order order) { + + final QluaStructures.DateTimeEntry dateTime = order.getDatetime(); + final QluaStructures.DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); + return Order.builder() + .orderNum( order.getOrderNum() ) + .flags( order.getFlags() ) + .brokerRef( convertFromPbString(order.getBrokerref()) ) + .userId( convertFromPbString(order.getUserid()) ) + .firmId( convertFromPbString(order.getFirmid()) ) + .account( convertFromPbString(order.getAccount()) ) + .price( convertFromPbString(order.getPrice()) ) + .qty( order.getQty() ) + .balance( convertFromPbString(order.getBalance()) ) + .value( convertFromPbString(order.getValue()) ) + .accruedInt( convertFromPbString(order.getAccruedint()) ) + .yield( convertFromPbString(order.getYield()) ) + .transId( convertFromPbString(order.getTransId()) ) + .clientCode( convertFromPbString(order.getClientCode()) ) + .price2( convertFromPbString(order.getPrice2()) ) + .settleCode( convertFromPbString(order.getSettlecode()) ) + .uid( convertFromPbString(order.getUid()) ) + .canceledUid( convertFromPbString(order.getCanceledUid()) ) + .exchangeCode( convertFromPbString(order.getExchangeCode()) ) + .activationTime( convertFromPbString(order.getActivationTime()) ) + .linkedOrder( convertFromPbString(order.getLinkedorder()) ) + .expiry( convertFromPbString(order.getExpiry()) ) + .secCode( convertFromPbString(order.getSecCode()) ) + .classCode( convertFromPbString(order.getClassCode()) ) + .datetime( Objects.equals(dateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTime) ) + .withdrawDatetime( Objects.equals(withdrawDateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(withdrawDateTime) ) + .bankAccId( convertFromPbString(order.getBankAccId()) ) + .valueEntryType( order.getValueEntryType() ) + .repoTerm( convertFromPbString(order.getRepoterm()) ) + .repoValue( convertFromPbString(order.getRepovalue()) ) + .repo2Value( convertFromPbString(order.getRepo2Value()) ) + .repoValueBalance( convertFromPbString(order.getRepoValueBalance()) ) + .startDiscount( convertFromPbString(order.getStartDiscount()) ) + .rejectReason( convertFromPbString(order.getRejectReason()) ) + .extOrderFlags( convertFromPbString(order.getExtOrderFlags()) ) + .minQty( order.getMinQty() ) + .execType( order.getExecType() ) + .sideQualifier( order.getSideQualifier() ) + .acntType( order.getAcntType() ) + .capacity( order.getCapacity() ) + .passiveOnlyOrder( order.getPassiveOnlyOrder() ) + .visible( order.getVisible() ) + .build(); + } + + @Override + public QluaStructures.Order convertToPb(@NotNull final Order order) { + + return QluaStructures.Order.newBuilder() + .setOrderNum( order.getOrderNum() ) + .setFlags( order.getFlags() ) + .setBrokerref( convertToPbString(order.getBrokerRef()) ) + .setUserid( convertToPbString(order.getUserId()) ) + .setFirmid( convertToPbString(order.getFirmId()) ) + .setAccount( convertToPbString(order.getAccount()) ) + .setPrice( convertToPbString(order.getPrice()) ) + .setQty( order.getQty() ) + .setBalance( convertToPbString(order.getBalance()) ) + .setValue( convertToPbString(order.getValue()) ) + .setAccruedint( convertToPbString(order.getAccruedInt()) ) + .setYield( convertToPbString(order.getYield()) ) + .setTransId( convertToPbString(order.getTransId()) ) + .setClientCode( convertToPbString(order.getClientCode()) ) + .setPrice2( convertToPbString(order.getPrice2()) ) + .setSettlecode( convertToPbString(order.getSettleCode()) ) + .setUid( convertToPbString(order.getUid()) ) + .setCanceledUid( convertToPbString(order.getCanceledUid()) ) + .setExchangeCode( convertToPbString(order.getExchangeCode()) ) + .setActivationTime( convertToPbString(order.getActivationTime()) ) + .setLinkedorder( convertToPbString(order.getLinkedOrder()) ) + .setExpiry( convertToPbString(order.getExpiry()) ) + .setSecCode( convertToPbString(order.getSecCode()) ) + .setClassCode( convertToPbString(order.getClassCode()) ) + .setDatetime( order.getDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(order.getDatetime()) ) + .setWithdrawDatetime( order.getWithdrawDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(order.getWithdrawDatetime()) ) + .setBankAccId( convertToPbString(order.getBankAccId()) ) + .setValueEntryType( order.getValueEntryType() ) + .setRepoterm( convertToPbString(order.getRepoTerm()) ) + .setRepovalue( convertToPbString(order.getRepoValue()) ) + .setRepo2Value( convertToPbString(order.getRepo2Value()) ) + .setRepoValueBalance( convertToPbString(order.getRepoValueBalance()) ) + .setStartDiscount( convertToPbString(order.getStartDiscount()) ) + .setRejectReason( convertToPbString(order.getRejectReason()) ) + .setExtOrderFlags( convertToPbString(order.getExtOrderFlags()) ) + .setMinQty( order.getMinQty() ) + .setExecType( order.getExecType() ) + .setSideQualifier( order.getSideQualifier() ) + .setAcntType( order.getAcntType() ) + .setCapacity( order.getCapacity() ) + .setPassiveOnlyOrder( order.getPassiveOnlyOrder() ) + .setVisible( order.getVisible() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index f8f539b..b75a546 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -76,6 +76,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, StopEventInfo.class, StopEventInfoPbSerde.INSTANCE); registerSerde(result, ConnectedEventInfo.class, ConnectedEventInfoPbSerde.INSTANCE); registerSerde(result, Trade.class, TradePbSerde.INSTANCE); + registerSerde(result, Order.class, OrderPbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java new file mode 100644 index 0000000..093bf5f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java @@ -0,0 +1,139 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class OrderPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static Order expectedObject; + private static byte[] expectedPbInput; + + private static Order expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = OrderPbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = Order.builder() + .orderNum(1L) + .flags(2) + .brokerRef("3") + .userId("4") + .firmId("5") + .account("6") + .price("7") + .qty(8) + .balance("9") + .value("10") + .accruedInt("11") + .yield("12") + .transId("13") + .clientCode("14") + .price2("15") + .settleCode("16") + .uid("17") + .canceledUid("18") + .exchangeCode("19") + .activationTime("20") + .linkedOrder("21") + .expiry("22") + .secCode("23") + .classCode("24") + .datetime(dateTimeEntry) + .withdrawDatetime(dateTimeEntry) + .bankAccId("27") + .valueEntryType(28) + .repoTerm("29") + .repoValue("30") + .repo2Value("31") + .repoValueBalance("32") + .startDiscount("33") + .rejectReason("34") + .extOrderFlags("35") + .minQty(36) + .execType(37) + .sideQualifier(38) + .acntType(39) + .capacity(40) + .passiveOnlyOrder(41) + .visible(42) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = Order.builder() + .orderNum(1L) + .flags(2) + .qty(8) + .valueEntryType(28) + .minQty(36) + .execType(37) + .sideQualifier(38) + .acntType(39) + .capacity(40) + .passiveOnlyOrder(41) + .visible(42) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final Order actualObject = sut.deserialize(Order.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final Order actualObject = sut.deserialize(Order.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From ce98e535d09c9bc3f78a9bbf3b48ef1c82ea5bae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 14:08:18 +0300 Subject: [PATCH 173/549] Added a protobuf serde facility for FuturesLimitDelete. --- .../protobuf/FuturesLimitDeletePbSerde.java | 46 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../FuturesLimitDeletePbSerdeTest.java | 76 +++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java new file mode 100644 index 0000000..49d652c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum FuturesLimitDeletePbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final FuturesLimitDelete futuresLimitDelete) { + return convertToPb(futuresLimitDelete).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesLimitDelete deserialize(final byte[] data) { + return convertFromPb(QluaStructures.FuturesLimitDelete.parseFrom(data)); + } + + @Override + public FuturesLimitDelete convertFromPb(@NotNull QluaStructures.FuturesLimitDelete futuresLimitDelete) { + + return FuturesLimitDelete.builder() + .firmId( convertFromPbString(futuresLimitDelete.getFirmid()) ) + .limitType( futuresLimitDelete.getLimitType() ) + .build(); + } + + @Override + public QluaStructures.FuturesLimitDelete convertToPb(@NotNull final FuturesLimitDelete futuresLimitDelete) { + + return QluaStructures.FuturesLimitDelete.newBuilder() + .setFirmid( convertToPbString(futuresLimitDelete.getFirmId()) ) + .setLimitType( futuresLimitDelete.getLimitType() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index b75a546..5c2243d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -77,6 +77,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ConnectedEventInfo.class, ConnectedEventInfoPbSerde.INSTANCE); registerSerde(result, Trade.class, TradePbSerde.INSTANCE); registerSerde(result, Order.class, OrderPbSerde.INSTANCE); + registerSerde(result, FuturesLimitDelete.class, FuturesLimitDeletePbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java new file mode 100644 index 0000000..bc4b012 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class FuturesLimitDeletePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static FuturesLimitDelete expectedObject; + private static byte[] expectedPbInput; + + private static FuturesLimitDelete expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = FuturesLimitDeletePbSerde.INSTANCE; + + expectedObject = FuturesLimitDelete.builder() + .firmId("1") + .limitType(2) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = FuturesLimitDelete.builder() + .limitType(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final FuturesLimitDelete actualObject = sut.deserialize(FuturesLimitDelete.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final FuturesLimitDelete actualObject = sut.deserialize(FuturesLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From d4db96527283326b74ea8aafef3f536a2453ab9f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 14:18:25 +0300 Subject: [PATCH 174/549] Added a protobuf serde facility for MoneyLimitDelete. --- .../protobuf/MoneyLimitDeletePbSerde.java | 52 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/MoneyLimitDeletePbSerdeTest.java | 76 +++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java new file mode 100644 index 0000000..000be83 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum MoneyLimitDeletePbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final MoneyLimitDelete moneyLimitDelete) { + return convertToPb(moneyLimitDelete).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public MoneyLimitDelete deserialize(final byte[] data) { + return convertFromPb(QluaStructures.MoneyLimitDelete.parseFrom(data)); + } + + @Override + public MoneyLimitDelete convertFromPb(@NotNull QluaStructures.MoneyLimitDelete moneyLimitDelete) { + + return MoneyLimitDelete.builder() + .currCode( convertFromPbString(moneyLimitDelete.getCurrcode()) ) + .tag( convertFromPbString(moneyLimitDelete.getTag()) ) + .clientCode( convertFromPbString(moneyLimitDelete.getClientCode()) ) + .firmId( convertFromPbString(moneyLimitDelete.getFirmid()) ) + .limitKind( moneyLimitDelete.getLimitKind() ) + .build(); + } + + @Override + public QluaStructures.MoneyLimitDelete convertToPb(@NotNull final MoneyLimitDelete moneyLimitDelete) { + + return QluaStructures.MoneyLimitDelete.newBuilder() + .setCurrcode( convertToPbString(moneyLimitDelete.getCurrCode()) ) + .setTag( convertToPbString(moneyLimitDelete.getTag()) ) + .setClientCode( convertToPbString(moneyLimitDelete.getClientCode()) ) + .setFirmid( convertToPbString(moneyLimitDelete.getFirmId()) ) + .setLimitKind( moneyLimitDelete.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 5c2243d..0dd28aa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -80,6 +80,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, FuturesLimitDelete.class, FuturesLimitDeletePbSerde.INSTANCE); registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); + registerSerde(result, MoneyLimitDelete.class, MoneyLimitDeletePbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java new file mode 100644 index 0000000..9a84e1b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java @@ -0,0 +1,76 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class MoneyLimitDeletePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static MoneyLimitDelete expectedObject; + private static byte[] expectedPbInput; + + private static MoneyLimitDelete expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = MoneyLimitDeletePbSerde.INSTANCE; + + expectedObject = MoneyLimitDelete.builder() + .firmId("1") + .limitKind(2) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = MoneyLimitDelete.builder() + .limitKind(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From b6646545d4818d399253466644b5a35877aa973f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 14:26:53 +0300 Subject: [PATCH 175/549] Added a protobuf serde facility for DepoLimit. --- .../rpc/serde/protobuf/DepoLimitPbSerde.java | 70 ++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/DepoLimitPbSerdeTest.java | 94 +++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java new file mode 100644 index 0000000..ffbd43c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum DepoLimitPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DepoLimit depoLimit) { + return convertToPb(depoLimit).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DepoLimit deserialize(final byte[] data) { + return convertFromPb(QluaStructures.DepoLimit.parseFrom(data)); + } + + @Override + public DepoLimit convertFromPb(@NotNull QluaStructures.DepoLimit depoLimit) { + + return DepoLimit.builder() + .secCode( convertFromPbString(depoLimit.getSecCode()) ) + .trdAccId( convertFromPbString(depoLimit.getTrdaccid()) ) + .firmId( convertFromPbString(depoLimit.getFirmid()) ) + .clientCode( convertFromPbString(depoLimit.getClientCode()) ) + .openBal( depoLimit.getOpenbal() ) + .openLimit( depoLimit.getOpenlimit() ) + .currentBal( depoLimit.getCurrentbal() ) + .currentLimit( depoLimit.getCurrentlimit() ) + .lockedSell( depoLimit.getLockedSell() ) + .lockedBuy( depoLimit.getLockedBuy() ) + .lockedBuyValue( convertFromPbString(depoLimit.getLockedBuyValue()) ) + .lockedSellValue( convertFromPbString(depoLimit.getLockedSellValue()) ) + .awgPositionPrice( convertFromPbString(depoLimit.getAwgPositionPrice()) ) + .limitKind( depoLimit.getLimitKind() ) + .build(); + } + + @Override + public QluaStructures.DepoLimit convertToPb(@NotNull final DepoLimit depoLimit) { + + return QluaStructures.DepoLimit.newBuilder() + .setSecCode( convertToPbString(depoLimit.getSecCode()) ) + .setTrdaccid( convertToPbString(depoLimit.getTrdAccId()) ) + .setFirmid( convertToPbString(depoLimit.getFirmId()) ) + .setClientCode( convertToPbString(depoLimit.getClientCode()) ) + .setOpenbal( depoLimit.getOpenBal() ) + .setOpenlimit( depoLimit.getOpenLimit() ) + .setCurrentbal( depoLimit.getCurrentBal() ) + .setCurrentlimit( depoLimit.getCurrentLimit() ) + .setLockedSell( depoLimit.getLockedSell() ) + .setLockedBuy( depoLimit.getLockedBuy() ) + .setLockedBuyValue( convertToPbString(depoLimit.getLockedBuyValue()) ) + .setLockedSellValue( convertToPbString(depoLimit.getLockedSellValue()) ) + .setAwgPositionPrice( convertToPbString(depoLimit.getAwgPositionPrice()) ) + .setLimitKind( depoLimit.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 0dd28aa..5e375f8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -81,6 +81,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, MoneyLimitDelete.class, MoneyLimitDeletePbSerde.INSTANCE); + registerSerde(result, DepoLimit.class, DepoLimitPbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java new file mode 100644 index 0000000..8526925 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java @@ -0,0 +1,94 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DepoLimitPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static DepoLimit expectedObject; + private static byte[] expectedPbInput; + + private static DepoLimit expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = DepoLimitPbSerde.INSTANCE; + + expectedObject = DepoLimit.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .openBal(5) + .openLimit(6) + .currentBal(7) + .currentLimit(8) + .lockedSell(9) + .lockedBuy(10) + .lockedBuyValue("11") + .lockedSellValue("12") + .awgPositionPrice("13") + .limitKind(14) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = DepoLimit.builder() + .openBal(1) + .openLimit(2) + .currentBal(3) + .currentLimit(4) + .lockedSell(5) + .lockedBuy(6) + .limitKind(7) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final DepoLimit actualObject = sut.deserialize(DepoLimit.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final DepoLimit actualObject = sut.deserialize(DepoLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 831180d85a36876978116b950860e8d754b8a3a4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 14:31:31 +0300 Subject: [PATCH 176/549] Added a protobuf serde facility for DepoLimitDelete. --- .../protobuf/DepoLimitDeletePbSerde.java | 52 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/DepoLimitDeletePbSerdeTest.java | 79 +++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java new file mode 100644 index 0000000..15288bf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum DepoLimitDeletePbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DepoLimitDelete depoLimitDelete) { + return convertToPb(depoLimitDelete).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DepoLimitDelete deserialize(final byte[] data) { + return convertFromPb(QluaStructures.DepoLimitDelete.parseFrom(data)); + } + + @Override + public DepoLimitDelete convertFromPb(@NotNull QluaStructures.DepoLimitDelete depoLimitDelete) { + + return DepoLimitDelete.builder() + .secCode( convertFromPbString(depoLimitDelete.getSecCode()) ) + .trdAccId( convertFromPbString(depoLimitDelete.getTrdaccid()) ) + .firmId( convertFromPbString(depoLimitDelete.getFirmid()) ) + .clientCode( convertFromPbString(depoLimitDelete.getClientCode()) ) + .limitKind( depoLimitDelete.getLimitKind() ) + .build(); + } + + @Override + public QluaStructures.DepoLimitDelete convertToPb(@NotNull final DepoLimitDelete depoLimitDelete) { + + return QluaStructures.DepoLimitDelete.newBuilder() + .setSecCode( convertToPbString(depoLimitDelete.getSecCode()) ) + .setTrdaccid( convertToPbString(depoLimitDelete.getTrdAccId()) ) + .setFirmid( convertToPbString(depoLimitDelete.getFirmId()) ) + .setClientCode( convertToPbString(depoLimitDelete.getClientCode()) ) + .setLimitKind( depoLimitDelete.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 5e375f8..dd0489c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -82,6 +82,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); registerSerde(result, MoneyLimitDelete.class, MoneyLimitDeletePbSerde.INSTANCE); registerSerde(result, DepoLimit.class, DepoLimitPbSerde.INSTANCE); + registerSerde(result, DepoLimitDelete.class, DepoLimitDeletePbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java new file mode 100644 index 0000000..da63faf --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DepoLimitDeletePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static DepoLimitDelete expectedObject; + private static byte[] expectedPbInput; + + private static DepoLimitDelete expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = DepoLimitDeletePbSerde.INSTANCE; + + expectedObject = DepoLimitDelete.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .limitKind(5) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = DepoLimitDelete.builder() + .limitKind(1) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final DepoLimitDelete actualObject = sut.deserialize(DepoLimitDelete.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final DepoLimitDelete actualObject = sut.deserialize(DepoLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 9f6802c02b5a4428e0e2ac56d4b6ac065e45d993 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 22:45:07 +0300 Subject: [PATCH 177/549] Added a protobuf serde facility for NegDeal. --- .../rpc/serde/protobuf/NegDealPbSerde.java | 137 +++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/ProtobufSerdeUtils.java | 16 ++ .../serde/protobuf/NegDealPbSerdeTest.java | 138 ++++++++++++++++++ 4 files changed, 292 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java new file mode 100644 index 0000000..37d0a92 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java @@ -0,0 +1,137 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum NegDealPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final NegDeal negDeal) { + return convertToPb(negDeal).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public NegDeal deserialize(final byte[] data) { + return convertFromPb(QluaStructures.NegDeal.parseFrom(data)); + } + + @Override + public NegDeal convertFromPb(@NotNull QluaStructures.NegDeal negDeal) { + + return NegDeal.builder() + .negDealNum( negDeal.getNegDealNum() ) + .negDealTime( convertFromPbString(negDeal.getNegDealTime()) ) + .flags( negDeal.getFlags() ) + .brokerRef( convertFromPbString(negDeal.getBrokerref()) ) + .userId( convertFromPbString(negDeal.getUserid()) ) + .firmId( convertFromPbString(negDeal.getFirmid()) ) + .cpUserId( convertFromPbString(negDeal.getCpuserid()) ) + .cpFirmId( convertFromPbString(negDeal.getCpfirmid()) ) + .account( convertFromPbString(negDeal.getAccount()) ) + .price( convertFromPbString(negDeal.getPrice()) ) + .qty( negDeal.getQty() ) + .matchRef( convertFromPbString(negDeal.getMatchref()) ) + .settleCode( convertFromPbString(negDeal.getSettlecode()) ) + .yield( convertFromPbString(negDeal.getYield()) ) + .accruedInt( convertFromPbString(negDeal.getAccruedint()) ) + .value( convertFromPbString(negDeal.getValue()) ) + .price2( convertFromPbString(negDeal.getPrice2()) ) + .repoRate( convertFromPbString(negDeal.getReporate()) ) + .refundRate( convertFromPbString(negDeal.getRefundrate()) ) + .transId( convertFromPbString(negDeal.getTransId()) ) + .clientCode( convertFromPbString(negDeal.getClientCode()) ) + .repoEntry( negDeal.getRepoentry() ) + .repoValue( convertFromPbString(negDeal.getRepovalue()) ) + .repo2Value( convertFromPbString(negDeal.getRepo2Value()) ) + .repoTerm( convertFromPbString(negDeal.getRepoterm()) ) + .startDiscount( convertFromPbString(negDeal.getStartDiscount()) ) + .lowerDiscount( convertFromPbString(negDeal.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(negDeal.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(negDeal.getBlockSecurities()) ) + .uid( convertFromPbString(negDeal.getUid()) ) + .withdrawTime( convertFromPbString(negDeal.getWithdrawTime()) ) + .negDealDate( convertFromPbString(negDeal.getNegDealDate()) ) + .balance( convertFromPbString(negDeal.getBalance()) ) + .originRepoValue( convertFromPbString(negDeal.getOriginRepovalue()) ) + .originQty( convertFromPbString(negDeal.getOriginQty()) ) + .originDiscount( convertFromPbString(negDeal.getOriginDiscount()) ) + .negDealActivationDate( convertFromPbString(negDeal.getNegDealActivationDate()) ) + .negDealActivationTime( convertFromPbString(negDeal.getNegDealActivationTime()) ) + .quoteNo( convertFromPbString(negDeal.getQuoteno()) ) + .settleCurrency( convertFromPbString(negDeal.getSettleCurrency()) ) + .secCode( convertFromPbString(negDeal.getSecCode()) ) + .classCode( convertFromPbString(negDeal.getClassCode()) ) + .bankAccId( convertFromPbString(negDeal.getBankAccId()) ) + .withdrawDate( convertFromPbString(negDeal.getWithdrawDate()) ) + .linkedOrder( convertFromPbString(negDeal.getLinkedorder()) ) + .activationDateTime( convertFromPbDateTimeEntry(negDeal.getActivationDateTime()) ) + .withdrawDateTime( convertFromPbDateTimeEntry(negDeal.getWithdrawDateTime()) ) + .dateTime( convertFromPbDateTimeEntry(negDeal.getDateTime()) ) + .build(); + } + + @Override + public QluaStructures.NegDeal convertToPb(@NotNull final NegDeal negDeal) { + + return QluaStructures.NegDeal.newBuilder() + .setNegDealNum( negDeal.getNegDealNum() ) + .setNegDealTime( convertToPbString(negDeal.getNegDealTime()) ) + .setFlags( negDeal.getFlags() ) + .setBrokerref( convertToPbString(negDeal.getBrokerRef()) ) + .setUserid( convertToPbString(negDeal.getUserId()) ) + .setFirmid( convertToPbString(negDeal.getFirmId()) ) + .setCpuserid( convertToPbString(negDeal.getCpUserId()) ) + .setCpfirmid( convertToPbString(negDeal.getCpFirmId()) ) + .setAccount( convertToPbString(negDeal.getAccount()) ) + .setPrice( convertToPbString(negDeal.getPrice()) ) + .setQty( negDeal.getQty() ) + .setMatchref( convertToPbString(negDeal.getMatchRef()) ) + .setSettlecode( convertToPbString(negDeal.getSettleCode()) ) + .setYield( convertToPbString(negDeal.getYield()) ) + .setAccruedint( convertToPbString(negDeal.getAccruedInt()) ) + .setValue( convertToPbString(negDeal.getValue()) ) + .setPrice2( convertToPbString(negDeal.getPrice2()) ) + .setReporate( convertToPbString(negDeal.getRepoRate()) ) + .setRefundrate( convertToPbString(negDeal.getRefundRate()) ) + .setTransId( convertToPbString(negDeal.getTransId()) ) + .setClientCode( convertToPbString(negDeal.getClientCode()) ) + .setRepoentry( negDeal.getRepoEntry() ) + .setRepovalue( convertToPbString(negDeal.getRepoValue()) ) + .setRepo2Value( convertToPbString(negDeal.getRepo2Value()) ) + .setRepoterm( convertToPbString(negDeal.getRepoTerm()) ) + .setStartDiscount( convertToPbString(negDeal.getStartDiscount()) ) + .setLowerDiscount( convertToPbString(negDeal.getLowerDiscount()) ) + .setUpperDiscount( convertToPbString(negDeal.getUpperDiscount()) ) + .setBlockSecurities( convertToPbString(negDeal.getBlockSecurities()) ) + .setUid( convertToPbString(negDeal.getUid()) ) + .setWithdrawTime( convertToPbString(negDeal.getWithdrawTime()) ) + .setNegDealDate( convertToPbString(negDeal.getNegDealDate()) ) + .setBalance( convertToPbString(negDeal.getBalance()) ) + .setOriginRepovalue( convertToPbString(negDeal.getOriginRepoValue()) ) + .setOriginQty( convertToPbString(negDeal.getOriginQty()) ) + .setOriginDiscount( convertToPbString(negDeal.getOriginDiscount()) ) + .setNegDealActivationDate( convertToPbString(negDeal.getNegDealActivationDate()) ) + .setNegDealActivationTime( convertToPbString(negDeal.getNegDealActivationTime()) ) + .setQuoteno( convertToPbString(negDeal.getQuoteNo()) ) + .setSettleCurrency( convertToPbString(negDeal.getSettleCurrency()) ) + .setSecCode( convertToPbString(negDeal.getSecCode()) ) + .setClassCode( convertToPbString(negDeal.getClassCode()) ) + .setBankAccId( convertToPbString(negDeal.getBankAccId()) ) + .setWithdrawDate( convertToPbString(negDeal.getWithdrawDate()) ) + .setLinkedorder( convertToPbString(negDeal.getLinkedOrder()) ) + .setActivationDateTime( convertToPbDateTimeEntry(negDeal.getActivationDateTime()) ) + .setWithdrawDateTime( convertToPbDateTimeEntry(negDeal.getWithdrawDateTime()) ) + .setDateTime( convertToPbDateTimeEntry(negDeal.getDateTime()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index dd0489c..1e22f76 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -85,6 +85,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, DepoLimitDelete.class, DepoLimitDeletePbSerde.INSTANCE); registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); + registerSerde(result, NegDeal.class, NegDealPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 3f4548b..d7f25ba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -1,17 +1,24 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.google.common.base.Strings; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Nullable; +import qlua.structs.QluaStructures; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.Objects; import java.util.Optional; final class ProtobufSerdeUtils { static final Charset DEFAULT_PROTOBUF_CHARSET = StandardCharsets.UTF_8; + private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = + DateTimeEntryPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -27,4 +34,13 @@ static String convertFromPbString(final String protobufString) { static String convertToPbString(final String string) { return Optional.ofNullable(string).orElse(""); } + + @Nullable + static DateTimeEntry convertFromPbDateTimeEntry(final QluaStructures.DateTimeEntry dateTimeEntry) { + return Objects.equals(dateTimeEntry, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTimeEntry); + } + + static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(final DateTimeEntry dateTimeEntry) { + return dateTimeEntry == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java new file mode 100644 index 0000000..e8f3389 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java @@ -0,0 +1,138 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class NegDealPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static NegDeal expectedObject; + private static byte[] expectedPbInput; + + private static NegDeal expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = NegDealPbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = NegDeal.builder() + .negDealNum(1L) + .negDealTime("2") + .flags(3) + .brokerRef("4") + .userId("5") + .firmId("6") + .cpUserId("7") + .cpFirmId("8") + .account("9") + .price("10") + .qty(11) + .matchRef("12") + .settleCode("13") + .yield("14") + .accruedInt("15") + .value("16") + .price2("17") + .repoRate("18") + .refundRate("19") + .transId("20") + .clientCode("21") + .repoEntry(22) + .repoValue("23") + .repo2Value("24") + .repoTerm("25") + .startDiscount("26") + .lowerDiscount("27") + .upperDiscount("28") + .blockSecurities("29") + .uid("30") + .withdrawTime("31") + .negDealDate("32") + .balance("33") + .originRepoValue("34") + .originQty("35") + .originDiscount("36") + .negDealActivationDate("37") + .negDealActivationTime("38") + .quoteNo("39") + .settleCurrency("40") + .secCode("41") + .classCode("42") + .bankAccId("43") + .withdrawDate("44") + .linkedOrder("45") + .activationDateTime(dateTimeEntry) + .withdrawDateTime(dateTimeEntry) + .dateTime(dateTimeEntry) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = NegDeal.builder() + .negDealNum(1L) + .flags(2) + .qty(3) + .repoEntry(4) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 5a93e0fdd48c607f11cecde00843e8cc81b33963 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 23:16:13 +0300 Subject: [PATCH 178/549] Added a protobuf serde facility for NegTrade. --- .../rpc/serde/protobuf/NegTradePbSerde.java | 164 ++++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/NegTradePbSerdeTest.java | 142 +++++++++++++++ 3 files changed, 307 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java new file mode 100644 index 0000000..1207887 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java @@ -0,0 +1,164 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum NegTradePbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final NegTrade negTrade) { + return convertToPb(negTrade).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public NegTrade deserialize(final byte[] data) { + return convertFromPb(QluaStructures.NegTrade.parseFrom(data)); + } + + @Override + public NegTrade convertFromPb(@NotNull QluaStructures.NegTrade negTrade) { + + return NegTrade.builder() + .tradeNum( negTrade.getTradeNum() ) + .tradeDate( convertFromPbString(negTrade.getTradeDate()) ) + .settleDate( convertFromPbString(negTrade.getSettleDate()) ) + .flags( negTrade.getFlags() ) + .brokerRef( convertFromPbString(negTrade.getBrokerref()) ) + .firmId( convertFromPbString(negTrade.getFirmid()) ) + .account( convertFromPbString(negTrade.getAccount()) ) + .cpFirmId( convertFromPbString(negTrade.getCpfirmid()) ) + .cpAccount( convertFromPbString(negTrade.getCpaccount()) ) + .price( convertFromPbString(negTrade.getPrice()) ) + .qty( negTrade.getQty() ) + .value( convertFromPbString(negTrade.getValue()) ) + .settleCode( convertFromPbString(negTrade.getSettlecode()) ) + .reportNum( convertFromPbString(negTrade.getReportNum()) ) + .cpReportNum( convertFromPbString(negTrade.getCpreportNum()) ) + .accruedInt( convertFromPbString(negTrade.getAccruedint()) ) + .repoTradeNo( convertFromPbString(negTrade.getRepotradeno()) ) + .price1( convertFromPbString(negTrade.getPrice1()) ) + .repoRate( convertFromPbString(negTrade.getReporate()) ) + .price2( convertFromPbString(negTrade.getPrice2()) ) + .clientCode( convertFromPbString(negTrade.getClientCode()) ) + .tsComission( convertFromPbString(negTrade.getTsComission()) ) + .balance( convertFromPbString(negTrade.getBalance()) ) + .settleTime( convertFromPbString(negTrade.getSettleTime()) ) + .amount( convertFromPbString(negTrade.getAmount()) ) + .repoValue( convertFromPbString(negTrade.getRepovalue()) ) + .repoTerm( convertFromPbString(negTrade.getRepoterm()) ) + .repo2Value( convertFromPbString(negTrade.getRepo2Value()) ) + .returnValue( convertFromPbString(negTrade.getReturnValue()) ) + .discount( convertFromPbString(negTrade.getDiscount()) ) + .lowerDiscount( convertFromPbString(negTrade.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(negTrade.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(negTrade.getBlockSecurities()) ) + .urgencyFlag( convertFromPbString(negTrade.getUrgencyFlag()) ) + .type( negTrade.getType() ) + .operationType( negTrade.getOperationType() ) + .expectedDiscount( convertFromPbString(negTrade.getExpectedDiscount()) ) + .expectedQuantity( convertFromPbString(negTrade.getExpectedQuantity()) ) + .expectedRepoValue( convertFromPbString(negTrade.getExpectedRepovalue()) ) + .expectedRepo2Value( convertFromPbString(negTrade.getExpectedRepo2Value()) ) + .expectedReturnValue( convertFromPbString(negTrade.getExpectedReturnValue()) ) + .orderNum( convertFromPbString(negTrade.getOrderNum()) ) + .reportTradeDate( convertFromPbString(negTrade.getReportTradeDate()) ) + .settled( negTrade.getSettled() ) + .clearingType( negTrade.getClearingType() ) + .reportComission( convertFromPbString(negTrade.getReportComission()) ) + .couponPayment( convertFromPbString(negTrade.getCouponPayment()) ) + .principalPayment( convertFromPbString(negTrade.getPrincipalPayment()) ) + .principalPaymentDate( convertFromPbString(negTrade.getPrincipalPaymentDate()) ) + .nextDaySettle( convertFromPbString(negTrade.getNextdaysettle()) ) + .settleCurrency( convertFromPbString(negTrade.getSettleCurrency()) ) + .secCode( convertFromPbString(negTrade.getSecCode()) ) + .classCode( convertFromPbString(negTrade.getClassCode()) ) + .compVal( convertFromPbString(negTrade.getCompval()) ) + .parentTradeNo( convertFromPbString(negTrade.getParenttradeno()) ) + .bankId( convertFromPbString(negTrade.getBankid()) ) + .bankAccId( convertFromPbString(negTrade.getBankaccid()) ) + .preciseBalance( convertFromPbString(negTrade.getPrecisebalance()) ) + .confirmTime( convertFromPbString(negTrade.getConfirmtime()) ) + .exFlags( negTrade.getExFlags() ) + .confirmReport( convertFromPbString(negTrade.getConfirmreport()) ) + .build(); + } + + @Override + public QluaStructures.NegTrade convertToPb(@NotNull final NegTrade negTrade) { + + return QluaStructures.NegTrade.newBuilder() + .setTradeNum( negTrade.getTradeNum() ) + .setTradeDate( convertToPbString(negTrade.getTradeDate()) ) + .setSettleDate( convertToPbString(negTrade.getSettleDate()) ) + .setFlags( negTrade.getFlags() ) + .setBrokerref( convertToPbString(negTrade.getBrokerRef()) ) + .setFirmid( convertToPbString(negTrade.getFirmId()) ) + .setAccount( convertToPbString(negTrade.getAccount()) ) + .setCpfirmid( convertToPbString(negTrade.getCpFirmId()) ) + .setCpaccount( convertToPbString(negTrade.getCpAccount()) ) + .setPrice( convertToPbString(negTrade.getPrice()) ) + .setQty( negTrade.getQty() ) + .setValue( convertToPbString(negTrade.getValue()) ) + .setSettlecode( convertToPbString(negTrade.getSettleCode()) ) + .setReportNum( convertToPbString(negTrade.getReportNum()) ) + .setCpreportNum( convertToPbString(negTrade.getCpReportNum()) ) + .setAccruedint( convertToPbString(negTrade.getAccruedInt()) ) + .setRepotradeno( convertToPbString(negTrade.getRepoTradeNo()) ) + .setPrice1( convertToPbString(negTrade.getPrice1()) ) + .setReporate( convertToPbString(negTrade.getRepoRate()) ) + .setPrice2( convertToPbString(negTrade.getPrice2()) ) + .setClientCode( convertToPbString(negTrade.getClientCode()) ) + .setTsComission( convertToPbString(negTrade.getTsComission()) ) + .setBalance( convertToPbString(negTrade.getBalance()) ) + .setSettleTime( convertToPbString(negTrade.getSettleTime()) ) + .setAmount( convertToPbString(negTrade.getAmount()) ) + .setRepovalue( convertToPbString(negTrade.getRepoValue()) ) + .setRepoterm( convertToPbString(negTrade.getRepoTerm()) ) + .setRepo2Value( convertToPbString(negTrade.getRepo2Value()) ) + .setReturnValue( convertToPbString(negTrade.getReturnValue()) ) + .setDiscount( convertToPbString(negTrade.getDiscount()) ) + .setLowerDiscount( convertToPbString(negTrade.getLowerDiscount()) ) + .setUpperDiscount( convertToPbString(negTrade.getUpperDiscount()) ) + .setBlockSecurities( convertToPbString(negTrade.getBlockSecurities()) ) + .setUrgencyFlag( convertToPbString(negTrade.getUrgencyFlag()) ) + .setType( negTrade.getType() ) + .setOperationType( negTrade.getOperationType() ) + .setExpectedDiscount( convertToPbString(negTrade.getExpectedDiscount()) ) + .setExpectedQuantity( convertToPbString(negTrade.getExpectedQuantity()) ) + .setExpectedRepovalue( convertToPbString(negTrade.getExpectedRepoValue()) ) + .setExpectedRepo2Value( convertToPbString(negTrade.getExpectedRepo2Value()) ) + .setExpectedReturnValue( convertToPbString(negTrade.getExpectedReturnValue()) ) + .setOrderNum( convertToPbString(negTrade.getOrderNum()) ) + .setReportTradeDate( convertToPbString(negTrade.getReportTradeDate()) ) + .setSettled( negTrade.getSettled() ) + .setClearingType( negTrade.getClearingType() ) + .setReportComission( convertToPbString(negTrade.getReportComission()) ) + .setCouponPayment( convertToPbString(negTrade.getCouponPayment()) ) + .setPrincipalPayment( convertToPbString(negTrade.getPrincipalPayment()) ) + .setPrincipalPaymentDate( convertToPbString(negTrade.getPrincipalPaymentDate()) ) + .setNextdaysettle( convertToPbString(negTrade.getNextDaySettle()) ) + .setSettleCurrency( convertToPbString(negTrade.getSettleCurrency()) ) + .setSecCode( convertToPbString(negTrade.getSecCode()) ) + .setClassCode( convertToPbString(negTrade.getClassCode()) ) + .setCompval( convertToPbString(negTrade.getCompVal()) ) + .setParenttradeno( convertToPbString(negTrade.getParentTradeNo()) ) + .setBankid( convertToPbString(negTrade.getBankId()) ) + .setBankaccid( convertToPbString(negTrade.getBankAccId()) ) + .setPrecisebalance( convertToPbString(negTrade.getPreciseBalance()) ) + .setConfirmtime( convertToPbString(negTrade.getConfirmTime()) ) + .setExFlags( negTrade.getExFlags() ) + .setConfirmreport( convertToPbString(negTrade.getConfirmReport()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 1e22f76..0e58f27 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -86,6 +86,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerSerde(result, NegDeal.class, NegDealPbSerde.INSTANCE); + registerSerde(result, NegTrade.class, NegTradePbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java new file mode 100644 index 0000000..ed49c94 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java @@ -0,0 +1,142 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class NegTradePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static NegTrade expectedObject; + private static byte[] expectedPbInput; + + private static NegTrade expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = NegTradePbSerde.INSTANCE; + + expectedObject = NegTrade.builder() + .tradeNum(1L) + .tradeDate("2") + .settleDate("3") + .flags(4) + .brokerRef("5") + .firmId("6") + .account("7") + .cpFirmId("8") + .cpAccount("9") + .price("10") + .qty(11) + .value("12") + .settleCode("13") + .reportNum("14") + .cpReportNum("15") + .accruedInt("16") + .repoTradeNo("17") + .price1("18") + .repoRate("19") + .price2("20") + .clientCode("21") + .tsComission("22") + .balance("23") + .settleTime("24") + .amount("25") + .repoValue("26") + .repoTerm("27") + .repo2Value("28") + .returnValue("29") + .discount("30") + .lowerDiscount("31") + .upperDiscount("32") + .blockSecurities("33") + .urgencyFlag("34") + .type(35) + .operationType(36) + .expectedDiscount("37") + .expectedQuantity("38") + .expectedRepoValue("39") + .expectedRepo2Value("40") + .expectedReturnValue("41") + .orderNum("42") + .reportTradeDate("43") + .settled(44) + .clearingType(45) + .reportComission("46") + .couponPayment("47") + .principalPayment("48") + .principalPaymentDate("49") + .nextDaySettle("50") + .settleCurrency("51") + .secCode("52") + .classCode("53") + .compVal("54") + .parentTradeNo("55") + .bankId("56") + .bankAccId("57") + .preciseBalance("58") + .confirmTime("59") + .exFlags(60) + .confirmReport("61") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = NegTrade.builder() + .tradeNum(1L) + .flags(2) + .qty(3) + .type(4) + .operationType(5) + .settled(6) + .clearingType(7) + .exFlags(8) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From a66950ec1bdf3e92e9f6515b4c80df6ed8ade17a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 23:38:18 +0300 Subject: [PATCH 179/549] Added a protobuf serde facility for StopOrder. --- .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../rpc/serde/protobuf/StopOrderPbSerde.java | 113 +++++++++++++++ .../serde/protobuf/StopOrderPbSerdeTest.java | 129 ++++++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 0e58f27..8bbcf8a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -87,6 +87,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); registerSerde(result, NegDeal.class, NegDealPbSerde.INSTANCE); registerSerde(result, NegTrade.class, NegTradePbSerde.INSTANCE); + registerSerde(result, StopOrder.class, StopOrderPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java new file mode 100644 index 0000000..5ffdd7d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java @@ -0,0 +1,113 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum StopOrderPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final StopOrder stopOrder) { + return convertToPb(stopOrder).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public StopOrder deserialize(final byte[] data) { + return convertFromPb(QluaStructures.StopOrder.parseFrom(data)); + } + + @Override + public StopOrder convertFromPb(@NotNull QluaStructures.StopOrder stopOrder) { + + return StopOrder.builder() + .orderNum( stopOrder.getOrderNum() ) + .orderTime( convertFromPbString(stopOrder.getOrdertime()) ) + .flags( stopOrder.getFlags() ) + .brokerRef( convertFromPbString(stopOrder.getBrokerref()) ) + .firmId( convertFromPbString(stopOrder.getFirmid()) ) + .account( convertFromPbString(stopOrder.getAccount()) ) + .condition( stopOrder.getCondition() ) + .conditionPrice( convertFromPbString(stopOrder.getConditionPrice()) ) + .price( convertFromPbString(stopOrder.getPrice()) ) + .qty( stopOrder.getQty() ) + .linkedOrder( convertFromPbString(stopOrder.getLinkedorder()) ) + .expiry( convertFromPbString(stopOrder.getExpiry()) ) + .transId( convertFromPbString(stopOrder.getTransId()) ) + .clientCode( convertFromPbString(stopOrder.getClientCode()) ) + .coOrderNum( convertFromPbString(stopOrder.getCoOrderNum()) ) + .coOrderPrice( convertFromPbString(stopOrder.getCoOrderPrice()) ) + .stopOrderType( stopOrder.getStopOrderType() ) + .orderDate( convertFromPbString(stopOrder.getOrderdate()) ) + .allTradeNum( convertFromPbString(stopOrder.getAlltradeNum()) ) + .stopFlags( stopOrder.getStopflags() ) + .offset( convertFromPbString(stopOrder.getOffset()) ) + .spread( convertFromPbString(stopOrder.getSpread()) ) + .balance( convertFromPbString(stopOrder.getBalance()) ) + .uid( convertFromPbString(stopOrder.getUid()) ) + .filledQty( stopOrder.getFilledQty() ) + .withdrawTime( convertFromPbString(stopOrder.getWithdrawTime()) ) + .conditionPrice2( convertFromPbString(stopOrder.getConditionPrice2()) ) + .activeFromTime( convertFromPbString(stopOrder.getActiveFromTime()) ) + .activeToTime( convertFromPbString(stopOrder.getActiveToTime()) ) + .secCode( convertFromPbString(stopOrder.getSecCode()) ) + .classCode( convertFromPbString(stopOrder.getClassCode()) ) + .conditionSecCode( convertFromPbString(stopOrder.getConditionSecCode()) ) + .conditionClassCode( convertFromPbString(stopOrder.getConditionClassCode()) ) + .canceledUid( convertFromPbString(stopOrder.getCanceledUid()) ) + .orderDateTime( convertFromPbDateTimeEntry(stopOrder.getOrderDateTime()) ) + .withdrawDateTime( convertFromPbDateTimeEntry(stopOrder.getWithdrawDatetime()) ) + .build(); + } + + @Override + public QluaStructures.StopOrder convertToPb(@NotNull final StopOrder stopOrder) { + + return QluaStructures.StopOrder.newBuilder() + .setOrderNum( stopOrder.getOrderNum() ) + .setOrdertime( convertToPbString(stopOrder.getOrderTime()) ) + .setFlags( stopOrder.getFlags() ) + .setBrokerref( convertToPbString(stopOrder.getBrokerRef()) ) + .setFirmid( convertToPbString(stopOrder.getFirmId()) ) + .setAccount( convertToPbString(stopOrder.getAccount()) ) + .setCondition( stopOrder.getCondition() ) + .setConditionPrice( convertToPbString(stopOrder.getConditionPrice()) ) + .setPrice( convertToPbString(stopOrder.getPrice()) ) + .setQty( stopOrder.getQty() ) + .setLinkedorder( convertToPbString(stopOrder.getLinkedOrder()) ) + .setExpiry( convertToPbString(stopOrder.getExpiry()) ) + .setTransId( convertToPbString(stopOrder.getTransId()) ) + .setClientCode( convertToPbString(stopOrder.getClientCode()) ) + .setCoOrderNum( convertToPbString(stopOrder.getCoOrderNum()) ) + .setCoOrderPrice( convertToPbString(stopOrder.getCoOrderPrice()) ) + .setStopOrderType( stopOrder.getStopOrderType() ) + .setOrderdate( convertToPbString(stopOrder.getOrderDate()) ) + .setAlltradeNum( convertToPbString(stopOrder.getAllTradeNum()) ) + .setStopflags( stopOrder.getStopFlags() ) + .setOffset( convertToPbString(stopOrder.getOffset()) ) + .setSpread( convertToPbString(stopOrder.getSpread()) ) + .setBalance( convertToPbString(stopOrder.getBalance()) ) + .setUid( convertToPbString(stopOrder.getUid()) ) + .setFilledQty( stopOrder.getFilledQty() ) + .setWithdrawTime( convertToPbString(stopOrder.getWithdrawTime()) ) + .setConditionPrice2( convertToPbString(stopOrder.getConditionPrice2()) ) + .setActiveFromTime( convertToPbString(stopOrder.getActiveFromTime()) ) + .setActiveToTime( convertToPbString(stopOrder.getActiveToTime()) ) + .setSecCode( convertToPbString(stopOrder.getSecCode()) ) + .setClassCode( convertToPbString(stopOrder.getClassCode()) ) + .setConditionSecCode( convertToPbString(stopOrder.getConditionSecCode()) ) + .setConditionClassCode( convertToPbString(stopOrder.getConditionClassCode()) ) + .setCanceledUid( convertToPbString(stopOrder.getCanceledUid()) ) + .setOrderDateTime( convertToPbDateTimeEntry(stopOrder.getOrderDateTime()) ) + .setWithdrawDatetime( convertToPbDateTimeEntry(stopOrder.getWithdrawDateTime()) ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java new file mode 100644 index 0000000..1d83a6e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java @@ -0,0 +1,129 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class StopOrderPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static StopOrder expectedObject; + private static byte[] expectedPbInput; + + private static StopOrder expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = StopOrderPbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = StopOrder.builder() + .orderNum(1L) + .orderTime("2") + .flags(3) + .brokerRef("4") + .firmId("5") + .account("6") + .condition(7) + .conditionPrice("8") + .price("9") + .qty(10) + .linkedOrder("11") + .expiry("12") + .transId("13") + .clientCode("14") + .coOrderNum("15") + .coOrderPrice("16") + .stopOrderType(17) + .orderDate("18") + .allTradeNum("19") + .stopFlags(20) + .offset("21") + .spread("22") + .balance("23") + .uid("24") + .filledQty(25) + .withdrawTime("26") + .conditionPrice2("27") + .activeFromTime("28") + .activeToTime("29") + .secCode("30") + .classCode("31") + .conditionSecCode("32") + .conditionClassCode("33") + .canceledUid("34") + .orderDateTime(dateTimeEntry) + .withdrawDateTime(dateTimeEntry) + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = StopOrder.builder() + .orderNum(1L) + .flags(2) + .condition(3) + .qty(4) + .stopOrderType(5) + .stopFlags(6) + .filledQty(7) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From f8b644d254600092417df871f626af2e5ae70824 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 23:50:53 +0300 Subject: [PATCH 180/549] Added a protobuf serde facility for TransReply. --- .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../rpc/serde/protobuf/TransReplyPbSerde.java | 77 +++++++++++++ .../serde/protobuf/TransReplyPbSerdeTest.java | 107 ++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 8bbcf8a..c548e00 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -88,6 +88,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, NegDeal.class, NegDealPbSerde.INSTANCE); registerSerde(result, NegTrade.class, NegTradePbSerde.INSTANCE); registerSerde(result, StopOrder.class, StopOrderPbSerde.INSTANCE); + registerSerde(result, TransReply.class, TransReplyPbSerde.INSTANCE); registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java new file mode 100644 index 0000000..8f233cd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java @@ -0,0 +1,77 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.TransReply; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum TransReplyPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final TransReply transReply) { + return convertToPb(transReply).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public TransReply deserialize(final byte[] data) { + return convertFromPb(QluaStructures.Transaction.parseFrom(data)); + } + + @Override + public TransReply convertFromPb(@NotNull QluaStructures.Transaction transaction) { + + return TransReply.builder() + .transId( transaction.getTransId() ) + .status( transaction.getStatus() ) + .resultMsg( convertFromPbString(transaction.getResultMsg()) ) + .dateTime( convertFromPbDateTimeEntry(transaction.getDateTime()) ) + .uid( convertFromPbString(transaction.getUid()) ) + .flags( transaction.getFlags() ) + .serverTransId( convertFromPbString(transaction.getServerTransId()) ) + .orderNum( convertFromPbString(transaction.getOrderNum()) ) + .price( convertFromPbString(transaction.getPrice()) ) + .quantity( convertFromPbString(transaction.getQuantity()) ) + .balance( convertFromPbString(transaction.getBalance()) ) + .firmId( convertFromPbString(transaction.getFirmId()) ) + .account( convertFromPbString(transaction.getAccount()) ) + .clientCode( convertFromPbString(transaction.getClientCode()) ) + .brokerRef( convertFromPbString(transaction.getBrokerref()) ) + .classCode( convertFromPbString(transaction.getClassCode()) ) + .secCode( convertFromPbString(transaction.getSecCode()) ) + .exchangeCode( convertFromPbString(transaction.getExchangeCode()) ) + .build(); + } + + @Override + public QluaStructures.Transaction convertToPb(@NotNull final TransReply transReply) { + + return QluaStructures.Transaction.newBuilder() + .setTransId( transReply.getTransId() ) + .setStatus( transReply.getStatus() ) + .setResultMsg( convertToPbString(transReply.getResultMsg()) ) + .setDateTime( convertToPbDateTimeEntry(transReply.getDateTime()) ) + .setUid( convertToPbString(transReply.getUid()) ) + .setFlags( transReply.getFlags() ) + .setServerTransId( convertToPbString(transReply.getServerTransId()) ) + .setOrderNum( convertToPbString(transReply.getOrderNum()) ) + .setPrice( convertToPbString(transReply.getPrice()) ) + .setQuantity( convertToPbString(transReply.getQuantity()) ) + .setBalance( convertToPbString(transReply.getBalance()) ) + .setFirmId( convertToPbString(transReply.getFirmId()) ) + .setAccount( convertToPbString(transReply.getAccount()) ) + .setClientCode( convertToPbString(transReply.getClientCode()) ) + .setBrokerref( convertToPbString(transReply.getBrokerRef()) ) + .setClassCode( convertToPbString(transReply.getClassCode()) ) + .setSecCode( convertToPbString(transReply.getSecCode()) ) + .setExchangeCode( convertToPbString(transReply.getExchangeCode()) ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java new file mode 100644 index 0000000..5061bb2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java @@ -0,0 +1,107 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.TransReply; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class TransReplyPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static TransReply expectedObject; + private static byte[] expectedPbInput; + + private static TransReply expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = TransReplyPbSerde.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + expectedObject = TransReply.builder() + .transId(1L) + .status(2) + .resultMsg("3") + .dateTime(dateTimeEntry) + .uid("5") + .flags(6) + .serverTransId("7") + .orderNum("8") + .price("9") + .quantity("10") + .balance("11") + .firmId("12") + .account("13") + .clientCode("14") + .brokerRef("15") + .classCode("16") + .secCode("17") + .exchangeCode("18") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = TransReply.builder() + .transId(1L) + .status(2) + .flags(3) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From c49882267d46be3b3916c39e513c4d3326872efb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 23:54:40 +0300 Subject: [PATCH 181/549] Added a protobuf serde facility for ParamEventInfo. --- .../serde/protobuf/ParamEventInfoPbSerde.java | 47 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/ParamEventInfoPbSerdeTest.java | 74 +++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java new file mode 100644 index 0000000..6864e9c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum ParamEventInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ParamEventInfo paramEventInfo) { + return convertToPb(paramEventInfo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ParamEventInfo deserialize(final byte[] data) { + return convertFromPb(QluaStructures.ParamEventInfo.parseFrom(data)); + } + + @Override + public ParamEventInfo convertFromPb(@NotNull QluaStructures.ParamEventInfo paramEventInfo) { + + return ParamEventInfo.builder() + .classCode( convertFromPbString(paramEventInfo.getClassCode()) ) + .secCode( convertFromPbString(paramEventInfo.getSecCode()) ) + .build(); + } + + @Override + public QluaStructures.ParamEventInfo convertToPb(@NotNull final ParamEventInfo paramEventInfo) { + + return QluaStructures.ParamEventInfo.newBuilder() + .setClassCode( convertToPbString(paramEventInfo.getClassCode()) ) + .setSecCode( convertToPbString(paramEventInfo.getSecCode()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index c548e00..76c56ee 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -93,6 +93,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); registerSerde(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); + registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); return result; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java new file mode 100644 index 0000000..3ab3c8f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ParamEventInfoPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static ParamEventInfo expectedObject; + private static byte[] expectedPbInput; + + private static ParamEventInfo expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = ParamEventInfoPbSerde.INSTANCE; + + expectedObject = ParamEventInfo.builder() + .classCode("1") + .secCode("2") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = ParamEventInfo.builder().build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 8d85eabe2a56529e56d8f2abe4fb8cd973137521 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 2 Sep 2018 23:57:01 +0300 Subject: [PATCH 182/549] Added a protobuf serde facility for QuoteEventInfo. --- .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/QuoteEventInfoPbSerde.java | 46 ++++++++++++ .../protobuf/QuoteEventInfoPbSerdeTest.java | 74 +++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 76c56ee..940424a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -94,6 +94,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); registerSerde(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); + registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); return result; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java new file mode 100644 index 0000000..43ffa1d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum QuoteEventInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final QuoteEventInfo quoteEventInfo) { + return convertToPb(quoteEventInfo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public QuoteEventInfo deserialize(final byte[] data) { + return convertFromPb(QluaStructures.QuoteEventInfo.parseFrom(data)); + } + + @Override + public QuoteEventInfo convertFromPb(@NotNull QluaStructures.QuoteEventInfo quoteEventInfo) { + + return QuoteEventInfo.builder() + .classCode( convertFromPbString(quoteEventInfo.getClassCode()) ) + .secCode( convertFromPbString(quoteEventInfo.getSecCode()) ) + .build(); + } + + @Override + public QluaStructures.QuoteEventInfo convertToPb(@NotNull final QuoteEventInfo quoteEventInfo) { + + return QluaStructures.QuoteEventInfo.newBuilder() + .setClassCode( convertToPbString(quoteEventInfo.getClassCode()) ) + .setSecCode( convertToPbString(quoteEventInfo.getSecCode()) ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java new file mode 100644 index 0000000..54f4bac --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class QuoteEventInfoPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static QuoteEventInfo expectedObject; + private static byte[] expectedPbInput; + + private static QuoteEventInfo expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = QuoteEventInfoPbSerde.INSTANCE; + + expectedObject = QuoteEventInfo.builder() + .classCode("1") + .secCode("2") + .build(); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = QuoteEventInfo.builder().build(); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From 1528828857e372a226419f6a8b4c0391253f8caa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 6 Sep 2018 00:25:26 +0300 Subject: [PATCH 183/549] Added a protobuf serde facility for ResponseEnvelope, ServiceError, Message.Request & Message.Result. --- .../zmq/AbstractZmqTcpQluaEventPoller.java | 1 - .../serde/protobuf/MessageRequestPbSerde.java | 89 +++++++++++++++++++ .../serde/protobuf/MessageResultPbSerde.java | 40 +++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 17 +++- .../serde/protobuf/ProtobufSerdeUtils.java | 12 +++ .../protobuf/ResponseEnvelopePbSerde.java | 66 ++++++++++++++ .../serde/protobuf/ServiceErrorPbSerde.java | 40 +++++++++ src/main/proto/qlua/rpc/RPC.proto | 7 +- subscription-client-config.json | 1 + 9 files changed, 269 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java index 9be6573..5b1b8db 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java @@ -71,7 +71,6 @@ public QluaEvent poll() throws PollingException { if (subscriptionKeyAsBytes == null) { result = null; } else { - final QluaEvent.EventType eventType = serdeModule.deserialize(QluaEvent.EventType.class, subscriptionKeyAsBytes); if (eventType == null) { throw new PollingException( diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java new file mode 100644 index 0000000..18cdd47 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java @@ -0,0 +1,89 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum MessageRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Message.Request request) { + + return qlua.rpc.RPC.Request.newBuilder() + .setTypeValue( RPC.ProcedureType.MESSAGE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Message.Request deserialize(final byte[] data) { + + final qlua.rpc.RPC.Request request = qlua.rpc.RPC.Request.parseFrom(data); + assertEquals(request.getType(), RPC.ProcedureType.MESSAGE); + + return convertFromPb( + qlua.rpc.Message.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public Message.Request convertFromPb(@NotNull final qlua.rpc.Message.Request request) { + + final qlua.rpc.Message.IconType pbIconType = request.getIconType(); + final Message.IconType iconType; + switch (pbIconType) { + case UNDEFINED: + iconType = null; + break; + case INFO: + iconType = Message.IconType.INFO; + break; + case WARNING: + iconType = Message.IconType.WARNING; + break; + case ERROR: + iconType = Message.IconType.ERROR; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения) для формата protobuf: '%s'.", pbIconType)); + } + + return new Message.Request(request.getMessage(), iconType); + } + + @Override + public qlua.rpc.Message.Request convertToPb(@NotNull final Message.Request request) { + + final Message.IconType iconType = request.getIconType(); + final qlua.rpc.Message.IconType pbIconType; + switch (iconType) { + case INFO: + pbIconType = qlua.rpc.Message.IconType.INFO; + break; + case WARNING: + pbIconType = qlua.rpc.Message.IconType.WARNING; + break; + case ERROR: + pbIconType = qlua.rpc.Message.IconType.ERROR; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения): '%s'.", iconType)); + } + + return qlua.rpc.Message.Request.newBuilder() + .setMessage( request.getMessage() ) + .setIconType(pbIconType) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java new file mode 100644 index 0000000..14d5df9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum MessageResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Message.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Message.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.Message.Result.parseFrom(data) ); + } + + @Override + public Message.Result convertFromPb(@NotNull final qlua.rpc.Message.Result result) { + return new Message.Result( result.getResult() ); + } + + @Override + public qlua.rpc.Message.Result convertToPb(@NotNull final Message.Result result) { + return qlua.rpc.Message.Result.newBuilder() + .setResult( result.getResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 940424a..efc6b36 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.Serde; @@ -27,7 +29,9 @@ public byte[] serialize(final T t) { @SuppressWarnings("unchecked") final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(t.getClass()); if (serde == null) { - throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс для сериализации.") ); + throw new SerdeException( + String.format("Неподдерживаемый класс для сериализации в protobuf-представление: %s.", t.getClass().getName()) + ); } else { try { return serde.serialize(t); @@ -47,7 +51,11 @@ public T deserialize(final Class clazz, final byte[] data) { @SuppressWarnings("unchecked") final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(clazz); if (serde == null) { - throw new SerdeException( new IllegalArgumentException("Неподдерживаемый класс для десериализации.") ); + throw new SerdeException( + new IllegalArgumentException( + String.format("Неподдерживаемый класс для десериализации из protobuf-представления: %s.", clazz.getName()) + ) + ); } else { try { return serde.deserialize(data); @@ -96,6 +104,11 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); + registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); + registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); + registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); + registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); + return result; } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index d7f25ba..08babfd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -2,9 +2,12 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.google.common.base.Strings; import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; import qlua.structs.QluaStructures; import java.nio.charset.Charset; @@ -43,4 +46,13 @@ static DateTimeEntry convertFromPbDateTimeEntry(final QluaStructures.DateTimeEnt static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(final DateTimeEntry dateTimeEntry) { return dateTimeEntry == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); } + + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { + + if (actual != expected) { + throw new SerdeException( + String.format("Неожиданный тип процедуры. Получено: %s, ожидалось: %s.", actual, expected) + ); + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java new file mode 100644 index 0000000..f4ef45e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.ByteString; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum ResponseEnvelopePbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ResponseEnvelope responseEnvelope) { + return convertToPb(responseEnvelope).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ResponseEnvelope deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.RPC.Response.parseFrom(data)); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ResponseEnvelope convertFromPb(@NotNull qlua.rpc.RPC.Response response) { + + if (response.getIsError()) { + final qlua.rpc.RPC.Error pbError = qlua.rpc.RPC.Error.parseFrom(response.getResult()); + return ResponseEnvelope.withError( + new ServiceError(pbError.getCode(), convertFromPbString(pbError.getMessage())) + ); + } else { + return ResponseEnvelope.withResult( response.getResult().toByteArray() ); + } + } + + @Override + public qlua.rpc.RPC.Response convertToPb(@NotNull final ResponseEnvelope responseEnvelope) { + + final ServiceError serviceError = responseEnvelope.getError(); + final ByteString result; + boolean isError = false; + if (serviceError == null) { + result = ByteString.copyFrom(responseEnvelope.getResult()); + } else { + isError = true; + result = qlua.rpc.RPC.Error.newBuilder() + .setCode( serviceError.getCode() ) + .setMessage( convertToPbString(serviceError.getMessage()) ) + .build() + .toByteString(); + } + + return qlua.rpc.RPC.Response.newBuilder() + .setIsError(isError) + .setResult(result) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java new file mode 100644 index 0000000..a466d5e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum ServiceErrorPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ServiceError serviceError) { + return convertToPb(serviceError).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ServiceError deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.RPC.Error.parseFrom(data)); + } + + @Override + public ServiceError convertFromPb(@NotNull qlua.rpc.RPC.Error error) { + return new ServiceError(error.getCode(), convertFromPbString(error.getMessage())); + } + + @Override + public qlua.rpc.RPC.Error convertToPb(@NotNull final ServiceError serviceError) { + return qlua.rpc.RPC.Error.newBuilder() + .setCode( serviceError.getCode() ) + .setMessage( convertToPbString(serviceError.getMessage()) ) + .build(); + } +} diff --git a/src/main/proto/qlua/rpc/RPC.proto b/src/main/proto/qlua/rpc/RPC.proto index a85a49a..46a71e6 100644 --- a/src/main/proto/qlua/rpc/RPC.proto +++ b/src/main/proto/qlua/rpc/RPC.proto @@ -114,7 +114,12 @@ message Request { message Response { - ProcedureType type = 1; bool is_error = 2; bytes result = 3; } + +message Error { + + int32 code = 1; + string message = 2; +} diff --git a/subscription-client-config.json b/subscription-client-config.json index f76cb44..b3117af 100644 --- a/subscription-client-config.json +++ b/subscription-client-config.json @@ -3,6 +3,7 @@ "host": "127.0.0.1", "port": 5561 }, + "serde_protocol": "protobuf", "auth": { "mechanism": "PLAIN", "plain": { From 5b46c683ac48fdd9dab9161cdb551e85702a7911 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 6 Sep 2018 00:47:23 +0300 Subject: [PATCH 184/549] Fixed the iconType null case. --- .../serde/protobuf/MessageRequestPbSerde.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java index 18cdd47..6a15a63 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java @@ -67,18 +67,22 @@ public qlua.rpc.Message.Request convertToPb(@NotNull final Message.Request reque final Message.IconType iconType = request.getIconType(); final qlua.rpc.Message.IconType pbIconType; - switch (iconType) { - case INFO: - pbIconType = qlua.rpc.Message.IconType.INFO; - break; - case WARNING: - pbIconType = qlua.rpc.Message.IconType.WARNING; - break; - case ERROR: - pbIconType = qlua.rpc.Message.IconType.ERROR; - break; - default: - throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения): '%s'.", iconType)); + if (iconType == null) { + pbIconType = qlua.rpc.Message.IconType.UNDEFINED; + } else { + switch (iconType) { + case INFO: + pbIconType = qlua.rpc.Message.IconType.INFO; + break; + case WARNING: + pbIconType = qlua.rpc.Message.IconType.WARNING; + break; + case ERROR: + pbIconType = qlua.rpc.Message.IconType.ERROR; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения): '%s'.", iconType)); + } } return qlua.rpc.Message.Request.newBuilder() From 9085a9e4a1ed7d15f5e7797404b3e14f1857f8b5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 6 Sep 2018 00:47:46 +0300 Subject: [PATCH 185/549] Added unit tests for ServiceErrorPbSerde, ResponseEnvelopePbSerde, MessageRequestPbSerde, MessageResultPbSerde. --- .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 3 +- .../protobuf/MessageRequestPbSerdeTest.java | 81 +++++++++++++++++++ .../protobuf/MessageResultPbSerdeTest.java | 47 +++++++++++ .../protobuf/ResponseEnvelopePbSerdeTest.java | 71 ++++++++++++++++ .../protobuf/ServiceErrorPbSerdeTest.java | 70 ++++++++++++++++ 5 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index df40a0c..93b7fe1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -506,8 +506,7 @@ private U makeRPC(final T request, final Class resultClass) { final byte[] response = ZmqUtils.convertZMsgToByteArray(zResponse); zResponse.destroy(); - final ResponseEnvelope responseEnvelope = - serdeModule.deserialize(ResponseEnvelope.class, response); + final ResponseEnvelope responseEnvelope = serdeModule.deserialize(ResponseEnvelope.class, response); final ServiceError error = responseEnvelope.getError(); if (error == null) { return serdeModule.deserialize(resultClass, responseEnvelope.getResult()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java new file mode 100644 index 0000000..8ff75c3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java @@ -0,0 +1,81 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class MessageRequestPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static Message.Request expectedObject; + private static byte[] expectedPbInput; + + private static Message.Request expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = MessageRequestPbSerde.INSTANCE; + + expectedObject = new Message.Request("1", Message.IconType.WARNING); + expectedPbInput = + qlua.rpc.RPC.Request.newBuilder() + .setType(RPC.ProcedureType.MESSAGE) + .setArgs(pbConverter.convertToPb(expectedObject).toByteString()) + .build() + .toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = new Message.Request("1"); + expectedPbInputWithEmptyNonRequiredStringFields = + qlua.rpc.RPC.Request.newBuilder() + .setType(RPC.ProcedureType.MESSAGE) + .setArgs(pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteString()) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final Message.Request actualObject = sut.deserialize(Message.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final Message.Request actualObject = + sut.deserialize(Message.Request.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java new file mode 100644 index 0000000..bbdb809 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class MessageResultPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static Message.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = MessageResultPbSerde.INSTANCE; + + expectedObject = new Message.Result(1); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final Message.Result actualObject = sut.deserialize(Message.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java new file mode 100644 index 0000000..682ec51 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java @@ -0,0 +1,71 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.nio.charset.StandardCharsets; +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ResponseEnvelopePbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static ResponseEnvelope expectedObjectWithError; + private static byte[] expectedPbInputForObjectWithError; + + private static ResponseEnvelope expectedObjectWithResult; + private static byte[] expectedPbInputForObjectWithResult; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = ResponseEnvelopePbSerde.INSTANCE; + + expectedObjectWithError = ResponseEnvelope.withError(new ServiceError(1, "2")); + expectedPbInputForObjectWithError = pbConverter.convertToPb(expectedObjectWithError).toByteArray(); + + expectedObjectWithResult = ResponseEnvelope.withResult("some data".getBytes(StandardCharsets.UTF_8)); + expectedPbInputForObjectWithResult = pbConverter.convertToPb(expectedObjectWithResult).toByteArray(); + } + + @Test + public void testSerializeResponseEnvelopeWithError() { + + final byte[] actual = sut.serialize(expectedObjectWithError); + + assertTrue( Arrays.equals(expectedPbInputForObjectWithError, actual) ); + } + + @Test + public void testSerializeResponseEnvelopeWithResult() { + + final byte[] actual = sut.serialize(expectedObjectWithResult); + + assertTrue( Arrays.equals(expectedPbInputForObjectWithResult, actual) ); + } + + @Test + public void testDeserializePbResponseWithError() { + + final ResponseEnvelope actualObject = sut.deserialize(ResponseEnvelope.class, expectedPbInputForObjectWithError); + + assertEquals(actualObject, expectedObjectWithError); + } + + @Test + public void testDeserializePbResponseWithResult() { + + final ResponseEnvelope actualObject = sut.deserialize(ResponseEnvelope.class, expectedPbInputForObjectWithResult); + + assertEquals(actualObject, expectedObjectWithResult); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java new file mode 100644 index 0000000..fbf010b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ServiceErrorPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static ServiceError expectedObject; + private static byte[] expectedPbInput; + + private static ServiceError expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = ServiceErrorPbSerde.INSTANCE; + + expectedObject = new ServiceError(500, "Ошибочка вышла."); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = new ServiceError(404, null); + expectedPbInputWithEmptyNonRequiredStringFields = + pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} From fdc284c182e85a5121b0ab4a45c42ea892afe1c9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 6 Sep 2018 01:56:27 +0300 Subject: [PATCH 186/549] Added a protobuf serde facility for AddColumn. --- .../protobuf/AddColumnRequestPbSerde.java | 130 ++++++++++++++++++ .../protobuf/AddColumnResultPbSerde.java | 37 +++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../protobuf/AddColumnRequestPbSerdeTest.java | 94 +++++++++++++ .../protobuf/AddColumnResultPbSerdeTest.java | 47 +++++++ 5 files changed, 311 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java new file mode 100644 index 0000000..1a3f708 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java @@ -0,0 +1,130 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum AddColumnRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final AddColumn.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( RPC.ProcedureType.ADD_COLUMN.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddColumn.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), RPC.ProcedureType.ADD_COLUMN); + + return convertFromPb( + qlua.rpc.AddColumn.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public AddColumn.Request convertFromPb(@NotNull final qlua.rpc.AddColumn.Request request) { + + final qlua.rpc.AddColumn.ColumnParameterType pbParType = request.getParType(); + final AddColumn.ColumnParameterType parType; + switch (pbParType) { + case UNDEFINED: + parType = null; + break; + case QTABLE_INT_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_INT_TYPE; + break; + case QTABLE_DOUBLE_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; + break; + case QTABLE_INT64_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + break; + case QTABLE_CACHED_STRING_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; + break; + case QTABLE_TIME_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; + break; + case QTABLE_DATE_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; + break; + case QTABLE_STRING_TYPE: + parType = AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный ColumnParameterType (тип столбца) для формата protobuf: '%s'.", pbParType)); + } + + return AddColumn.Request.builder() + .tId( request.getTId() ) + .iCode( request.getIcode() ) + .name( convertFromPbString(request.getName()) ) + .isDefault( request.getIsDefault() ) + .parType(parType) + .width( request.getWidth() ) + .build(); + } + + @Override + public qlua.rpc.AddColumn.Request convertToPb(@NotNull final AddColumn.Request request) { + + final AddColumn.ColumnParameterType parType = request.getParType(); + final qlua.rpc.AddColumn.ColumnParameterType pbParType; + if (parType == null) { + pbParType = qlua.rpc.AddColumn.ColumnParameterType.UNDEFINED; + } else { + switch (parType) { + case QTABLE_INT_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT_TYPE; + break; + case QTABLE_DOUBLE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; + break; + case QTABLE_INT64_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + break; + case QTABLE_CACHED_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; + break; + case QTABLE_TIME_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; + break; + case QTABLE_DATE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; + break; + case QTABLE_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный ColumnParameterType (тип столбца): '%s'.", parType)); + } + } + + return qlua.rpc.AddColumn.Request.newBuilder() + .setTId( request.getTId() ) + .setIcode( request.getICode() ) + .setName( convertToPbString(request.getName()) ) + .setIsDefault( request.isDefault() ) + .setParTypeValue( pbParType.getNumber() ) + .setWidth( request.getWidth() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java new file mode 100644 index 0000000..f165320 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AddColumnResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final AddColumn.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddColumn.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.AddColumn.Result.parseFrom(data) ); + } + + @Override + public AddColumn.Result convertFromPb(@NotNull final qlua.rpc.AddColumn.Result result) { + return new AddColumn.Result( result.getResult() ); + } + + @Override + public qlua.rpc.AddColumn.Result convertToPb(@NotNull final AddColumn.Result result) { + return qlua.rpc.AddColumn.Result.newBuilder() + .setResult( result.getResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index efc6b36..684f624 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; @@ -106,6 +107,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); + registerSerde(result, AddColumn.Request.class, AddColumnRequestPbSerde.INSTANCE); + registerSerde(result, AddColumn.Result.class, AddColumnResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java new file mode 100644 index 0000000..928b8ac --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java @@ -0,0 +1,94 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AddColumnRequestPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static AddColumn.Request expectedObject; + private static byte[] expectedPbInput; + + private static AddColumn.Request expectedObjectWithNullNonRequiredStringFileds; + private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = AddColumnRequestPbSerde.INSTANCE; + + expectedObject = AddColumn.Request.builder() + .tId(1) + .iCode(2) + .name("3") + .parType(AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) + .isDefault(true) + .width(6) + .build(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.ADD_COLUMN) + .setArgs(pbConverter.convertToPb(expectedObject).toByteString()) + .build() + .toByteArray(); + + expectedObjectWithNullNonRequiredStringFileds = AddColumn.Request.builder() + .tId(1) + .iCode(2) + .name("3") + .isDefault(true) + .width(5) + .build(); + expectedPbInputWithEmptyNonRequiredStringFields = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.ADD_COLUMN) + .setArgs(pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteString()) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testSerializePbInputWithEmptyNonRequiredStringFields() { + + final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + + assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + } + + @Test + public void testDeserialize() { + + final AddColumn.Request actualObject = sut.deserialize(AddColumn.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + + final AddColumn.Request actualObject = + sut.deserialize(AddColumn.Request.class, expectedPbInputWithEmptyNonRequiredStringFields); + + assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java new file mode 100644 index 0000000..1582a51 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AddColumnResultPbSerdeTest { + + private static SerdeModule sut; + private static PbConverter pbConverter; + + private static AddColumn.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + pbConverter = AddColumnResultPbSerde.INSTANCE; + + expectedObject = new AddColumn.Result(1); + expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final AddColumn.Result actualObject = sut.deserialize(AddColumn.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From e2a38e056d08e035dd02b2eb73fe0d2f5f7c5df2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 01:25:39 +0300 Subject: [PATCH 187/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/AccountBalancePbSerdeTest.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java index a95d1dc..528c261 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class AccountBalancePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static AccountBalance expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class AccountBalancePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = AccountBalancePbSerde.INSTANCE; expectedObject = AccountBalance.builder() .firmId("1") @@ -46,13 +43,32 @@ public static void globalSetup() { .bankAccId("14") .firmUse(15) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.AccountBalance.newBuilder() + .setFirmid("1") + .setSecCode("2") + .setTrdaccid("3") + .setDepaccid("4") + .setOpenbal("5") + .setCurrentpos("6") + .setPlannedpossell("7") + .setPlannedposbuy("8") + .setPlanbal("9") + .setUsqtyb("10") + .setUsqtys("11") + .setPlanned("12") + .setSettlebal("13") + .setBankAccId("14") + .setFirmuse(15) + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = AccountBalance.builder() .firmUse(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.AccountBalance.newBuilder() + .setFirmuse(1) + .build() + .toByteArray(); } @Test From 9a63fd70c98e0ade75cd085c2d68fd45540f207b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 01:28:07 +0300 Subject: [PATCH 188/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/AccountPositionPbSerdeTest.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java index 79a1ca8..30b7d8d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class AccountPositionPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static AccountPosition expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class AccountPositionPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = AccountPositionPbSerde.INSTANCE; expectedObject = AccountPosition.builder() .firmId("1") @@ -49,11 +46,31 @@ public static void globalSetup() { .marginCall("17") .settleBal("18") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.AccountPosition.newBuilder() + .setFirmid("1") + .setCurrcode("2") + .setTag("3") + .setDescription("4") + .setOpenbal("5") + .setCurrentpos("6") + .setPlannedpos("7") + .setLimit1("8") + .setLimit2("9") + .setOrderbuy("10") + .setOrdersell("11") + .setNetto("12") + .setPlannedbal("13") + .setDebit("14") + .setCredit("15") + .setBankAccId("16") + .setMargincall("17") + .setSettlebal("18") + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = AccountPosition.builder().build(); expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + QluaStructures.AccountPosition.newBuilder().build().toByteArray(); } @Test From badb83957e54b3089dfe7444d08df84370743029 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:01:15 +0300 Subject: [PATCH 189/549] Added @NonNull annotations to the AddColumn.Request's constructor (had missed that out...), added test for a corner case when the protobuf ColumnParameterType is UNDEFINED. --- .../quik/lua/rpc/api/messages/AddColumn.java | 4 +- .../protobuf/AddColumnRequestPbSerde.java | 57 +++++++-------- .../protobuf/AddColumnRequestPbSerdeTest.java | 69 ++++++++++--------- 3 files changed, 64 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java index 1ba8263..2eeb674 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java @@ -25,9 +25,9 @@ public static class Request { private Request( final int tId, final int iCode, - final String name, + @NonNull final String name, final boolean isDefault, - final ColumnParameterType parType, + @NonNull final ColumnParameterType parType, final int width) { this.tId = tId; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java index 1a3f708..2cc4769 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java @@ -45,9 +45,6 @@ public AddColumn.Request convertFromPb(@NotNull final qlua.rpc.AddColumn.Request final qlua.rpc.AddColumn.ColumnParameterType pbParType = request.getParType(); final AddColumn.ColumnParameterType parType; switch (pbParType) { - case UNDEFINED: - parType = null; - break; case QTABLE_INT_TYPE: parType = AddColumn.ColumnParameterType.QTABLE_INT_TYPE; break; @@ -70,7 +67,7 @@ public AddColumn.Request convertFromPb(@NotNull final qlua.rpc.AddColumn.Request parType = AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; break; default: - throw new IllegalArgumentException(String.format("Неизвестный ColumnParameterType (тип столбца) для формата protobuf: '%s'.", pbParType)); + throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца) для формата protobuf: '%s'.", pbParType)); } return AddColumn.Request.builder() @@ -88,34 +85,30 @@ public qlua.rpc.AddColumn.Request convertToPb(@NotNull final AddColumn.Request r final AddColumn.ColumnParameterType parType = request.getParType(); final qlua.rpc.AddColumn.ColumnParameterType pbParType; - if (parType == null) { - pbParType = qlua.rpc.AddColumn.ColumnParameterType.UNDEFINED; - } else { - switch (parType) { - case QTABLE_INT_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT_TYPE; - break; - case QTABLE_DOUBLE_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; - break; - case QTABLE_INT64_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; - break; - case QTABLE_CACHED_STRING_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; - break; - case QTABLE_TIME_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; - break; - case QTABLE_DATE_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; - break; - case QTABLE_STRING_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; - break; - default: - throw new IllegalArgumentException(String.format("Неизвестный ColumnParameterType (тип столбца): '%s'.", parType)); - } + switch (parType) { + case QTABLE_INT_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT_TYPE; + break; + case QTABLE_DOUBLE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; + break; + case QTABLE_INT64_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + break; + case QTABLE_CACHED_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; + break; + case QTABLE_TIME_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; + break; + case QTABLE_DATE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; + break; + case QTABLE_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; + break; + default: + throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца): '%s'.", parType)); } return qlua.rpc.AddColumn.Request.newBuilder() diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java index 928b8ac..0096f5a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java @@ -1,33 +1,35 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; import org.junit.BeforeClass; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import qlua.rpc.RPC; import java.util.Arrays; +import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class AddColumnRequestPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static AddColumn.Request expectedObject; private static byte[] expectedPbInput; - private static AddColumn.Request expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + @Rule + public ExpectedException thrown = ExpectedException.none(); @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = AddColumnRequestPbSerde.INSTANCE; expectedObject = AddColumn.Request.builder() .tId(1) @@ -37,24 +39,19 @@ public static void globalSetup() { .isDefault(true) .width(6) .build(); + final ByteString pbArgs = qlua.rpc.AddColumn.Request.newBuilder() + .setTId(1) + .setIcode(2) + .setName("3") + .setParType(qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) // TODO: add tests for all the enum values + .setIsDefault(true) + .setWidth(6) + .build() + .toByteString(); expectedPbInput = RPC.Request.newBuilder() .setType(RPC.ProcedureType.ADD_COLUMN) - .setArgs(pbConverter.convertToPb(expectedObject).toByteString()) - .build() - .toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = AddColumn.Request.builder() - .tId(1) - .iCode(2) - .name("3") - .isDefault(true) - .width(5) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.ADD_COLUMN) - .setArgs(pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteString()) + .setArgs(pbArgs) .build() .toByteArray(); } @@ -67,14 +64,6 @@ public void testSerialize() { assertTrue( Arrays.equals(expectedPbInput, actual) ); } - @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); - } - @Test public void testDeserialize() { @@ -84,11 +73,27 @@ public void testDeserialize() { } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + public void testDeserializeWithUndefinedColumnParameterType() { + + final ByteString pbArgs = qlua.rpc.AddColumn.Request.newBuilder() + .setTId(1) + .setIcode(2) + .setName("3") + .setParType(qlua.rpc.AddColumn.ColumnParameterType.UNDEFINED) + .setIsDefault(true) + .setWidth(6) + .build() + .toByteString(); + final byte[] pbRequestAsBytes = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.ADD_COLUMN) + .setArgs(pbArgs) + .build() + .toByteArray(); - final AddColumn.Request actualObject = - sut.deserialize(AddColumn.Request.class, expectedPbInputWithEmptyNonRequiredStringFields); + thrown.expect(SerdeException.class); + thrown.expectCause( instanceOf(IllegalArgumentException.class) ); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + sut.deserialize(AddColumn.Request.class, pbRequestAsBytes); } } From dea8c735fa70645bd2db37ecf21f0402eafb2bdb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:02:33 +0300 Subject: [PATCH 190/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../rpc/serde/protobuf/AddColumnResultPbSerdeTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java index 1582a51..bb4a3ef 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -14,7 +13,6 @@ public class AddColumnResultPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static AddColumn.Result expectedObject; private static byte[] expectedPbInput; @@ -23,10 +21,12 @@ public class AddColumnResultPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = AddColumnResultPbSerde.INSTANCE; expectedObject = new AddColumn.Result(1); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = qlua.rpc.AddColumn.Result.newBuilder() + .setResult(1) + .build() + .toByteArray(); } @Test From 87efe4712ef3e67d1d21a7dd6553c8b761834e9d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:06:38 +0300 Subject: [PATCH 191/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../serde/protobuf/AllTradePbSerdeTest.java | 46 ++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java index 81cba75..a2a685b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,7 +15,6 @@ public class AllTradePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static AllTrade expectedObject; private static byte[] expectedPbInput; @@ -28,7 +26,6 @@ public class AllTradePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = AllTradePbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = AllTrade.builder() .tradeNum(1L) @@ -62,7 +70,27 @@ public static void globalSetup() { .openInterest("17") .exchangeCode("18") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.AllTrade.newBuilder() + .setTradeNum(1L) + .setFlags(2) + .setPrice("3") + .setQty(4) + .setValue("5") + .setAccruedint("6") + .setYield("7") + .setSettlecode("8") + .setReporate("9") + .setRepovalue("10") + .setRepo2Value("11") + .setRepoterm("12") + .setSecCode("13") + .setClassCode("14") + .setDatetime(pbDateTimeEntry) + .setPeriod(16) + .setOpenInterest("17") + .setExchangeCode("18") + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = AllTrade.builder() .tradeNum(1L) @@ -71,8 +99,14 @@ public static void globalSetup() { .period(4) .datetime(dateTimeEntry) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.AllTrade.newBuilder() + .setTradeNum(1L) + .setFlags(2) + .setPrice("3") + .setPeriod(4) + .setDatetime(pbDateTimeEntry) + .build() + .toByteArray(); } @Test From 1354086d6f33b3078aff002399a908dc153cb3ae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:07:26 +0300 Subject: [PATCH 192/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java index aad4161..c9c57a4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class ConnectedEventInfoPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static ConnectedEventInfo expectedObject; private static byte[] expectedPbInput; @@ -24,10 +22,12 @@ public class ConnectedEventInfoPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = ConnectedEventInfoPbSerde.INSTANCE; expectedObject = new ConnectedEventInfo(true); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.ConnectedEventInfo.newBuilder() + .setFlag(true) + .build() + .toByteArray(); } @Test From fcc0c0a5c10fd30f402fca5b83908454a849584b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:08:57 +0300 Subject: [PATCH 193/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../serde/protobuf/DateTimeEntryPbSerdeTest.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java index 932fe32..1f5612b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class DateTimeEntryPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static DateTimeEntry expectedObject; private static byte[] expectedPbInput; @@ -24,7 +22,6 @@ public class DateTimeEntryPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = DateTimeEntryPbSerde.INSTANCE; expectedObject = DateTimeEntry.builder() .mcs(1) @@ -37,7 +34,18 @@ public static void globalSetup() { .month(8) .year(9) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build() + .toByteArray(); } @Test From 7fa5b4a134ee6cb913915962a08999f3a4d26b87 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:10:27 +0300 Subject: [PATCH 194/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/DepoLimitDeletePbSerdeTest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java index da63faf..2bceef2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class DepoLimitDeletePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static DepoLimitDelete expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class DepoLimitDeletePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = DepoLimitDeletePbSerde.INSTANCE; expectedObject = DepoLimitDelete.builder() .secCode("1") @@ -36,13 +33,22 @@ public static void globalSetup() { .clientCode("4") .limitKind(5) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.DepoLimitDelete.newBuilder() + .setSecCode("1") + .setTrdaccid("2") + .setFirmid("3") + .setClientCode("4") + .setLimitKind(5) + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = DepoLimitDelete.builder() .limitKind(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.DepoLimitDelete.newBuilder() + .setLimitKind(1) + .build() + .toByteArray(); } @Test From 8c09c797be0ca335a1e3f9f73d30a3d09e50f123 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 02:13:01 +0300 Subject: [PATCH 195/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../serde/protobuf/DepoLimitPbSerdeTest.java | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java index 8526925..588e38e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class DepoLimitPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static DepoLimit expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class DepoLimitPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = DepoLimitPbSerde.INSTANCE; expectedObject = DepoLimit.builder() .secCode("1") @@ -45,7 +42,23 @@ public static void globalSetup() { .awgPositionPrice("13") .limitKind(14) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.DepoLimit.newBuilder() + .setSecCode("1") + .setTrdaccid("2") + .setFirmid("3") + .setClientCode("4") + .setOpenbal(5) + .setOpenlimit(6) + .setCurrentbal(7) + .setCurrentlimit(8) + .setLockedSell(9) + .setLockedBuy(10) + .setLockedBuyValue("11") + .setLockedSellValue("12") + .setAwgPositionPrice("13") + .setLimitKind(14) + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = DepoLimit.builder() .openBal(1) @@ -56,8 +69,16 @@ public static void globalSetup() { .lockedBuy(6) .limitKind(7) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.DepoLimit.newBuilder() + .setOpenbal(1) + .setOpenlimit(2) + .setCurrentbal(3) + .setCurrentlimit(4) + .setLockedSell(5) + .setLockedBuy(6) + .setLimitKind(7) + .build() + .toByteArray(); } @Test From f302d547240637bc61675496c41567285a2f3ac3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:01:25 +0300 Subject: [PATCH 196/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../rpc/serde/protobuf/FirmPbSerdeTest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index 515c91b..a7cdff3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class FirmPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static Firm expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class FirmPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = FirmPbSerde.INSTANCE; expectedObject = Firm.builder() .firmId("1") @@ -35,14 +32,23 @@ public static void globalSetup() { .status(3) .exchange("4") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.Firm.newBuilder() + .setFirmid("1") + .setFirmName("2") + .setStatus(3) + .setExchange("4") + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = Firm.builder() .firmId("1") .status(2) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.Firm.newBuilder() + .setFirmid("1") + .setStatus(2) + .build() + .toByteArray(); } @Test From 60824eeaaa8d7ada554644186a3f290bd6a660f6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:05:02 +0300 Subject: [PATCH 197/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../FuturesClientHoldingPbSerdeTest.java | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java index 52b9176..6292e15 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class FuturesClientHoldingPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static FuturesClientHolding expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class FuturesClientHoldingPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = FuturesClientHoldingPbSerde.INSTANCE; expectedObject = FuturesClientHolding.builder() .firmId("1") @@ -50,7 +47,28 @@ public static void globalSetup() { .totalVarMargin("18") .sessionStatus(19) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setSecCode("3") + .setType(4) + .setStartbuy("5") + .setStartsell("6") + .setTodaybuy("7") + .setTodaysell("8") + .setTotalnet("9") + .setOpenbuys(10) + .setOpensells(11) + .setCbplused("12") + .setCbplplanned("13") + .setVarmargin("14") + .setAvrposnprice("15") + .setPositionvalue("16") + .setRealVarmargin("17") + .setTotalVarmargin("18") + .setSessionStatus(19) + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = FuturesClientHolding.builder() .type(1) @@ -58,8 +76,13 @@ public static void globalSetup() { .openSells(3) .sessionStatus(4) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesClientHolding.newBuilder() + .setType(1) + .setOpenbuys(2) + .setOpensells(3) + .setSessionStatus(4) + .build() + .toByteArray(); } @Test From 8a0f9b979b85abd32f4b0785dd16ef5f5f1e35a9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:06:01 +0300 Subject: [PATCH 198/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/FuturesLimitDeletePbSerdeTest.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java index bc4b012..99ef902 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class FuturesLimitDeletePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static FuturesLimitDelete expectedObject; private static byte[] expectedPbInput; @@ -27,19 +25,24 @@ public class FuturesLimitDeletePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = FuturesLimitDeletePbSerde.INSTANCE; expectedObject = FuturesLimitDelete.builder() .firmId("1") .limitType(2) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.FuturesLimitDelete.newBuilder() + .setFirmid("1") + .setLimitType(2) + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = FuturesLimitDelete.builder() .limitType(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesLimitDelete.newBuilder() + .setLimitType(1) + .build() + .toByteArray(); } @Test From 261f8d42e0b7344034b2605955f1e468cd406e6a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:08:28 +0300 Subject: [PATCH 199/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/FuturesLimitPbSerdeTest.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java index 772d1f6..bedc744 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class FuturesLimitPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static FuturesLimit expectedObject; private static byte[] expectedPbInput; @@ -27,7 +25,6 @@ public class FuturesLimitPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = FuturesLimitPbSerde.INSTANCE; expectedObject = FuturesLimit.builder() .firmId("1") @@ -48,13 +45,34 @@ public static void globalSetup() { .currCode("16") .realVarMargin("17") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.FuturesLimit.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setLimitType(3) + .setLiquidityCoef("4") + .setCbpPrevLimit("5") + .setCbplimit("6") + .setCbplused("7") + .setCbplplanned("8") + .setVarmargin("9") + .setAccruedint("10") + .setCbplusedForOrders("11") + .setCbplusedForPositions("12") + .setOptionsPremium("13") + .setTsComission("14") + .setKgo("15") + .setCurrcode("16") + .setRealVarmargin("17") + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = FuturesLimit.builder() .limitType(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesLimit.newBuilder() + .setLimitType(1) + .build() + .toByteArray(); } @Test From 131ae30e9c23e3d69bcbd1e128b1a10fa5cff304 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:12:27 +0300 Subject: [PATCH 200/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/MessageRequestPbSerdeTest.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java index 8ff75c3..b7a6dae 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java @@ -1,8 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; import org.junit.BeforeClass; import org.junit.Test; import qlua.rpc.RPC; @@ -15,33 +15,40 @@ public class MessageRequestPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static Message.Request expectedObject; private static byte[] expectedPbInput; - private static Message.Request expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static Message.Request expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbBytesWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = MessageRequestPbSerde.INSTANCE; expectedObject = new Message.Request("1", Message.IconType.WARNING); + final ByteString pbArgs = qlua.rpc.Message.Request.newBuilder() + .setMessage("1") + .setIconType(qlua.rpc.Message.IconType.WARNING) + .build() + .toByteString(); expectedPbInput = qlua.rpc.RPC.Request.newBuilder() .setType(RPC.ProcedureType.MESSAGE) - .setArgs(pbConverter.convertToPb(expectedObject).toByteString()) + .setArgs(pbArgs) .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = new Message.Request("1"); - expectedPbInputWithEmptyNonRequiredStringFields = + expectedObjectWithOnlyRequiredFields = new Message.Request("1"); + final ByteString pbArgsWithOnlyRequiredFields = qlua.rpc.Message.Request.newBuilder() + .setMessage("1") + .build() + .toByteString(); + expectedPbBytesWithOnlyRequiredFields = qlua.rpc.RPC.Request.newBuilder() .setType(RPC.ProcedureType.MESSAGE) - .setArgs(pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteString()) + .setArgs(pbArgsWithOnlyRequiredFields) .build() .toByteArray(); } @@ -57,9 +64,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbBytesWithOnlyRequiredFields, actual) ); } @Test @@ -74,8 +81,8 @@ public void testDeserialize() { public void testDeserializePbInputWithEmptyNonRequiredStringFields() { final Message.Request actualObject = - sut.deserialize(Message.Request.class, expectedPbInputWithEmptyNonRequiredStringFields); + sut.deserialize(Message.Request.class, expectedPbBytesWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From d28bcbba9b07021be1667e1d3e57eba1e079f097 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:13:19 +0300 Subject: [PATCH 201/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java index bbdb809..b6e4b0e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -14,7 +13,6 @@ public class MessageResultPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static Message.Result expectedObject; private static byte[] expectedPbInput; @@ -23,10 +21,12 @@ public class MessageResultPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = MessageResultPbSerde.INSTANCE; expectedObject = new Message.Result(1); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = qlua.rpc.Message.Result.newBuilder() + .setResult(1) + .build() + .toByteArray(); } @Test From a90abb4855afb6e87b38b1f63b543a9b8bc41e96 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:15:01 +0300 Subject: [PATCH 202/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/MoneyLimitDeletePbSerdeTest.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java index 9a84e1b..201f34c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,31 +14,35 @@ public class MoneyLimitDeletePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static MoneyLimitDelete expectedObject; private static byte[] expectedPbInput; - private static MoneyLimitDelete expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static MoneyLimitDelete expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = MoneyLimitDeletePbSerde.INSTANCE; expectedObject = MoneyLimitDelete.builder() .firmId("1") .limitKind(2) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.MoneyLimitDelete.newBuilder() + .setFirmid("1") + .setLimitKind(2) + .build() + .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = MoneyLimitDelete.builder() + expectedObjectWithOnlyRequiredFields = MoneyLimitDelete.builder() .limitKind(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimitDelete.newBuilder() + .setLimitKind(1) + .build() + .toByteArray(); } @Test @@ -53,9 +56,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -69,8 +72,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); + final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From ca5d3f59c5e151e7168e16271a767e3a768f2b0c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:17:17 +0300 Subject: [PATCH 203/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../serde/protobuf/MoneyLimitPbSerdeTest.java | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java index cb5e8a9..4e4a4be 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,19 +14,17 @@ public class MoneyLimitPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static MoneyLimit expectedObject; private static byte[] expectedPbInput; - private static MoneyLimit expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static MoneyLimit expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = MoneyLimitPbSerde.INSTANCE; expectedObject = MoneyLimit.builder() .currCode("1") @@ -44,13 +41,30 @@ public static void globalSetup() { .leverage("12") .limitKind(13) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = MoneyLimit.builder() + expectedPbInput = QluaStructures.MoneyLimit.newBuilder() + .setCurrcode("1") + .setTag("2") + .setFirmid("3") + .setClientCode("4") + .setOpenbal("5") + .setOpenlimit("6") + .setCurrentbal("7") + .setCurrentlimit("8") + .setLocked("9") + .setLockedValueCoef("10") + .setLockedMarginValue("11") + .setLeverage("12") + .setLimitKind(13) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = MoneyLimit.builder() .limitKind(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimit.newBuilder() + .setLimitKind(1) + .build() + .toByteArray(); } @Test @@ -64,9 +78,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -80,8 +94,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From daf559c70922f1b8c22a7d051cc02f28929bb73d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:41:10 +0300 Subject: [PATCH 204/549] Refactoring. --- .../quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 08babfd..9e87ead 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -35,7 +35,7 @@ static String convertFromPbString(final String protobufString) { @Contract("_ -> !null") static String convertToPbString(final String string) { - return Optional.ofNullable(string).orElse(""); + return (string == null) ? "" : string; } @Nullable @@ -43,8 +43,8 @@ static DateTimeEntry convertFromPbDateTimeEntry(final QluaStructures.DateTimeEnt return Objects.equals(dateTimeEntry, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTimeEntry); } - static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(final DateTimeEntry dateTimeEntry) { - return dateTimeEntry == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); + static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(@NotNull final DateTimeEntry dateTimeEntry) { + return DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); } static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { From b762c29934eddee34ed1cbe032996c88cedd39fb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:41:20 +0300 Subject: [PATCH 205/549] Removed a SUT's self-dependency, which improves the test's correctness; fixed pb serialization in NegDealPbSerde. --- .../rpc/serde/protobuf/NegDealPbSerde.java | 26 +++-- .../serde/protobuf/NegDealPbSerdeTest.java | 95 +++++++++++++++---- 2 files changed, 99 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java index 37d0a92..65fd5b4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.Serde; @@ -83,7 +84,7 @@ public NegDeal convertFromPb(@NotNull QluaStructures.NegDeal negDeal) { @Override public QluaStructures.NegDeal convertToPb(@NotNull final NegDeal negDeal) { - return QluaStructures.NegDeal.newBuilder() + final QluaStructures.NegDeal.Builder result = QluaStructures.NegDeal.newBuilder() .setNegDealNum( negDeal.getNegDealNum() ) .setNegDealTime( convertToPbString(negDeal.getNegDealTime()) ) .setFlags( negDeal.getFlags() ) @@ -128,10 +129,23 @@ public QluaStructures.NegDeal convertToPb(@NotNull final NegDeal negDeal) { .setClassCode( convertToPbString(negDeal.getClassCode()) ) .setBankAccId( convertToPbString(negDeal.getBankAccId()) ) .setWithdrawDate( convertToPbString(negDeal.getWithdrawDate()) ) - .setLinkedorder( convertToPbString(negDeal.getLinkedOrder()) ) - .setActivationDateTime( convertToPbDateTimeEntry(negDeal.getActivationDateTime()) ) - .setWithdrawDateTime( convertToPbDateTimeEntry(negDeal.getWithdrawDateTime()) ) - .setDateTime( convertToPbDateTimeEntry(negDeal.getDateTime()) ) - .build(); + .setLinkedorder( convertToPbString(negDeal.getLinkedOrder()) ); + + final DateTimeEntry activationDateTime = negDeal.getActivationDateTime(); + if (activationDateTime != null) { + result.setActivationDateTime( convertToPbDateTimeEntry(activationDateTime) ); + } + + final DateTimeEntry withdrawDateTime = negDeal.getWithdrawDateTime(); + if (withdrawDateTime != null) { + result.setWithdrawDateTime( convertToPbDateTimeEntry(withdrawDateTime) ); + } + + final DateTimeEntry dateTime = negDeal.getDateTime(); + if (dateTime != null) { + result.setDateTime( convertToPbDateTimeEntry(dateTime) ); + } + + return result.build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java index e8f3389..032959c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,19 +15,17 @@ public class NegDealPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static NegDeal expectedObject; private static byte[] expectedPbInput; - private static NegDeal expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static NegDeal expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = NegDealPbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = NegDeal.builder() .negDealNum(1L) @@ -92,16 +100,71 @@ public static void globalSetup() { .withdrawDateTime(dateTimeEntry) .dateTime(dateTimeEntry) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = NegDeal.builder() + expectedPbInput = QluaStructures.NegDeal.newBuilder() + .setNegDealNum(1L) + .setNegDealTime("2") + .setFlags(3) + .setBrokerref("4") + .setUserid("5") + .setFirmid("6") + .setCpuserid("7") + .setCpfirmid("8") + .setAccount("9") + .setPrice("10") + .setQty(11) + .setMatchref("12") + .setSettlecode("13") + .setYield("14") + .setAccruedint("15") + .setValue("16") + .setPrice2("17") + .setReporate("18") + .setRefundrate("19") + .setTransId("20") + .setClientCode("21") + .setRepoentry(22) + .setRepovalue("23") + .setRepo2Value("24") + .setRepoterm("25") + .setStartDiscount("26") + .setLowerDiscount("27") + .setUpperDiscount("28") + .setBlockSecurities("29") + .setUid("30") + .setWithdrawTime("31") + .setNegDealDate("32") + .setBalance("33") + .setOriginRepovalue("34") + .setOriginQty("35") + .setOriginDiscount("36") + .setNegDealActivationDate("37") + .setNegDealActivationTime("38") + .setQuoteno("39") + .setSettleCurrency("40") + .setSecCode("41") + .setClassCode("42") + .setBankAccId("43") + .setWithdrawDate("44") + .setLinkedorder("45") + .setActivationDateTime(pbDateTimeEntry) + .setWithdrawDateTime(pbDateTimeEntry) + .setDateTime(pbDateTimeEntry) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = NegDeal.builder() .negDealNum(1L) .flags(2) .qty(3) .repoEntry(4) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.NegDeal.newBuilder() + .setNegDealNum(1L) + .setFlags(2) + .setQty(3) + .setRepoentry(4) + .build() + .toByteArray(); } @Test @@ -113,11 +176,11 @@ public void testSerialize() { } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { + public void testSerializeWithOnlyRequiredFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -129,10 +192,10 @@ public void testDeserialize() { } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + public void testDeserializeWithOnlyRequiredFields() { - final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInputWithEmptyNonRequiredStringFields); + final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From 7c33a6ad0559d23aca77448640ce41246b2be33c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 7 Sep 2018 23:47:18 +0300 Subject: [PATCH 206/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../serde/protobuf/NegTradePbSerdeTest.java | 97 ++++++++++++++++--- 1 file changed, 83 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java index ed49c94..9cceec0 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,19 +14,17 @@ public class NegTradePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static NegTrade expectedObject; private static byte[] expectedPbInput; - private static NegTrade expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static NegTrade expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = NegTradePbSerde.INSTANCE; expectedObject = NegTrade.builder() .tradeNum(1L) @@ -92,9 +89,72 @@ public static void globalSetup() { .exFlags(60) .confirmReport("61") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = NegTrade.builder() + expectedPbInput = QluaStructures.NegTrade.newBuilder() + .setTradeNum(1L) + .setTradeDate("2") + .setSettleDate("3") + .setFlags(4) + .setBrokerref("5") + .setFirmid("6") + .setAccount("7") + .setCpfirmid("8") + .setCpaccount("9") + .setPrice("10") + .setQty(11) + .setValue("12") + .setSettlecode("13") + .setReportNum("14") + .setCpreportNum("15") + .setAccruedint("16") + .setRepotradeno("17") + .setPrice1("18") + .setReporate("19") + .setPrice2("20") + .setClientCode("21") + .setTsComission("22") + .setBalance("23") + .setSettleTime("24") + .setAmount("25") + .setRepovalue("26") + .setRepoterm("27") + .setRepo2Value("28") + .setReturnValue("29") + .setDiscount("30") + .setLowerDiscount("31") + .setUpperDiscount("32") + .setBlockSecurities("33") + .setUrgencyFlag("34") + .setType(35) + .setOperationType(36) + .setExpectedDiscount("37") + .setExpectedQuantity("38") + .setExpectedRepovalue("39") + .setExpectedRepo2Value("40") + .setExpectedReturnValue("41") + .setOrderNum("42") + .setReportTradeDate("43") + .setSettled(44) + .setClearingType(45) + .setReportComission("46") + .setCouponPayment("47") + .setPrincipalPayment("48") + .setPrincipalPaymentDate("49") + .setNextdaysettle("50") + .setSettleCurrency("51") + .setSecCode("52") + .setClassCode("53") + .setCompval("54") + .setParenttradeno("55") + .setBankid("56") + .setBankaccid("57") + .setPrecisebalance("58") + .setConfirmtime("59") + .setExFlags(60) + .setConfirmreport("61") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = NegTrade.builder() .tradeNum(1L) .flags(2) .qty(3) @@ -104,8 +164,17 @@ public static void globalSetup() { .clearingType(7) .exFlags(8) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.NegTrade.newBuilder() + .setTradeNum(1L) + .setFlags(2) + .setQty(3) + .setType(4) + .setOperationType(5) + .setSettled(6) + .setClearingType(7) + .setExFlags(8) + .build() + .toByteArray(); } @Test @@ -119,9 +188,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -135,8 +204,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInputWithEmptyNonRequiredStringFields); + final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From d6c255118ccef51c381ba4c076391fd1560be029 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:07:21 +0300 Subject: [PATCH 207/549] Removed a SUT's self-dependency, which improves the test's correctness; fixed datetime pb serialization in OrderPbSerde. --- .../lua/rpc/serde/protobuf/OrderPbSerde.java | 18 +++- .../rpc/serde/protobuf/OrderPbSerdeTest.java | 92 ++++++++++++++++--- 2 files changed, 92 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java index 5e25a2e..8c5d1bd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java @@ -86,7 +86,7 @@ public Order convertFromPb(@NotNull QluaStructures.Order order) { @Override public QluaStructures.Order convertToPb(@NotNull final Order order) { - return QluaStructures.Order.newBuilder() + final QluaStructures.Order.Builder result = QluaStructures.Order.newBuilder() .setOrderNum( order.getOrderNum() ) .setFlags( order.getFlags() ) .setBrokerref( convertToPbString(order.getBrokerRef()) ) @@ -110,9 +110,19 @@ public QluaStructures.Order convertToPb(@NotNull final Order order) { .setLinkedorder( convertToPbString(order.getLinkedOrder()) ) .setExpiry( convertToPbString(order.getExpiry()) ) .setSecCode( convertToPbString(order.getSecCode()) ) - .setClassCode( convertToPbString(order.getClassCode()) ) - .setDatetime( order.getDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(order.getDatetime()) ) - .setWithdrawDatetime( order.getWithdrawDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(order.getWithdrawDatetime()) ) + .setClassCode( convertToPbString(order.getClassCode()) ); + + final DateTimeEntry dateTime = order.getDatetime(); + if (dateTime != null) { + result.setDatetime( DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTime) ); + } + + final DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); + if (withdrawDateTime != null) { + result.setWithdrawDatetime( DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(withdrawDateTime) ); + } + + return result .setBankAccId( convertToPbString(order.getBankAccId()) ) .setValueEntryType( order.getValueEntryType() ) .setRepoterm( convertToPbString(order.getRepoTerm()) ) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java index 093bf5f..caf57f4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,19 +15,17 @@ public class OrderPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static Order expectedObject; private static byte[] expectedPbInput; - private static Order expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static Order expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = OrderPbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = Order.builder() .orderNum(1L) @@ -86,9 +94,53 @@ public static void globalSetup() { .passiveOnlyOrder(41) .visible(42) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = Order.builder() + expectedPbInput = QluaStructures.Order.newBuilder() + .setOrderNum(1L) + .setFlags(2) + .setBrokerref("3") + .setUserid("4") + .setFirmid("5") + .setAccount("6") + .setPrice("7") + .setQty(8) + .setBalance("9") + .setValue("10") + .setAccruedint("11") + .setYield("12") + .setTransId("13") + .setClientCode("14") + .setPrice2("15") + .setSettlecode("16") + .setUid("17") + .setCanceledUid("18") + .setExchangeCode("19") + .setActivationTime("20") + .setLinkedorder("21") + .setExpiry("22") + .setSecCode("23") + .setClassCode("24") + .setDatetime(pbDateTimeEntry) + .setWithdrawDatetime(pbDateTimeEntry) + .setBankAccId("27") + .setValueEntryType(28) + .setRepoterm("29") + .setRepovalue("30") + .setRepo2Value("31") + .setRepoValueBalance("32") + .setStartDiscount("33") + .setRejectReason("34") + .setExtOrderFlags("35") + .setMinQty(36) + .setExecType(37) + .setSideQualifier(38) + .setAcntType(39) + .setCapacity(40) + .setPassiveOnlyOrder(41) + .setVisible(42) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = Order.builder() .orderNum(1L) .flags(2) .qty(8) @@ -101,8 +153,20 @@ public static void globalSetup() { .passiveOnlyOrder(41) .visible(42) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.Order.newBuilder() + .setOrderNum(1L) + .setFlags(2) + .setQty(8) + .setValueEntryType(28) + .setMinQty(36) + .setExecType(37) + .setSideQualifier(38) + .setAcntType(39) + .setCapacity(40) + .setPassiveOnlyOrder(41) + .setVisible(42) + .build() + .toByteArray(); } @Test @@ -116,9 +180,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -132,8 +196,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final Order actualObject = sut.deserialize(Order.class, expectedPbInputWithEmptyNonRequiredStringFields); + final Order actualObject = sut.deserialize(Order.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From fadaa360a224b9d3d689a4d7f970a1c04adfa4d8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:08:47 +0300 Subject: [PATCH 208/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/ParamEventInfoPbSerdeTest.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java index 3ab3c8f..5671a00 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,29 +14,30 @@ public class ParamEventInfoPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static ParamEventInfo expectedObject; private static byte[] expectedPbInput; - private static ParamEventInfo expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static ParamEventInfo expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = ParamEventInfoPbSerde.INSTANCE; expectedObject = ParamEventInfo.builder() .classCode("1") .secCode("2") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = ParamEventInfo.builder().build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInput = QluaStructures.ParamEventInfo.newBuilder() + .setClassCode("1") + .setSecCode("2") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = ParamEventInfo.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.ParamEventInfo.newBuilder().build().toByteArray(); } @Test @@ -51,9 +51,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -67,8 +67,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInputWithEmptyNonRequiredStringFields); + final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From ead011e8d83b0034fc8465c3e2825badcaeb43bc Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:10:04 +0300 Subject: [PATCH 209/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/QuoteEventInfoPbSerdeTest.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java index 54f4bac..248f786 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,29 +14,30 @@ public class QuoteEventInfoPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static QuoteEventInfo expectedObject; private static byte[] expectedPbInput; - private static QuoteEventInfo expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static QuoteEventInfo expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = QuoteEventInfoPbSerde.INSTANCE; expectedObject = QuoteEventInfo.builder() .classCode("1") .secCode("2") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = QuoteEventInfo.builder().build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInput = QluaStructures.QuoteEventInfo.newBuilder() + .setClassCode("1") + .setSecCode("2") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = QuoteEventInfo.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.QuoteEventInfo.newBuilder().build().toByteArray(); } @Test @@ -51,9 +51,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -67,8 +67,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInputWithEmptyNonRequiredStringFields); + final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From 86536b4679f4434e09882e2e04aa8eabe98945f3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:13:44 +0300 Subject: [PATCH 210/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/ResponseEnvelopePbSerdeTest.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java index 682ec51..4e6c500 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java @@ -2,8 +2,8 @@ import com.enfernuz.quik.lua.rpc.api.ServiceError; import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; import org.junit.BeforeClass; import org.junit.Test; @@ -16,7 +16,6 @@ public class ResponseEnvelopePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static ResponseEnvelope expectedObjectWithError; private static byte[] expectedPbInputForObjectWithError; @@ -28,13 +27,25 @@ public class ResponseEnvelopePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = ResponseEnvelopePbSerde.INSTANCE; expectedObjectWithError = ResponseEnvelope.withError(new ServiceError(1, "2")); - expectedPbInputForObjectWithError = pbConverter.convertToPb(expectedObjectWithError).toByteArray(); - - expectedObjectWithResult = ResponseEnvelope.withResult("some data".getBytes(StandardCharsets.UTF_8)); - expectedPbInputForObjectWithResult = pbConverter.convertToPb(expectedObjectWithResult).toByteArray(); + final ByteString pbError = qlua.rpc.RPC.Error.newBuilder() + .setCode(1) + .setMessage("2") + .build() + .toByteString(); + expectedPbInputForObjectWithError = qlua.rpc.RPC.Response.newBuilder() + .setIsError(true) + .setResult(pbError) + .build() + .toByteArray(); + + final byte[] data = "some data".getBytes(StandardCharsets.UTF_8); + expectedObjectWithResult = ResponseEnvelope.withResult(data); + expectedPbInputForObjectWithResult = qlua.rpc.RPC.Response.newBuilder() + .setResult( ByteString.copyFrom(data) ) + .build() + .toByteArray(); } @Test From a218c633b8f7f57bb12f3a77bfabd323c50819d9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:15:14 +0300 Subject: [PATCH 211/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../protobuf/ServiceErrorPbSerdeTest.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java index fbf010b..bce4d34 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -14,26 +13,30 @@ public class ServiceErrorPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static ServiceError expectedObject; private static byte[] expectedPbInput; - private static ServiceError expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static ServiceError expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = ServiceErrorPbSerde.INSTANCE; expectedObject = new ServiceError(500, "Ошибочка вышла."); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = new ServiceError(404, null); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInput = qlua.rpc.RPC.Error.newBuilder() + .setCode(500) + .setMessage("Ошибочка вышла.") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new ServiceError(404, null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.RPC.Error.newBuilder() + .setCode(404) + .build() + .toByteArray(); } @Test @@ -47,9 +50,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -63,8 +66,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInputWithEmptyNonRequiredStringFields); + final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From 322a328830979ecf00608c8cb0328f6cdd4dbc18 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:15:52 +0300 Subject: [PATCH 212/549] Removed a SUT's self-dependency, which improves the test's correctness. --- .../lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java index d6fee7b..b4c8cbd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -15,7 +14,6 @@ public class StopEventInfoPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static StopEventInfo expectedObject; private static byte[] expectedPbInput; @@ -24,10 +22,12 @@ public class StopEventInfoPbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = StopEventInfoPbSerde.INSTANCE; expectedObject = new StopEventInfo(1); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.StopEventInfo.newBuilder() + .setSignal(1) + .build() + .toByteArray(); } @Test From d88b97a4d3d63083d4e84ce16e8b3e1657aa0137 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:22:41 +0300 Subject: [PATCH 213/549] Removed a SUT's self-dependency, which improves the test's correctness; fixed datetime pb serialization in StopOrderPbSerde. --- .../rpc/serde/protobuf/StopOrderPbSerde.java | 20 +++-- .../serde/protobuf/StopOrderPbSerdeTest.java | 82 +++++++++++++++---- 2 files changed, 83 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java index 5ffdd7d..2489c91 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.Serde; @@ -71,7 +72,7 @@ public StopOrder convertFromPb(@NotNull QluaStructures.StopOrder stopOrder) { @Override public QluaStructures.StopOrder convertToPb(@NotNull final StopOrder stopOrder) { - return QluaStructures.StopOrder.newBuilder() + final QluaStructures.StopOrder.Builder result = QluaStructures.StopOrder.newBuilder() .setOrderNum( stopOrder.getOrderNum() ) .setOrdertime( convertToPbString(stopOrder.getOrderTime()) ) .setFlags( stopOrder.getFlags() ) @@ -105,9 +106,18 @@ public QluaStructures.StopOrder convertToPb(@NotNull final StopOrder stopOrder) .setClassCode( convertToPbString(stopOrder.getClassCode()) ) .setConditionSecCode( convertToPbString(stopOrder.getConditionSecCode()) ) .setConditionClassCode( convertToPbString(stopOrder.getConditionClassCode()) ) - .setCanceledUid( convertToPbString(stopOrder.getCanceledUid()) ) - .setOrderDateTime( convertToPbDateTimeEntry(stopOrder.getOrderDateTime()) ) - .setWithdrawDatetime( convertToPbDateTimeEntry(stopOrder.getWithdrawDateTime()) ) - .build(); + .setCanceledUid( convertToPbString(stopOrder.getCanceledUid()) ); + + final DateTimeEntry orderDateTime = stopOrder.getOrderDateTime(); + if (orderDateTime != null) { + result.setOrderDateTime( convertToPbDateTimeEntry(orderDateTime) ); + } + + final DateTimeEntry withdrawDateTime = stopOrder.getWithdrawDateTime(); + if (withdrawDateTime != null) { + result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); + } + + return result.build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java index 1d83a6e..44ad968 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,19 +15,17 @@ public class StopOrderPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static StopOrder expectedObject; private static byte[] expectedPbInput; - private static StopOrder expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static StopOrder expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = StopOrderPbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = StopOrder.builder() .orderNum(1L) @@ -80,9 +88,47 @@ public static void globalSetup() { .orderDateTime(dateTimeEntry) .withdrawDateTime(dateTimeEntry) .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = StopOrder.builder() + expectedPbInput = QluaStructures.StopOrder.newBuilder() + .setOrderNum(1L) + .setOrdertime("2") + .setFlags(3) + .setBrokerref("4") + .setFirmid("5") + .setAccount("6") + .setCondition(7) + .setConditionPrice("8") + .setPrice("9") + .setQty(10) + .setLinkedorder("11") + .setExpiry("12") + .setTransId("13") + .setClientCode("14") + .setCoOrderNum("15") + .setCoOrderPrice("16") + .setStopOrderType(17) + .setOrderdate("18") + .setAlltradeNum("19") + .setStopflags(20) + .setOffset("21") + .setSpread("22") + .setBalance("23") + .setUid("24") + .setFilledQty(25) + .setWithdrawTime("26") + .setConditionPrice2("27") + .setActiveFromTime("28") + .setActiveToTime("29") + .setSecCode("30") + .setClassCode("31") + .setConditionSecCode("32") + .setConditionClassCode("33") + .setCanceledUid("34") + .setOrderDateTime(pbDateTimeEntry) + .setWithdrawDatetime(pbDateTimeEntry) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = StopOrder.builder() .orderNum(1L) .flags(2) .condition(3) @@ -91,8 +137,16 @@ public static void globalSetup() { .stopFlags(6) .filledQty(7) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.StopOrder.newBuilder() + .setOrderNum(1L) + .setFlags(2) + .setCondition(3) + .setQty(4) + .setStopOrderType(5) + .setStopflags(6) + .setFilledQty(7) + .build() + .toByteArray(); } @Test @@ -106,9 +160,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -122,8 +176,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInputWithEmptyNonRequiredStringFields); + final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From ec3086660df623d9f9ab5a24e210363d36fb0055 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:27:27 +0300 Subject: [PATCH 214/549] Refactoring. --- .../lua/rpc/serde/protobuf/OrderPbSerde.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java index 8c5d1bd..6f5a945 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java @@ -11,16 +11,12 @@ import java.util.Objects; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; enum OrderPbSerde implements Serde, PbConverter { INSTANCE; - private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = - DateTimeEntryPbSerde.INSTANCE; - @Override public byte[] serialize(final Order firm) { return convertToPb(firm).toByteArray(); @@ -35,8 +31,6 @@ public Order deserialize(final byte[] data) { @Override public Order convertFromPb(@NotNull QluaStructures.Order order) { - final QluaStructures.DateTimeEntry dateTime = order.getDatetime(); - final QluaStructures.DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); return Order.builder() .orderNum( order.getOrderNum() ) .flags( order.getFlags() ) @@ -62,8 +56,8 @@ public Order convertFromPb(@NotNull QluaStructures.Order order) { .expiry( convertFromPbString(order.getExpiry()) ) .secCode( convertFromPbString(order.getSecCode()) ) .classCode( convertFromPbString(order.getClassCode()) ) - .datetime( Objects.equals(dateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTime) ) - .withdrawDatetime( Objects.equals(withdrawDateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(withdrawDateTime) ) + .datetime( convertFromPbDateTimeEntry(order.getDatetime()) ) + .withdrawDatetime( convertFromPbDateTimeEntry(order.getWithdrawDatetime()) ) .bankAccId( convertFromPbString(order.getBankAccId()) ) .valueEntryType( order.getValueEntryType() ) .repoTerm( convertFromPbString(order.getRepoterm()) ) @@ -114,12 +108,12 @@ public QluaStructures.Order convertToPb(@NotNull final Order order) { final DateTimeEntry dateTime = order.getDatetime(); if (dateTime != null) { - result.setDatetime( DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTime) ); + result.setDatetime( convertToPbDateTimeEntry(dateTime) ); } final DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); if (withdrawDateTime != null) { - result.setWithdrawDatetime( DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(withdrawDateTime) ); + result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); } return result From c113ce4f847cb423cc79c83a94e8a554b46b5c44 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:37:08 +0300 Subject: [PATCH 215/549] Removed a SUT's self-dependency, which improves the test's correctness; fixed datetime pb serialization in TradePbSerde. --- .../lua/rpc/serde/protobuf/TradePbSerde.java | 34 ++++---- .../rpc/serde/protobuf/TradePbSerdeTest.java | 77 +++++++++++++++++-- 2 files changed, 91 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java index 539bc41..f3cefc6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java @@ -11,16 +11,12 @@ import java.util.Objects; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; enum TradePbSerde implements Serde, PbConverter { INSTANCE; - private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = - DateTimeEntryPbSerde.INSTANCE; - @Override public byte[] serialize(final Trade trade) { return convertToPb(trade).toByteArray(); @@ -35,8 +31,6 @@ public Trade deserialize(final byte[] data) { @Override public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { - final QluaStructures.DateTimeEntry dateTime = trade.getDatetime(); - final QluaStructures.DateTimeEntry canceledDateTime = trade.getCanceledDatetime(); return Trade.builder() .tradeNum( trade.getTradeNum() ) .orderNum( trade.getOrderNum() ) @@ -74,7 +68,7 @@ public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { .stationId( convertFromPbString(trade.getStationId()) ) .secCode( convertFromPbString(trade.getSecCode()) ) .classCode( convertFromPbString(trade.getClassCode()) ) - .datetime(Objects.equals(dateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTime) ) + .datetime( convertFromPbDateTimeEntry(trade.getDatetime()) ) .bankAccId( convertFromPbString(trade.getBankAccId()) ) .brokerComission( convertFromPbString(trade.getBrokerComission()) ) .linkedTrade( convertFromPbString(trade.getLinkedTrade()) ) @@ -82,7 +76,7 @@ public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { .transId( convertFromPbString(trade.getTransId()) ) .kind( trade.getKind() ) .clearingBankAccId( convertFromPbString(trade.getClearingBankAccid()) ) - .canceledDatetime( Objects.equals(canceledDateTime, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(canceledDateTime) ) + .canceledDatetime( convertFromPbDateTimeEntry(trade.getCanceledDatetime()) ) .clearingFirmId( convertFromPbString(trade.getClearingFirmid()) ) .systemRef( convertFromPbString(trade.getSystemRef()) ) .uid( convertFromPbString(trade.getUid()) ) @@ -92,7 +86,7 @@ public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { @Override public QluaStructures.Trade convertToPb(@NotNull final Trade trade) { - return QluaStructures.Trade.newBuilder() + final QluaStructures.Trade.Builder result = QluaStructures.Trade.newBuilder() .setTradeNum( trade.getTradeNum() ) .setOrderNum( trade.getOrderNum() ) .setBrokerref( convertToPbString(trade.getBrokerRef()) ) @@ -128,16 +122,28 @@ public QluaStructures.Trade convertToPb(@NotNull final Trade trade) { .setExchangeCode( convertToPbString(trade.getExchangeCode()) ) .setStationId( convertToPbString(trade.getStationId()) ) .setSecCode( convertToPbString(trade.getSecCode()) ) - .setClassCode( convertToPbString(trade.getClassCode()) ) - .setDatetime( trade.getDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(trade.getDatetime())) + .setClassCode( convertToPbString(trade.getClassCode()) ); + + final DateTimeEntry datetime = trade.getDatetime(); + if (datetime != null) { + result.setDatetime( convertToPbDateTimeEntry(datetime) ); + } + + result .setBankAccId( convertToPbString(trade.getBankAccId()) ) .setBrokerComission( convertToPbString(trade.getBrokerComission()) ) .setLinkedTrade( convertToPbString(trade.getLinkedTrade()) ) .setPeriod( trade.getPeriod() ) .setTransId( convertToPbString(trade.getTransId()) ) .setKind( trade.getKind() ) - .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ) - .setCanceledDatetime( trade.getCanceledDatetime() == null ? QluaStructures.DateTimeEntry.getDefaultInstance() : DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(trade.getCanceledDatetime()) ) + .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ); + + final DateTimeEntry canceledDatetime = trade.getCanceledDatetime(); + if (canceledDatetime != null) { + result.setCanceledDatetime( convertToPbDateTimeEntry(canceledDatetime) ); + } + + return result .setClearingFirmid( convertToPbString(trade.getClearingFirmId()) ) .setSystemRef( convertToPbString(trade.getSystemRef()) ) .setUid( convertToPbString(trade.getUid()) ) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java index 9ea3957..0d8ba25 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.Trade; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,7 +15,6 @@ public class TradePbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static Trade expectedObject; private static byte[] expectedPbInput; @@ -28,7 +26,6 @@ public class TradePbSerdeTest { public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = TradePbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = Trade.builder() .tradeNum(1L) @@ -92,7 +100,57 @@ public static void globalSetup() { .systemRef("47") .uid("48") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); + expectedPbInput = QluaStructures.Trade.newBuilder() + .setTradeNum(1L) + .setOrderNum(2L) + .setBrokerref("3") + .setUserid("4") + .setFirmid("5") + .setCanceledUid("6") + .setAccount("7") + .setPrice("8") + .setQty(9) + .setValue("10") + .setAccruedint("11") + .setYield("12") + .setSettlecode("13") + .setCpfirmid("14") + .setFlags(15) + .setPrice2("16") + .setReporate("17") + .setClientCode("18") + .setAccrued2("19") + .setRepoterm("20") + .setRepovalue("21") + .setRepo2Value("22") + .setStartDiscount("23") + .setLowerDiscount("24") + .setUpperDiscount("25") + .setBlockSecurities("26") + .setClearingComission("27") + .setExchangeComission("28") + .setTechCenterComission("29") + .setSettleDate("30") + .setSettleCurrency("31") + .setTradeCurrency("32") + .setExchangeCode("33") + .setStationId("34") + .setSecCode("35") + .setClassCode("36") + .setDatetime(pbDateTimeEntry) + .setBankAccId("38") + .setBrokerComission("39") + .setLinkedTrade("40") + .setPeriod(41) + .setTransId("42") + .setKind(43) + .setClearingBankAccid("44") + .setCanceledDatetime(pbDateTimeEntry) + .setClearingFirmid("46") + .setSystemRef("47") + .setUid("48") + .build() + .toByteArray(); expectedObjectWithNullNonRequiredStringFileds = Trade.builder() .tradeNum(1L) @@ -102,8 +160,15 @@ public static void globalSetup() { .period(5) .kind(6) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.Trade.newBuilder() + .setTradeNum(1L) + .setOrderNum(2L) + .setQty(3) + .setFlags(4) + .setPeriod(5) + .setKind(6) + .build() + .toByteArray(); } @Test From f423f4c4986f085e2da29f739ab4a1e247e3ae3b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 00:41:13 +0300 Subject: [PATCH 216/549] Removed a SUT's self-dependency, which improves the test's correctness; fixed datetime pb serialization in TransReplyPbSerde. --- .../rpc/serde/protobuf/TransReplyPbSerde.java | 13 +++- .../serde/protobuf/TransReplyPbSerdeTest.java | 60 ++++++++++++++----- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java index 8f233cd..a7cd715 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.TransReply; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.Serde; @@ -53,11 +54,17 @@ public TransReply convertFromPb(@NotNull QluaStructures.Transaction transaction) @Override public QluaStructures.Transaction convertToPb(@NotNull final TransReply transReply) { - return QluaStructures.Transaction.newBuilder() + final QluaStructures.Transaction.Builder result = QluaStructures.Transaction.newBuilder() .setTransId( transReply.getTransId() ) .setStatus( transReply.getStatus() ) - .setResultMsg( convertToPbString(transReply.getResultMsg()) ) - .setDateTime( convertToPbDateTimeEntry(transReply.getDateTime()) ) + .setResultMsg( convertToPbString(transReply.getResultMsg()) ); + + final DateTimeEntry dateTime = transReply.getDateTime(); + if (dateTime != null) { + result.setDateTime( convertToPbDateTimeEntry(dateTime) ); + } + + return result .setUid( convertToPbString(transReply.getUid()) ) .setFlags( transReply.getFlags() ) .setServerTransId( convertToPbString(transReply.getServerTransId()) ) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java index 5061bb2..a4d515f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java @@ -2,7 +2,6 @@ import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.TransReply; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import org.junit.BeforeClass; import org.junit.Test; @@ -16,19 +15,17 @@ public class TransReplyPbSerdeTest { private static SerdeModule sut; - private static PbConverter pbConverter; private static TransReply expectedObject; private static byte[] expectedPbInput; - private static TransReply expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static TransReply expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - pbConverter = TransReplyPbSerde.INSTANCE; final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() .mcs(1) @@ -41,6 +38,17 @@ public static void globalSetup() { .month(8) .year(9) .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); expectedObject = TransReply.builder() .transId(1L) @@ -62,15 +70,39 @@ public static void globalSetup() { .secCode("17") .exchangeCode("18") .build(); - expectedPbInput = pbConverter.convertToPb(expectedObject).toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = TransReply.builder() + expectedPbInput = QluaStructures.Transaction.newBuilder() + .setTransId(1L) + .setStatus(2) + .setResultMsg("3") + .setDateTime(pbDateTimeEntry) + .setUid("5") + .setFlags(6) + .setServerTransId("7") + .setOrderNum("8") + .setPrice("9") + .setQuantity("10") + .setBalance("11") + .setFirmId("12") + .setAccount("13") + .setClientCode("14") + .setBrokerref("15") + .setClassCode("16") + .setSecCode("17") + .setExchangeCode("18") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = TransReply.builder() .transId(1L) .status(2) .flags(3) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = - pbConverter.convertToPb(expectedObjectWithNullNonRequiredStringFileds).toByteArray(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.Transaction.newBuilder() + .setTransId(1L) + .setStatus(2) + .setFlags(3) + .build() + .toByteArray(); } @Test @@ -84,9 +116,9 @@ public void testSerialize() { @Test public void testSerializePbInputWithEmptyNonRequiredStringFields() { - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); } @Test @@ -100,8 +132,8 @@ public void testDeserialize() { @Test public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInputWithEmptyNonRequiredStringFields); + final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInputWithOnlyRequiredFields); - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); } } From 17c650dda57861fe356b6dbaaf0b7b0fe171f6b8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 02:02:09 +0300 Subject: [PATCH 217/549] Added a protobuf serde facility for AddLabel; fixed null cases for AddLabel.Request. --- .../quik/lua/rpc/api/messages/AddLabel.java | 6 +- .../protobuf/AddLabelRequestPbSerde.java | 57 ++++++++++++++++ .../serde/protobuf/AddLabelResultPbSerde.java | 37 ++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../protobuf/AddLabelRequestPbSerdeTest.java | 67 +++++++++++++++++++ .../protobuf/AddLabelResultPbSerdeTest.java | 47 +++++++++++++ 6 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java index aab7321..fce85ae 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java @@ -10,6 +10,8 @@ import java.util.Map; +import static java.util.Collections.emptyMap; + public final class AddLabel { private AddLabel() {} @@ -21,9 +23,9 @@ public static class Request { @NonNull Map labelParams; @Builder - private Request(final String chartTag, final Map labelParams) { + private Request(@NonNull final String chartTag, final Map labelParams) { this.chartTag = chartTag; - this.labelParams = ImmutableMap.copyOf(labelParams); + this.labelParams = (labelParams == null) ? emptyMap() : ImmutableMap.copyOf(labelParams); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java new file mode 100644 index 0000000..d08cb4d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum AddLabelRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final AddLabel.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( RPC.ProcedureType.ADD_LABEL.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddLabel.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), RPC.ProcedureType.ADD_LABEL); + + return convertFromPb( + qlua.rpc.AddLabel.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public AddLabel.Request convertFromPb(@NotNull final qlua.rpc.AddLabel.Request request) { + + return AddLabel.Request.builder() + .chartTag( request.getChartTag() ) + .labelParams( request.getLabelParamsMap() ) + .build(); + } + + @Override + public qlua.rpc.AddLabel.Request convertToPb(@NotNull final AddLabel.Request request) { + + return qlua.rpc.AddLabel.Request.newBuilder() + .setChartTag( request.getChartTag() ) + .putAllLabelParams( request.getLabelParams() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java new file mode 100644 index 0000000..350a02c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AddLabelResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final AddLabel.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddLabel.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.AddLabel.Result.parseFrom(data) ); + } + + @Override + public AddLabel.Result convertFromPb(@NotNull final qlua.rpc.AddLabel.Result result) { + return new AddLabel.Result( result.getLabelId() ); + } + + @Override + public qlua.rpc.AddLabel.Result convertToPb(@NotNull final AddLabel.Result result) { + return qlua.rpc.AddLabel.Result.newBuilder() + .setLabelId( result.getLabelId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 684f624..5756805 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.ServiceError; import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; @@ -109,6 +110,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); registerSerde(result, AddColumn.Request.class, AddColumnRequestPbSerde.INSTANCE); registerSerde(result, AddColumn.Result.class, AddColumnResultPbSerde.INSTANCE); + registerSerde(result, AddLabel.Request.class, AddLabelRequestPbSerde.INSTANCE); + registerSerde(result, AddLabel.Result.class, AddLabelResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java new file mode 100644 index 0000000..517f708 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.common.collect.ImmutableMap; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AddLabelRequestPbSerdeTest { + + private static SerdeModule sut; + + private static AddLabel.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final Map labelParams = + ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + ); + expectedObject = AddLabel.Request.builder() + .chartTag("1") + .labelParams(labelParams) + .build(); + final ByteString pbArgs = qlua.rpc.AddLabel.Request.newBuilder() + .setChartTag("1") + .putAllLabelParams(labelParams) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.ADD_LABEL) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final AddLabel.Request actualObject = sut.deserialize(AddLabel.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java new file mode 100644 index 0000000..6d78dde --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AddLabelResultPbSerdeTest { + + private static SerdeModule sut; + + private static AddLabel.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new AddLabel.Result(1); + expectedPbInput = qlua.rpc.AddLabel.Result.newBuilder() + .setLabelId(1) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final AddLabel.Result actualObject = sut.deserialize(AddLabel.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From e753b65bc21541dcd7450942c85f91ce8078dc7b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 02:13:13 +0300 Subject: [PATCH 218/549] Added a protobuf serde facility for AllocTable. --- .../protobuf/AllocTableRequestPbSerde.java | 41 ++++++++++++++++ .../protobuf/AllocTableResultPbSerde.java | 37 ++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 ++ .../AllocTableRequestPbSerdeTest.java | 49 +++++++++++++++++++ .../protobuf/AllocTableResultPbSerdeTest.java | 47 ++++++++++++++++++ 5 files changed, 177 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java new file mode 100644 index 0000000..fdb7992 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum AllocTableRequestPbSerde implements Serde { + + INSTANCE; + + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final AllocTable.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AllocTable.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), RPC.ProcedureType.ALLOC_TABLE); + + return AllocTable.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( RPC.ProcedureType.ALLOC_TABLE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java new file mode 100644 index 0000000..59f55b1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AllocTableResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final AllocTable.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AllocTable.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.AllocTable.Result.parseFrom(data) ); + } + + @Override + public AllocTable.Result convertFromPb(@NotNull final qlua.rpc.AllocTable.Result result) { + return new AllocTable.Result( result.getTId() ); + } + + @Override + public qlua.rpc.AllocTable.Result convertToPb(@NotNull final AllocTable.Result result) { + return qlua.rpc.AllocTable.Result.newBuilder() + .setTId( result.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 5756805..c9bf8f8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.ServiceError; import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; import com.enfernuz.quik.lua.rpc.api.messages.Message; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; @@ -112,6 +113,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AddColumn.Result.class, AddColumnResultPbSerde.INSTANCE); registerSerde(result, AddLabel.Request.class, AddLabelRequestPbSerde.INSTANCE); registerSerde(result, AddLabel.Result.class, AddLabelResultPbSerde.INSTANCE); + registerSerde(result, AllocTable.Request.class, AllocTableRequestPbSerde.INSTANCE); + registerSerde(result, AllocTable.Result.class, AllocTableResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java new file mode 100644 index 0000000..cc478a4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AllocTableRequestPbSerdeTest { + + private static SerdeModule sut; + + private static AllocTable.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = AllocTable.Request.INSTANCE; + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.ALLOC_TABLE) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final AllocTable.Request actualObject = sut.deserialize(AllocTable.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java new file mode 100644 index 0000000..80572d8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class AllocTableResultPbSerdeTest { + + private static SerdeModule sut; + + private static AllocTable.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new AllocTable.Result(1); + expectedPbInput = qlua.rpc.AllocTable.Result.newBuilder() + .setTId(1) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final AllocTable.Result actualObject = sut.deserialize(AllocTable.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From fafce67520bfdab1b4b2bc490eb42517e084162f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 02:24:30 +0300 Subject: [PATCH 219/549] Added a protobuf serde facility for CalcBuySell. --- .../protobuf/CalcBuySellRequestPbSerde.java | 69 +++++++++++++++++++ .../protobuf/CalcBuySellResultPbSerde.java | 38 ++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 7 +- .../CalcBuySellRequestPbSerdeTest.java | 69 +++++++++++++++++++ .../CalcBuySellResultPbSerdeTest.java | 48 +++++++++++++ 5 files changed, 227 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java new file mode 100644 index 0000000..a09585d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum CalcBuySellRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CALC_BUY_SELL; + + @Override + public byte[] serialize(final CalcBuySell.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CalcBuySell.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.CalcBuySell.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public CalcBuySell.Request convertFromPb(@NotNull final qlua.rpc.CalcBuySell.Request request) { + + return CalcBuySell.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .clientCode( request.getClientCode() ) + .account( request.getAccount() ) + .price( request.getPrice() ) + .isBuy( request.getIsBuy() ) + .isMarket( request.getIsMarket() ) + .build(); + } + + @Override + public qlua.rpc.CalcBuySell.Request convertToPb(@NotNull final CalcBuySell.Request request) { + + return qlua.rpc.CalcBuySell.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setClientCode( request.getClientCode() ) + .setAccount( request.getAccount() ) + .setPrice( request.getPrice() ) + .setIsBuy( request.isBuy() ) + .setIsMarket( request.isMarket() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java new file mode 100644 index 0000000..f016d6e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CalcBuySellResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final CalcBuySell.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CalcBuySell.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.CalcBuySell.Result.parseFrom(data) ); + } + + @Override + public CalcBuySell.Result convertFromPb(@NotNull final qlua.rpc.CalcBuySell.Result result) { + return new CalcBuySell.Result(result.getQty(), result.getComission()); + } + + @Override + public qlua.rpc.CalcBuySell.Result convertToPb(@NotNull final CalcBuySell.Result result) { + return qlua.rpc.CalcBuySell.Result.newBuilder() + .setQty( result.getQty() ) + .setComission( result.getComission() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index c9bf8f8..7587f05 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,10 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.Serde; @@ -115,6 +112,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AddLabel.Result.class, AddLabelResultPbSerde.INSTANCE); registerSerde(result, AllocTable.Request.class, AllocTableRequestPbSerde.INSTANCE); registerSerde(result, AllocTable.Result.class, AllocTableResultPbSerde.INSTANCE); + registerSerde(result, CalcBuySell.Request.class, CalcBuySellRequestPbSerde.INSTANCE); + registerSerde(result, CalcBuySell.Result.class, CalcBuySellResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java new file mode 100644 index 0000000..1bf905a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CalcBuySellRequestPbSerdeTest { + + private static SerdeModule sut; + + private static CalcBuySell.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = CalcBuySell.Request.builder() + .classCode("1") + .secCode("2") + .clientCode("3") + .account("4") + .price("5") + .isBuy(true) + .isMarket(true) + .build(); + final ByteString pbArgs = qlua.rpc.CalcBuySell.Request.newBuilder() + .setClassCode("1") + .setSecCode("2") + .setClientCode("3") + .setAccount("4") + .setPrice("5") + .setIsBuy(true) + .setIsMarket(true) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.CALC_BUY_SELL) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CalcBuySell.Request actualObject = sut.deserialize(CalcBuySell.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java new file mode 100644 index 0000000..f3af229 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CalcBuySellResultPbSerdeTest { + + private static SerdeModule sut; + + private static CalcBuySell.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new CalcBuySell.Result(1, "2"); + expectedPbInput = qlua.rpc.CalcBuySell.Result.newBuilder() + .setQty(1) + .setComission("2") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CalcBuySell.Result actualObject = sut.deserialize(CalcBuySell.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 4fffc558305af87585ea76e1b1b02320b70ff394 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 13:28:14 +0300 Subject: [PATCH 220/549] Added a protobuf serde facility for CancelParamRequest. --- .../CancelParamRequestRequestPbSerde.java | 61 +++++++++++++++++++ .../CancelParamRequestResultPbSerde.java | 37 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../CancelParamRequestRequestPbSerdeTest.java | 61 +++++++++++++++++++ .../CancelParamRequestResultPbSerdeTest.java | 47 ++++++++++++++ 5 files changed, 208 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java new file mode 100644 index 0000000..15775a3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum CancelParamRequestRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CANCEL_PARAM_REQUEST; + + @Override + public byte[] serialize(final CancelParamRequest.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CancelParamRequest.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.CancelParamRequest.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public CancelParamRequest.Request convertFromPb(@NotNull final qlua.rpc.CancelParamRequest.Request request) { + + return CancelParamRequest.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .dbName( request.getDbName() ) + .build(); + } + + @Override + public qlua.rpc.CancelParamRequest.Request convertToPb(@NotNull final CancelParamRequest.Request request) { + + return qlua.rpc.CancelParamRequest.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setDbName( request.getDbName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java new file mode 100644 index 0000000..c6b6d24 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CancelParamRequestResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final CancelParamRequest.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CancelParamRequest.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.CancelParamRequest.Result.parseFrom(data) ); + } + + @Override + public CancelParamRequest.Result convertFromPb(@NotNull final qlua.rpc.CancelParamRequest.Result result) { + return new CancelParamRequest.Result( result.getResult() ); + } + + @Override + public qlua.rpc.CancelParamRequest.Result convertToPb(@NotNull final CancelParamRequest.Result result) { + return qlua.rpc.CancelParamRequest.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 7587f05..aeada02 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -114,6 +114,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, AllocTable.Result.class, AllocTableResultPbSerde.INSTANCE); registerSerde(result, CalcBuySell.Request.class, CalcBuySellRequestPbSerde.INSTANCE); registerSerde(result, CalcBuySell.Result.class, CalcBuySellResultPbSerde.INSTANCE); + registerSerde(result, CancelParamRequest.Request.class, CancelParamRequestRequestPbSerde.INSTANCE); + registerSerde(result, CancelParamRequest.Result.class, CancelParamRequestResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java new file mode 100644 index 0000000..cb5058e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CancelParamRequestRequestPbSerdeTest { + + private static SerdeModule sut; + + private static CancelParamRequest.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = CancelParamRequest.Request.builder() + .classCode("1") + .secCode("2") + .dbName("3") + .build(); + final ByteString pbArgs = qlua.rpc.CancelParamRequest.Request.newBuilder() + .setClassCode("1") + .setSecCode("2") + .setDbName("3") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.CANCEL_PARAM_REQUEST) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CancelParamRequest.Request actualObject = sut.deserialize(CancelParamRequest.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java new file mode 100644 index 0000000..db3f781 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CancelParamRequestResultPbSerdeTest { + + private static SerdeModule sut; + + private static CancelParamRequest.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new CancelParamRequest.Result(true); + expectedPbInput = qlua.rpc.CancelParamRequest.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CancelParamRequest.Result actualObject = sut.deserialize(CancelParamRequest.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 02cdbae0db15ff4ff47085c6a3b6b0683ed7d8b8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 13:41:43 +0300 Subject: [PATCH 221/549] Added a protobuf serde facility for Clear; made an optimization in the instantiation of Clear.Result. --- .../quik/lua/rpc/api/messages/Clear.java | 19 ++++++- .../jackson/ClearResultJsonDeserializer.java | 2 +- .../serde/protobuf/ClearRequestPbSerde.java | 54 ++++++++++++++++++ .../serde/protobuf/ClearResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/ClearRequestPbSerdeTest.java | 55 +++++++++++++++++++ .../protobuf/ClearResultPbSerdeTest.java | 47 ++++++++++++++++ 7 files changed, 214 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java index df47cdd..ed6b2cb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.Contract; public final class Clear { @@ -23,7 +25,16 @@ public String toString() { @Value public static class Result { - boolean result; + private final boolean result; + + @Contract(pure = true) + public static Result getInstance(final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { + this.result = result; + } @Override public String toString() { @@ -31,5 +42,11 @@ public String toString() { .add("result", result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java index 29982ba..153a8bd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java @@ -14,6 +14,6 @@ final class ClearResultJsonDeserializer extends JsonDeserializer { public Clear.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { final JsonNode node = p.getCodec().readTree(p); - return new Clear.Result( node.get("result").asBoolean() ); + return Clear.Result.getInstance( node.get("result").asBoolean() ); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java new file mode 100644 index 0000000..6c2eeb5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum ClearRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CLEAR; + + @Override + public byte[] serialize(final Clear.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Clear.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.Clear.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public Clear.Request convertFromPb(@NotNull final qlua.rpc.Clear.Request request) { + return new Clear.Request( request.getTId() ); + } + + @Override + public qlua.rpc.Clear.Request convertToPb(@NotNull final Clear.Request request) { + + return qlua.rpc.Clear.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java new file mode 100644 index 0000000..31082d6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum ClearResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Clear.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Clear.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.Clear.Result.parseFrom(data) ); + } + + @Override + public Clear.Result convertFromPb(@NotNull final qlua.rpc.Clear.Result result) { + return Clear.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.Clear.Result convertToPb(@NotNull final Clear.Result result) { + return qlua.rpc.Clear.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index aeada02..65cb3e4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -116,6 +116,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, CalcBuySell.Result.class, CalcBuySellResultPbSerde.INSTANCE); registerSerde(result, CancelParamRequest.Request.class, CancelParamRequestRequestPbSerde.INSTANCE); registerSerde(result, CancelParamRequest.Result.class, CancelParamRequestResultPbSerde.INSTANCE); + registerSerde(result, Clear.Request.class, ClearRequestPbSerde.INSTANCE); + registerSerde(result, Clear.Result.class, ClearResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java new file mode 100644 index 0000000..fc53d80 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ClearRequestPbSerdeTest { + + private static SerdeModule sut; + + private static Clear.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new Clear.Request(1); + final ByteString pbArgs = qlua.rpc.Clear.Request.newBuilder() + .setTId(1) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.CLEAR) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final Clear.Request actualObject = sut.deserialize(Clear.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java new file mode 100644 index 0000000..af48231 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ClearResultPbSerdeTest { + + private static SerdeModule sut; + + private static Clear.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = Clear.Result.getInstance(true); + expectedPbInput = qlua.rpc.Clear.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final Clear.Result actualObject = sut.deserialize(Clear.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From c7d93af0b446161b0b3b139a0fbd40bbbe046115 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 13:44:33 +0300 Subject: [PATCH 222/549] Placed assertions just in case. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java index ed6b2cb..6695f7c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java @@ -47,6 +47,12 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); + + // just in case + static { + assert TRUE.result == true; + assert FALSE.result == false; + } } } } From f26d28c67ccacd81991437c4befb17ef53c1e1fa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 13:45:41 +0300 Subject: [PATCH 223/549] Removed unused import and unnecessary access modifier. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java index 6695f7c..fc895ba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.google.common.base.MoreObjects; -import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; @@ -25,7 +24,7 @@ public String toString() { @Value public static class Result { - private final boolean result; + boolean result; @Contract(pure = true) public static Result getInstance(final boolean result) { From b63405f8a778f84fe7dcabb03555fe6b166cdf06 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 13:50:35 +0300 Subject: [PATCH 224/549] Added a protobuf serde facility for CreateWindow. --- .../protobuf/CreateWindowRequestPbSerde.java | 54 ++++++++++++++++++ .../protobuf/CreateWindowResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../CreateWindowRequestPbSerdeTest.java | 55 +++++++++++++++++++ .../CreateWindowResultPbSerdeTest.java | 47 ++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java new file mode 100644 index 0000000..ac90931 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum CreateWindowRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CREATE_WINDOW; + + @Override + public byte[] serialize(final CreateWindow.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CreateWindow.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.CreateWindow.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public CreateWindow.Request convertFromPb(@NotNull final qlua.rpc.CreateWindow.Request request) { + return new CreateWindow.Request( request.getTId() ); + } + + @Override + public qlua.rpc.CreateWindow.Request convertToPb(@NotNull final CreateWindow.Request request) { + + return qlua.rpc.CreateWindow.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java new file mode 100644 index 0000000..0733c18 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CreateWindowResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final CreateWindow.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CreateWindow.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.CreateWindow.Result.parseFrom(data) ); + } + + @Override + public CreateWindow.Result convertFromPb(@NotNull final qlua.rpc.CreateWindow.Result result) { + return new CreateWindow.Result( result.getResult() ); + } + + @Override + public qlua.rpc.CreateWindow.Result convertToPb(@NotNull final CreateWindow.Result result) { + return qlua.rpc.CreateWindow.Result.newBuilder() + .setResult( result.getResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 65cb3e4..7ce79df 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -118,6 +118,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, CancelParamRequest.Result.class, CancelParamRequestResultPbSerde.INSTANCE); registerSerde(result, Clear.Request.class, ClearRequestPbSerde.INSTANCE); registerSerde(result, Clear.Result.class, ClearResultPbSerde.INSTANCE); + registerSerde(result, CreateWindow.Request.class, CreateWindowRequestPbSerde.INSTANCE); + registerSerde(result, CreateWindow.Result.class, CreateWindowResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java new file mode 100644 index 0000000..32835eb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CreateWindowRequestPbSerdeTest { + + private static SerdeModule sut; + + private static CreateWindow.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new CreateWindow.Request(1); + final ByteString pbArgs = qlua.rpc.CreateWindow.Request.newBuilder() + .setTId(1) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.CREATE_WINDOW) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CreateWindow.Request actualObject = sut.deserialize(CreateWindow.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java new file mode 100644 index 0000000..cdebc98 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CreateWindowResultPbSerdeTest { + + private static SerdeModule sut; + + private static CreateWindow.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new CreateWindow.Result(1); + expectedPbInput = qlua.rpc.CreateWindow.Result.newBuilder() + .setResult(1) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CreateWindow.Result actualObject = sut.deserialize(CreateWindow.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From c861da6b19d71959cb4f6f06ecd89dfd99f53dc2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 14:39:00 +0300 Subject: [PATCH 225/549] Added a protobuf serde facility for DelAllLabels; changed some methods of the QluaRpcClient interface to make them return a primitive value instead of object in which it's boxed: this will reduce verbosity on the client side. --- .../quik/lua/rpc/api/QluaRpcClient.java | 14 ++--- .../lua/rpc/api/messages/DelAllLabels.java | 21 +++++++ .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 28 +++++----- .../DelAllLabelsResultJsonDeserializer.java | 2 +- .../protobuf/DelAllLabelsRequestPbSerde.java | 54 ++++++++++++++++++ .../protobuf/DelAllLabelsResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../DelAllLabelsRequestPbSerdeTest.java | 55 +++++++++++++++++++ .../DelAllLabelsResultPbSerdeTest.java | 47 ++++++++++++++++ 9 files changed, 238 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index ea4ccbb..f6d66f9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -21,20 +21,20 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - AddColumn.Result qlua_AddColumn(AddColumn.Request request); + int qlua_AddColumn(AddColumn.Request request); /** * * @param request * @return */ - AddLabel.Result qlua_AddLabel(AddLabel.Request request); + int qlua_AddLabel(AddLabel.Request request); /** * * @return */ - AllocTable.Result qlua_AllocTable(); + int qlua_AllocTable(); /** * @@ -48,28 +48,28 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - CancelParamRequest.Result qlua_CancelParamRequest(CancelParamRequest.Request request); + boolean qlua_CancelParamRequest(CancelParamRequest.Request request); /** * * @param request * @return */ - Clear.Result qlua_Clear(Clear.Request request); + boolean qlua_Clear(Clear.Request request); /** * * @param request * @return */ - CreateWindow.Result qlua_CreateWindow(CreateWindow.Request request); + int qlua_CreateWindow(CreateWindow.Request request); /** * * @param request * @return */ - DelAllLabels.Result qlua_DelAllLabels(DelAllLabels.Request request); + boolean qlua_DelAllLabels(DelAllLabels.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java index ab6cadb..4f716ab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java @@ -3,6 +3,7 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; public final class DelAllLabels { @@ -26,11 +27,31 @@ public static class Result { boolean result; + @Contract(pure = true) + public static Result getInstance(final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) .add("result", result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + static { + assert TRUE.result == true; + assert FALSE.result == false; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 93b7fe1..c710c36 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -92,18 +92,18 @@ void deinitializeIO() { } @Override - public AddColumn.Result qlua_AddColumn(final AddColumn.Request request) { - return makeRPC(request, AddColumn.Result.class); + public int qlua_AddColumn(final AddColumn.Request request) { + return makeRPC(request, AddColumn.Result.class).getResult(); } @Override - public AddLabel.Result qlua_AddLabel(final AddLabel.Request request) { - return makeRPC(request, AddLabel.Result.class); + public int qlua_AddLabel(final AddLabel.Request request) { + return makeRPC(request, AddLabel.Result.class).getLabelId(); } @Override - public AllocTable.Result qlua_AllocTable() { - return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class); + public int qlua_AllocTable() { + return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class).getTId(); } @Override @@ -112,23 +112,23 @@ public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { } @Override - public CancelParamRequest.Result qlua_CancelParamRequest(final CancelParamRequest.Request request) { - return makeRPC(request, CancelParamRequest.Result.class); + public boolean qlua_CancelParamRequest(final CancelParamRequest.Request request) { + return makeRPC(request, CancelParamRequest.Result.class).isResult(); } @Override - public Clear.Result qlua_Clear(final Clear.Request request) { - return makeRPC(request, Clear.Result.class); + public boolean qlua_Clear(final Clear.Request request) { + return makeRPC(request, Clear.Result.class).isResult(); } @Override - public CreateWindow.Result qlua_CreateWindow(final CreateWindow.Request request) { - return makeRPC(request, CreateWindow.Result.class); + public int qlua_CreateWindow(final CreateWindow.Request request) { + return makeRPC(request, CreateWindow.Result.class).getResult(); } @Override - public DelAllLabels.Result qlua_DelAllLabels(final DelAllLabels.Request request) { - return makeRPC(request, DelAllLabels.Result.class); + public boolean qlua_DelAllLabels(final DelAllLabels.Request request) { + return makeRPC(request, DelAllLabels.Result.class).isResult(); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java index b21ec36..307670a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java @@ -14,6 +14,6 @@ final class DelAllLabelsResultJsonDeserializer extends JsonDeserializer, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DEL_ALL_LABELS; + + @Override + public byte[] serialize(final DelAllLabels.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelAllLabels.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.DelAllLabels.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public DelAllLabels.Request convertFromPb(@NotNull final qlua.rpc.DelAllLabels.Request request) { + return new DelAllLabels.Request( request.getChartTag() ); + } + + @Override + public qlua.rpc.DelAllLabels.Request convertToPb(@NotNull final DelAllLabels.Request request) { + + return qlua.rpc.DelAllLabels.Request.newBuilder() + .setChartTag( request.getChartTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java new file mode 100644 index 0000000..194c29c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DelAllLabelsResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DelAllLabels.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelAllLabels.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.DelAllLabels.Result.parseFrom(data) ); + } + + @Override + public DelAllLabels.Result convertFromPb(@NotNull final qlua.rpc.DelAllLabels.Result result) { + return DelAllLabels.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.DelAllLabels.Result convertToPb(@NotNull final DelAllLabels.Result result) { + return qlua.rpc.DelAllLabels.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 7ce79df..18825e7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -120,6 +120,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, Clear.Result.class, ClearResultPbSerde.INSTANCE); registerSerde(result, CreateWindow.Request.class, CreateWindowRequestPbSerde.INSTANCE); registerSerde(result, CreateWindow.Result.class, CreateWindowResultPbSerde.INSTANCE); + registerSerde(result, DelAllLabels.Request.class, DelAllLabelsRequestPbSerde.INSTANCE); + registerSerde(result, DelAllLabels.Result.class, DelAllLabelsResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java new file mode 100644 index 0000000..d2cd32b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DelAllLabelsRequestPbSerdeTest { + + private static SerdeModule sut; + + private static DelAllLabels.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new DelAllLabels.Request("1"); + final ByteString pbArgs = qlua.rpc.DelAllLabels.Request.newBuilder() + .setChartTag("1") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.DEL_ALL_LABELS) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DelAllLabels.Request actualObject = sut.deserialize(DelAllLabels.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java new file mode 100644 index 0000000..d745c50 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DelAllLabelsResultPbSerdeTest { + + private static SerdeModule sut; + + private static DelAllLabels.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = DelAllLabels.Result.getInstance(true); + expectedPbInput = qlua.rpc.DelAllLabels.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DelAllLabels.Result actualObject = sut.deserialize(DelAllLabels.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 7e31a253a7534de8877413a72689b9cca064706f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 14:50:18 +0300 Subject: [PATCH 226/549] Added a protobuf serde facility for DeleteRow; made an optimization in the instantiation of DeleteRow.Result. --- .../quik/lua/rpc/api/messages/DeleteRow.java | 20 +++++++ .../DeleteRowResultJsonDeserializer.java | 2 +- .../protobuf/DeleteRowRequestPbSerde.java | 55 ++++++++++++++++++ .../protobuf/DeleteRowResultPbSerde.java | 37 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/DeleteRowRequestPbSerdeTest.java | 56 +++++++++++++++++++ .../protobuf/DeleteRowResultPbSerdeTest.java | 47 ++++++++++++++++ 7 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java index 279796a..a5c5cf9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java @@ -27,11 +27,31 @@ public static class Result { boolean result; + public static Result getInstance(final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) .add("result", result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // just in case + static { + assert TRUE.result == true; + assert FALSE.result == false; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java index 14c76b9..43c184e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java @@ -14,6 +14,6 @@ final class DeleteRowResultJsonDeserializer extends JsonDeserializer, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DELETE_ROW; + + @Override + public byte[] serialize(final DeleteRow.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DeleteRow.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.DeleteRow.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public DeleteRow.Request convertFromPb(@NotNull final qlua.rpc.DeleteRow.Request request) { + return new DeleteRow.Request(request.getTId(), request.getKey()); + } + + @Override + public qlua.rpc.DeleteRow.Request convertToPb(@NotNull final DeleteRow.Request request) { + + return qlua.rpc.DeleteRow.Request.newBuilder() + .setTId( request.getTId() ) + .setKey( request.getKey() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java new file mode 100644 index 0000000..52b0b5f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DeleteRowResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DeleteRow.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DeleteRow.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.DeleteRow.Result.parseFrom(data) ); + } + + @Override + public DeleteRow.Result convertFromPb(@NotNull final qlua.rpc.DeleteRow.Result result) { + return DeleteRow.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.DeleteRow.Result convertToPb(@NotNull final DeleteRow.Result result) { + return qlua.rpc.DeleteRow.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 18825e7..0639b7a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -122,6 +122,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, CreateWindow.Result.class, CreateWindowResultPbSerde.INSTANCE); registerSerde(result, DelAllLabels.Request.class, DelAllLabelsRequestPbSerde.INSTANCE); registerSerde(result, DelAllLabels.Result.class, DelAllLabelsResultPbSerde.INSTANCE); + registerSerde(result, DeleteRow.Request.class, DeleteRowRequestPbSerde.INSTANCE); + registerSerde(result, DeleteRow.Result.class, DeleteRowResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java new file mode 100644 index 0000000..d1e26e2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DeleteRowRequestPbSerdeTest { + + private static SerdeModule sut; + + private static DeleteRow.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new DeleteRow.Request(1, 2); + final ByteString pbArgs = qlua.rpc.DeleteRow.Request.newBuilder() + .setTId(1) + .setKey(2) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.DELETE_ROW) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DeleteRow.Request actualObject = sut.deserialize(DeleteRow.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java new file mode 100644 index 0000000..f3bbf6e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DeleteRowResultPbSerdeTest { + + private static SerdeModule sut; + + private static DeleteRow.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = DeleteRow.Result.getInstance(true); + expectedPbInput = qlua.rpc.Clear.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DeleteRow.Result actualObject = sut.deserialize(DeleteRow.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 2cc6d5933acd96192a584bfc7d4f09f45b498602 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 14:51:25 +0300 Subject: [PATCH 227/549] Reduced verbosity on the client side. --- .../java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index f6d66f9..8f10d94 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -76,7 +76,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - DeleteRow.Result qlua_DeleteRow(DeleteRow.Request request); + boolean qlua_DeleteRow(DeleteRow.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index c710c36..2f47155 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -132,8 +132,8 @@ public boolean qlua_DelAllLabels(final DelAllLabels.Request request) { } @Override - public DeleteRow.Result qlua_DeleteRow(final DeleteRow.Request request) { - return makeRPC(request, DeleteRow.Result.class); + public boolean qlua_DeleteRow(final DeleteRow.Request request) { + return makeRPC(request, DeleteRow.Result.class).isResult(); } @Override From ae5c1b81b753e765e77fdd1c03d2798515f04551 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 14:58:49 +0300 Subject: [PATCH 228/549] Added a protobuf serde facility for DelLabel; made an optimization in the instantiation of DelLabel.Result. --- .../quik/lua/rpc/api/messages/DelLabel.java | 19 +++++++ .../DelLabelResultJsonDeserializer.java | 2 +- .../protobuf/DelLabelRequestPbSerde.java | 55 ++++++++++++++++++ .../serde/protobuf/DelLabelResultPbSerde.java | 37 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/DelLabelRequestPbSerdeTest.java | 56 +++++++++++++++++++ .../protobuf/DelLabelResultPbSerdeTest.java | 47 ++++++++++++++++ 7 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java index c8c20a8..5567400 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java @@ -33,11 +33,30 @@ public static class Result { boolean result; + public static Result getInstance(final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) .add("result", result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + static { + assert TRUE.result == true; + assert FALSE.result == false; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java index 653ff5f..be705af 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java @@ -14,6 +14,6 @@ final class DelLabelResultJsonDeserializer extends JsonDeserializer, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DEL_LABEL; + + @Override + public byte[] serialize(final DelLabel.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelLabel.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.DelLabel.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public DelLabel.Request convertFromPb(@NotNull final qlua.rpc.DelLabel.Request request) { + return new DelLabel.Request(request.getChartTag(), request.getLabelId()); + } + + @Override + public qlua.rpc.DelLabel.Request convertToPb(@NotNull final DelLabel.Request request) { + + return qlua.rpc.DelLabel.Request.newBuilder() + .setChartTag( request.getChartTag() ) + .setLabelId( request.getLabelId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java new file mode 100644 index 0000000..7c59d9a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DelLabelResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DelLabel.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelLabel.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.DelLabel.Result.parseFrom(data) ); + } + + @Override + public DelLabel.Result convertFromPb(@NotNull final qlua.rpc.DelLabel.Result result) { + return DelLabel.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.DelLabel.Result convertToPb(@NotNull final DelLabel.Result result) { + return qlua.rpc.DelLabel.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 0639b7a..c2e6db2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -124,6 +124,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, DelAllLabels.Result.class, DelAllLabelsResultPbSerde.INSTANCE); registerSerde(result, DeleteRow.Request.class, DeleteRowRequestPbSerde.INSTANCE); registerSerde(result, DeleteRow.Result.class, DeleteRowResultPbSerde.INSTANCE); + registerSerde(result, DelLabel.Request.class, DelLabelRequestPbSerde.INSTANCE); + registerSerde(result, DelLabel.Result.class, DelLabelResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java new file mode 100644 index 0000000..8c166b3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java @@ -0,0 +1,56 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DelLabelRequestPbSerdeTest { + + private static SerdeModule sut; + + private static DelLabel.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new DelLabel.Request("1", 2); + final ByteString pbArgs = qlua.rpc.DelLabel.Request.newBuilder() + .setChartTag("1") + .setLabelId(2) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.DEL_LABEL) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DelLabel.Request actualObject = sut.deserialize(DelLabel.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java new file mode 100644 index 0000000..79560b0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DelLabelResultPbSerdeTest { + + private static SerdeModule sut; + + private static DelLabel.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = DelLabel.Result.getInstance(true); + expectedPbInput = qlua.rpc.DelLabel.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DelLabel.Result actualObject = sut.deserialize(DelLabel.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 9cb92b9e10699d05902ea585a08a2ed093c7d2d2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 14:59:31 +0300 Subject: [PATCH 229/549] Reduced verbosity on the client side. --- .../java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 8f10d94..14e7f51 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -83,7 +83,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - DelLabel.Result qlua_DelLabel(DelLabel.Request request); + boolean qlua_DelLabel(DelLabel.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 2f47155..d9257c9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -137,8 +137,8 @@ public boolean qlua_DeleteRow(final DeleteRow.Request request) { } @Override - public DelLabel.Result qlua_DelLabel(final DelLabel.Request request) { - return makeRPC(request, DelLabel.Result.class); + public boolean qlua_DelLabel(final DelLabel.Request request) { + return makeRPC(request, DelLabel.Result.class).isResult(); } @Override From eb27835bdea83f73e01d08bf281b7aae74be5afb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 15:07:19 +0300 Subject: [PATCH 230/549] Added a protobuf serde facility for DestroyTable; made an optimization in the instantiation of DestroyTable.Result. --- .../lua/rpc/api/messages/DestroyTable.java | 22 ++++++++ .../DestroyTableResultJsonDeserializer.java | 2 +- .../protobuf/DestroyTableRequestPbSerde.java | 54 ++++++++++++++++++ .../protobuf/DestroyTableResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../DestroyTableRequestPbSerdeTest.java | 55 +++++++++++++++++++ .../DestroyTableResultPbSerdeTest.java | 47 ++++++++++++++++ 7 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java index 20d21ea..32b41eb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java @@ -2,6 +2,7 @@ import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.Contract; public final class DestroyTable { @@ -25,11 +26,32 @@ public static class Result { boolean result; + @Contract(pure = true) + public static Result getInstance(final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { + this.result = result; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) .add("result", result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // just in case + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java index 25805e1..a5683a1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java @@ -15,6 +15,6 @@ public DestroyTable.Result deserialize(final JsonParser p, final Deserialization final JsonNode node = p.getCodec().readTree(p); - return new DestroyTable.Result( node.get("result").asBoolean() ); + return DestroyTable.Result.getInstance( node.get("result").asBoolean() ); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java new file mode 100644 index 0000000..31d8707 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum DestroyTableRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DESTROY_TABLE; + + @Override + public byte[] serialize(final DestroyTable.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DestroyTable.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.DestroyTable.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public DestroyTable.Request convertFromPb(@NotNull final qlua.rpc.DestroyTable.Request request) { + return new DestroyTable.Request( request.getTId() ); + } + + @Override + public qlua.rpc.DestroyTable.Request convertToPb(@NotNull final DestroyTable.Request request) { + + return qlua.rpc.DestroyTable.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java new file mode 100644 index 0000000..22a2441 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DestroyTableResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final DestroyTable.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DestroyTable.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.DestroyTable.Result.parseFrom(data) ); + } + + @Override + public DestroyTable.Result convertFromPb(@NotNull final qlua.rpc.DestroyTable.Result result) { + return DestroyTable.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.DestroyTable.Result convertToPb(@NotNull final DestroyTable.Result result) { + return qlua.rpc.DestroyTable.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index c2e6db2..1ac08e4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -126,6 +126,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, DeleteRow.Result.class, DeleteRowResultPbSerde.INSTANCE); registerSerde(result, DelLabel.Request.class, DelLabelRequestPbSerde.INSTANCE); registerSerde(result, DelLabel.Result.class, DelLabelResultPbSerde.INSTANCE); + registerSerde(result, DestroyTable.Request.class, DestroyTableRequestPbSerde.INSTANCE); + registerSerde(result, DestroyTable.Result.class, DestroyTableResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java new file mode 100644 index 0000000..bf7cfa8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DestroyTableRequestPbSerdeTest { + + private static SerdeModule sut; + + private static DestroyTable.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new DestroyTable.Request(1); + final ByteString pbArgs = qlua.rpc.DestroyTable.Request.newBuilder() + .setTId(1) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.DESTROY_TABLE) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DestroyTable.Request actualObject = sut.deserialize(DestroyTable.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java new file mode 100644 index 0000000..74deb13 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DestroyTableResultPbSerdeTest { + + private static SerdeModule sut; + + private static DestroyTable.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = DestroyTable.Result.getInstance(true); + expectedPbInput = qlua.rpc.DestroyTable.Result.newBuilder() + .setResult(true) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final DestroyTable.Result actualObject = sut.deserialize(DestroyTable.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 598c2feea3a3bf71bb50190911c2f7b99295c522 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 18:11:03 +0300 Subject: [PATCH 231/549] Reduced verbosity on the client side. --- .../java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 14e7f51..fab223b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -90,7 +90,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - DestroyTable.Result qlua_DestroyTable(DestroyTable.Request request); + boolean qlua_DestroyTable(DestroyTable.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index d9257c9..52fefab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -142,8 +142,8 @@ public boolean qlua_DelLabel(final DelLabel.Request request) { } @Override - public DestroyTable.Result qlua_DestroyTable(final DestroyTable.Request request) { - return makeRPC(request, DestroyTable.Result.class); + public boolean qlua_DestroyTable(final DestroyTable.Request request) { + return makeRPC(request, DestroyTable.Result.class).isResult(); } @Override From 309856e9da1bf74ccab0548071b39784bb15d8fc Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 18:11:43 +0300 Subject: [PATCH 232/549] Added a protobuf serde facility for GetBuySellInfo.BuySellInfo, GetBuySellInfo.Request, GetBuySellInfo.Result. --- .../serde/protobuf/BuySellInfoPbSerde.java | 82 ++++++++++++++++ .../GetBuySellInfoRequestPbSerde.java | 66 +++++++++++++ .../protobuf/GetBuySellInfoResultPbSerde.java | 40 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 +++ .../protobuf/BuySellInfoPbSerdeTest.java | 89 +++++++++++++++++ .../GetBuySellInfoRequestPbSerdeTest.java | 65 +++++++++++++ .../GetBuySellnfoResultPbSerdeTest.java | 95 +++++++++++++++++++ 8 files changed, 453 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java new file mode 100644 index 0000000..44cc4e1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java @@ -0,0 +1,82 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo.BuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum BuySellInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final BuySellInfo dateTimeEntry) { + return convertToPb(dateTimeEntry).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BuySellInfo deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetBuySellInfo.BuySellInfo.parseFrom(data) ); + } + + @Override + public BuySellInfo convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.BuySellInfo buySellInfo) { + + return BuySellInfo.builder() + .isMarginSec( convertFromPbString(buySellInfo.getIsMarginSec()) ) + .isAssetSec( convertFromPbString(buySellInfo.getIsAssetSec()) ) + .balance( convertFromPbString(buySellInfo.getBalance()) ) + .canBuy( convertFromPbString(buySellInfo.getCanBuy()) ) + .canSell( convertFromPbString(buySellInfo.getCanSell()) ) + .positionValuation( convertFromPbString(buySellInfo.getPositionValuation()) ) + .value( convertFromPbString(buySellInfo.getValue()) ) + .openValue( convertFromPbString(buySellInfo.getOpenValue()) ) + .limLong( convertFromPbString(buySellInfo.getLimLong()) ) + .longCoef( convertFromPbString(buySellInfo.getLongCoef()) ) + .limShort( convertFromPbString(buySellInfo.getLimShort()) ) + .shortCoef( convertFromPbString(buySellInfo.getShortCoef()) ) + .valueCoef( convertFromPbString(buySellInfo.getValueCoef()) ) + .openValueCoef( convertFromPbString(buySellInfo.getOpenValueCoef()) ) + .share( convertFromPbString(buySellInfo.getShare()) ) + .shortWaPrice( convertFromPbString(buySellInfo.getShortWaPrice()) ) + .longWaPrice( convertFromPbString(buySellInfo.getLongWaPrice()) ) + .profitLoss( convertFromPbString(buySellInfo.getProfitLoss()) ) + .spreadHc( convertFromPbString(buySellInfo.getSpreadHc()) ) + .canBuyOwn( convertFromPbString(buySellInfo.getCanBuyOwn()) ) + .canSellOwn( convertFromPbString(buySellInfo.getCanSellOwn()) ) + .build(); + } + + @Override + public qlua.rpc.GetBuySellInfo.BuySellInfo convertToPb(@NotNull final BuySellInfo buySellInfo) { + + return qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec( convertToPbString(buySellInfo.getIsMarginSec()) ) + .setIsAssetSec( convertToPbString(buySellInfo.getIsAssetSec()) ) + .setBalance( convertToPbString(buySellInfo.getBalance()) ) + .setCanBuy( convertToPbString(buySellInfo.getCanBuy()) ) + .setCanSell( convertToPbString(buySellInfo.getCanSell()) ) + .setPositionValuation( convertToPbString(buySellInfo.getPositionValuation()) ) + .setValue( convertToPbString(buySellInfo.getValue()) ) + .setOpenValue( convertToPbString(buySellInfo.getOpenValue()) ) + .setLimLong( convertToPbString(buySellInfo.getLimLong()) ) + .setLongCoef( convertToPbString(buySellInfo.getLongCoef()) ) + .setLimShort( convertToPbString(buySellInfo.getLimShort()) ) + .setShortCoef( convertToPbString(buySellInfo.getShortCoef()) ) + .setValueCoef( convertToPbString(buySellInfo.getValueCoef()) ) + .setOpenValueCoef( convertToPbString(buySellInfo.getOpenValueCoef()) ) + .setShare( convertToPbString(buySellInfo.getShare()) ) + .setShortWaPrice( convertToPbString(buySellInfo.getShortWaPrice()) ) + .setLongWaPrice( convertToPbString(buySellInfo.getLongWaPrice()) ) + .setProfitLoss( convertToPbString(buySellInfo.getProfitLoss()) ) + .setSpreadHc( convertToPbString(buySellInfo.getSpreadHc()) ) + .setCanBuyOwn( convertToPbString(buySellInfo.getCanBuyOwn()) ) + .setCanSellOwn( convertToPbString(buySellInfo.getCanSellOwn()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java new file mode 100644 index 0000000..e83dc9c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetBuySellInfoRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_BUY_SELL_INFO; + + @Override + public byte[] serialize(final GetBuySellInfo.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfo.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetBuySellInfo.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetBuySellInfo.Request convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.Request request) { + + return GetBuySellInfo.Request.builder() + .firmId( request.getFirmId() ) + .clientCode( request.getClientCode() ) + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .price( request.getPrice() ) + .build(); + + } + + @Override + public qlua.rpc.GetBuySellInfo.Request convertToPb(@NotNull final GetBuySellInfo.Request request) { + + return qlua.rpc.GetBuySellInfo.Request.newBuilder() + .setFirmId( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setPrice( request.getPrice() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java new file mode 100644 index 0000000..ae327cb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetBuySellInfoResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetBuySellInfo.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfo.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetBuySellInfo.Result.parseFrom(data) ); + } + + @Override + public GetBuySellInfo.Result convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.Result result) { + return new GetBuySellInfo.Result( convertFromPbBuySellInfo(result.getBuySellInfo()) ); + } + + @Override + public qlua.rpc.GetBuySellInfo.Result convertToPb(@NotNull final GetBuySellInfo.Result result) { + + return qlua.rpc.GetBuySellInfo.Result.newBuilder() + .setBuySellInfo( convertToPbBuySellInfo(result.getBuySellInfo()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 1ac08e4..f1db2ac 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -128,6 +128,9 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, DelLabel.Result.class, DelLabelResultPbSerde.INSTANCE); registerSerde(result, DestroyTable.Request.class, DestroyTableRequestPbSerde.INSTANCE); registerSerde(result, DestroyTable.Result.class, DestroyTableResultPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfo.BuySellInfo.class, BuySellInfoPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfo.Request.class, GetBuySellInfoRequestPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfo.Result.class, GetBuySellInfoResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 9e87ead..4dbcacb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -1,5 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; @@ -21,6 +22,8 @@ final class ProtobufSerdeUtils { private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = DateTimeEntryPbSerde.INSTANCE; + private static final PbConverter BUY_SELL_INFO_PB_CONVERTER = + BuySellInfoPbSerde.INSTANCE; @Contract(" -> fail") private ProtobufSerdeUtils() { @@ -47,6 +50,16 @@ static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(@NotNull final Date return DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); } + @NotNull + static GetBuySellInfo.BuySellInfo convertFromPbBuySellInfo(@NotNull final qlua.rpc.GetBuySellInfo.BuySellInfo buySellInfo) { + return BUY_SELL_INFO_PB_CONVERTER.convertFromPb(buySellInfo); + } + + @NotNull + static qlua.rpc.GetBuySellInfo.BuySellInfo convertToPbBuySellInfo(@NotNull final GetBuySellInfo.BuySellInfo buySellInfo) { + return BUY_SELL_INFO_PB_CONVERTER.convertToPb(buySellInfo); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java new file mode 100644 index 0000000..9070462 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java @@ -0,0 +1,89 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo.BuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class BuySellInfoPbSerdeTest { + + private static SerdeModule sut; + + private static BuySellInfo expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("12") + .build(); + expectedPbInput = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec("1") + .setIsAssetSec("2") + .setBalance("3") + .setCanBuy("4") + .setCanSell("5") + .setPositionValuation("6") + .setValue("7") + .setOpenValue("8") + .setLimLong("9") + .setLongCoef("10") + .setLimShort("11") + .setShortCoef("12") + .setValueCoef("13") + .setOpenValueCoef("14") + .setShare("15") + .setShortWaPrice("16") + .setLongWaPrice("17") + .setProfitLoss("18") + .setSpreadHc("19") + .setCanBuyOwn("20") + .setCanSellOwn("12") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final BuySellInfo actualObject = sut.deserialize(BuySellInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java new file mode 100644 index 0000000..c940eee --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetBuySellInfoRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetBuySellInfo.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetBuySellInfo.Request.builder() + .firmId("1") + .clientCode("2") + .classCode("3") + .secCode("4") + .price("5") + .build(); + final ByteString pbArgs = qlua.rpc.GetBuySellInfo.Request.newBuilder() + .setFirmId("1") + .setClientCode("2") + .setClassCode("3") + .setSecCode("4") + .setPrice("5") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_BUY_SELL_INFO) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetBuySellInfo.Request actualObject = sut.deserialize(GetBuySellInfo.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java new file mode 100644 index 0000000..4b115be --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java @@ -0,0 +1,95 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetBuySellnfoResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetBuySellInfo.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("12") + .build(); + final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec("1") + .setIsAssetSec("2") + .setBalance("3") + .setCanBuy("4") + .setCanSell("5") + .setPositionValuation("6") + .setValue("7") + .setOpenValue("8") + .setLimLong("9") + .setLongCoef("10") + .setLimShort("11") + .setShortCoef("12") + .setValueCoef("13") + .setOpenValueCoef("14") + .setShare("15") + .setShortWaPrice("16") + .setLongWaPrice("17") + .setProfitLoss("18") + .setSpreadHc("19") + .setCanBuyOwn("20") + .setCanSellOwn("12") + .build(); + + expectedObject = new GetBuySellInfo.Result(buySellInfo); + + expectedPbInput = qlua.rpc.GetBuySellInfo.Result.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetBuySellInfo.Result actualObject = sut.deserialize(GetBuySellInfo.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 7d7a57279a6e3fd5381ddc43ae4eef5c8b2a9e16 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 18:12:26 +0300 Subject: [PATCH 233/549] Reduced verbosity on the client side. --- .../java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index fab223b..cea3497 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -97,7 +97,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - GetBuySellInfo.Result qlua_getBuySellInfo(GetBuySellInfo.Request request); + GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(GetBuySellInfo.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 52fefab..abb0b32 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -147,8 +147,8 @@ public boolean qlua_DestroyTable(final DestroyTable.Request request) { } @Override - public GetBuySellInfo.Result qlua_getBuySellInfo(final GetBuySellInfo.Request request) { - return makeRPC(request, GetBuySellInfo.Result.class); + public GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(final GetBuySellInfo.Request request) { + return makeRPC(request, GetBuySellInfo.Result.class).getBuySellInfo(); } @Override From 396fa479c58d4c96ac0689cb59125b2929ea12da Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 20:50:56 +0300 Subject: [PATCH 234/549] Added a protobuf serde facility for GetBuySellInfoEx.BuySellInfoEx, GetBuySellInfoEx.Request, GetBuySellInfoEx.Result. --- .../serde/protobuf/BuySellInfoExPbSerde.java | 58 +++++++++ .../GetBuySellInfoExRequestPbSerde.java | 66 ++++++++++ .../GetBuySellInfoExResultPbSerde.java | 40 ++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 ++ .../protobuf/BuySellInfoExPbSerdeTest.java | 114 +++++++++++++++++ .../GetBuySellInfoExRequestPbSerdeTest.java | 65 ++++++++++ .../GetBuySellnfoExResultPbSerdeTest.java | 119 ++++++++++++++++++ 8 files changed, 478 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java new file mode 100644 index 0000000..2f7102a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx.BuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum BuySellInfoExPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final BuySellInfoEx dateTimeEntry) { + return convertToPb(dateTimeEntry).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BuySellInfoEx deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.parseFrom(data) ); + } + + @Override + public BuySellInfoEx convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { + + return BuySellInfoEx.builder() + .buySellInfo( convertFromPbBuySellInfo(buySellInfoEx.getBuySellInfo()) ) + .limitKind( convertFromPbString(buySellInfoEx.getLimitKind()) ) + .dLong( convertFromPbString(buySellInfoEx.getDLong()) ) + .dMinLong( convertFromPbString(buySellInfoEx.getDMinLong()) ) + .dShort( convertFromPbString(buySellInfoEx.getDShort()) ) + .dMinShort( convertFromPbString(buySellInfoEx.getDMinShort()) ) + .clientType( convertFromPbString(buySellInfoEx.getClientType()) ) + .isLongAllowed( convertFromPbString(buySellInfoEx.getIsLongAllowed()) ) + .isShortAllowed( convertFromPbString(buySellInfoEx.getIsShortAllowed()) ) + .build(); + } + + @Override + public qlua.rpc.GetBuySellInfoEx.BuySellInfoEx convertToPb(@NotNull final BuySellInfoEx buySellInfoEx) { + + return qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() + .setBuySellInfo( convertToPbBuySellInfo(buySellInfoEx.getBuySellInfo()) ) + .setLimitKind( convertToPbString(buySellInfoEx.getLimitKind()) ) + .setDLong( convertToPbString(buySellInfoEx.getDLong()) ) + .setDMinLong( convertToPbString(buySellInfoEx.getDMinLong()) ) + .setDShort( convertToPbString(buySellInfoEx.getDShort()) ) + .setDMinShort( convertToPbString(buySellInfoEx.getDMinShort()) ) + .setClientType( convertToPbString(buySellInfoEx.getClientType()) ) + .setIsLongAllowed( convertToPbString(buySellInfoEx.getIsLongAllowed()) ) + .setIsShortAllowed( convertToPbString(buySellInfoEx.getIsShortAllowed()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java new file mode 100644 index 0000000..3056165 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetBuySellInfoExRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_BUY_SELL_INFO_EX; + + @Override + public byte[] serialize(final GetBuySellInfoEx.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfoEx.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetBuySellInfoEx.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetBuySellInfoEx.Request convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.Request request) { + + return GetBuySellInfoEx.Request.builder() + .firmId( request.getFirmId() ) + .clientCode( request.getClientCode() ) + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .price( request.getPrice() ) + .build(); + + } + + @Override + public qlua.rpc.GetBuySellInfoEx.Request convertToPb(@NotNull final GetBuySellInfoEx.Request request) { + + return qlua.rpc.GetBuySellInfoEx.Request.newBuilder() + .setFirmId( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setPrice( request.getPrice() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java new file mode 100644 index 0000000..3210e68 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetBuySellInfoExResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetBuySellInfoEx.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfoEx.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetBuySellInfoEx.Result.parseFrom(data) ); + } + + @Override + public GetBuySellInfoEx.Result convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.Result result) { + return new GetBuySellInfoEx.Result( convertFromPbBuySellInfoEx(result.getBuySellInfoEx()) ); + } + + @Override + public qlua.rpc.GetBuySellInfoEx.Result convertToPb(@NotNull final GetBuySellInfoEx.Result result) { + + return qlua.rpc.GetBuySellInfoEx.Result.newBuilder() + .setBuySellInfoEx( convertToPbBuySellInfoEx(result.getBuySellInfoEx()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index f1db2ac..f7eeb08 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -131,6 +131,9 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetBuySellInfo.BuySellInfo.class, BuySellInfoPbSerde.INSTANCE); registerSerde(result, GetBuySellInfo.Request.class, GetBuySellInfoRequestPbSerde.INSTANCE); registerSerde(result, GetBuySellInfo.Result.class, GetBuySellInfoResultPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfoEx.BuySellInfoEx.class, BuySellInfoExPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfoEx.Request.class, GetBuySellInfoExRequestPbSerde.INSTANCE); + registerSerde(result, GetBuySellInfoEx.Result.class, GetBuySellInfoExResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 4dbcacb..ae92ba7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; @@ -24,6 +25,8 @@ final class ProtobufSerdeUtils { DateTimeEntryPbSerde.INSTANCE; private static final PbConverter BUY_SELL_INFO_PB_CONVERTER = BuySellInfoPbSerde.INSTANCE; + private static final PbConverter BUY_SELL_INFO_EX_PB_CONVERTER = + BuySellInfoExPbSerde.INSTANCE; @Contract(" -> fail") private ProtobufSerdeUtils() { @@ -60,6 +63,16 @@ static qlua.rpc.GetBuySellInfo.BuySellInfo convertToPbBuySellInfo(@NotNull final return BUY_SELL_INFO_PB_CONVERTER.convertToPb(buySellInfo); } + @NotNull + static GetBuySellInfoEx.BuySellInfoEx convertFromPbBuySellInfoEx(@NotNull final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { + return BUY_SELL_INFO_EX_PB_CONVERTER.convertFromPb(buySellInfoEx); + } + + @NotNull + static qlua.rpc.GetBuySellInfoEx.BuySellInfoEx convertToPbBuySellInfoEx(@NotNull final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { + return BUY_SELL_INFO_EX_PB_CONVERTER.convertToPb(buySellInfoEx); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java new file mode 100644 index 0000000..3a4539c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java @@ -0,0 +1,114 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx.BuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class BuySellInfoExPbSerdeTest { + + private static SerdeModule sut; + + private static BuySellInfoEx expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("12") + .build(); + final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec("1") + .setIsAssetSec("2") + .setBalance("3") + .setCanBuy("4") + .setCanSell("5") + .setPositionValuation("6") + .setValue("7") + .setOpenValue("8") + .setLimLong("9") + .setLongCoef("10") + .setLimShort("11") + .setShortCoef("12") + .setValueCoef("13") + .setOpenValueCoef("14") + .setShare("15") + .setShortWaPrice("16") + .setLongWaPrice("17") + .setProfitLoss("18") + .setSpreadHc("19") + .setCanBuyOwn("20") + .setCanSellOwn("12") + .build(); + + expectedObject = BuySellInfoEx.builder() + .buySellInfo(buySellInfo) + .limitKind("2") + .dLong("3") + .dMinLong("4") + .dShort("5") + .dMinShort("6") + .clientType("7") + .isLongAllowed("8") + .isShortAllowed("9") + .build(); + + expectedPbInput = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .setLimitKind("2") + .setDLong("3") + .setDMinLong("4") + .setDShort("5") + .setDMinShort("6") + .setClientType("7") + .setIsLongAllowed("8") + .setIsShortAllowed("9") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final BuySellInfoEx actualObject = sut.deserialize(BuySellInfoEx.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java new file mode 100644 index 0000000..156bb22 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetBuySellInfoExRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetBuySellInfoEx.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetBuySellInfoEx.Request.builder() + .firmId("1") + .clientCode("2") + .classCode("3") + .secCode("4") + .price("5") + .build(); + final ByteString pbArgs = qlua.rpc.GetBuySellInfoEx.Request.newBuilder() + .setFirmId("1") + .setClientCode("2") + .setClassCode("3") + .setSecCode("4") + .setPrice("5") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_BUY_SELL_INFO_EX) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetBuySellInfoEx.Request actualObject = sut.deserialize(GetBuySellInfoEx.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java new file mode 100644 index 0000000..c19e900 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java @@ -0,0 +1,119 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetBuySellnfoExResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetBuySellInfoEx.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("12") + .build(); + final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec("1") + .setIsAssetSec("2") + .setBalance("3") + .setCanBuy("4") + .setCanSell("5") + .setPositionValuation("6") + .setValue("7") + .setOpenValue("8") + .setLimLong("9") + .setLongCoef("10") + .setLimShort("11") + .setShortCoef("12") + .setValueCoef("13") + .setOpenValueCoef("14") + .setShare("15") + .setShortWaPrice("16") + .setLongWaPrice("17") + .setProfitLoss("18") + .setSpreadHc("19") + .setCanBuyOwn("20") + .setCanSellOwn("12") + .build(); + + final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx = GetBuySellInfoEx.BuySellInfoEx.builder() + .buySellInfo(buySellInfo) + .limitKind("2") + .dLong("3") + .dMinLong("4") + .dShort("5") + .dMinShort("6") + .clientType("7") + .isLongAllowed("8") + .isShortAllowed("9") + .build(); + final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx pbBuySellInfoEx = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .setLimitKind("2") + .setDLong("3") + .setDMinLong("4") + .setDShort("5") + .setDMinShort("6") + .setClientType("7") + .setIsLongAllowed("8") + .setIsShortAllowed("9") + .build(); + + expectedObject = new GetBuySellInfoEx.Result(buySellInfoEx); + + expectedPbInput = qlua.rpc.GetBuySellInfoEx.Result.newBuilder() + .setBuySellInfoEx(pbBuySellInfoEx) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetBuySellInfoEx.Result actualObject = sut.deserialize(GetBuySellInfoEx.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 00c1e3fdf29594272281ec44b101b6540c086770 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Sep 2018 20:53:29 +0300 Subject: [PATCH 235/549] Reduced verbosity on the client side. --- .../java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index cea3497..50a37ff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -104,7 +104,7 @@ public interface QluaRpcClient extends Gateway, Securable { * @param request * @return */ - GetBuySellInfoEx.Result qlua_getBuySellInfoEx(GetBuySellInfoEx.Request request); + GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(GetBuySellInfoEx.Request request); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index abb0b32..7cc71e3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -152,8 +152,8 @@ public GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(final GetBuySellInfo.Reque } @Override - public GetBuySellInfoEx.Result qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { - return makeRPC(request, GetBuySellInfoEx.Result.class); + public GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { + return makeRPC(request, GetBuySellInfoEx.Result.class).getBuySellInfoEx(); } @Override From 226b5fa05def22cf32fcef876c8aa79fb6c51f09 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 18:25:50 +0300 Subject: [PATCH 236/549] Added a protobuf serde facility for CandleEntry. --- .../serde/protobuf/CandleEntryPbSerde.java | 55 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/CandleEntryPbSerdeTest.java | 86 +++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java new file mode 100644 index 0000000..2365f4c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum CandleEntryPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final CandleEntry candleEntry) { + return convertToPb(candleEntry).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CandleEntry deserialize(final byte[] data) { + return convertFromPb( QluaStructures.CandleEntry.parseFrom(data) ); + } + + @Override + public CandleEntry convertFromPb(@NotNull final QluaStructures.CandleEntry candleEntry) { + + return CandleEntry.builder() + .open( convertFromPbString(candleEntry.getOpen()) ) + .close( convertFromPbString(candleEntry.getClose()) ) + .high( convertFromPbString(candleEntry.getHigh()) ) + .low( convertFromPbString(candleEntry.getLow()) ) + .volume( convertFromPbString(candleEntry.getVolume()) ) + .dateTimeEntry( convertFromPbDateTimeEntry(candleEntry.getDatetime()) ) + .doesExist( candleEntry.getDoesExist() ) + .build(); + } + + @Override + public QluaStructures.CandleEntry convertToPb(@NotNull final CandleEntry candleEntry) { + + return QluaStructures.CandleEntry.newBuilder() + .setOpen( convertToPbString(candleEntry.getOpen()) ) + .setClose( convertToPbString(candleEntry.getClose()) ) + .setHigh( convertToPbString(candleEntry.getHigh()) ) + .setLow( convertToPbString(candleEntry.getLow()) ) + .setVolume( convertToPbString(candleEntry.getVolume()) ) + .setDatetime( convertToPbDateTimeEntry(candleEntry.getDateTimeEntry()) ) + .setDoesExist( candleEntry.getDoesExist() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index f7eeb08..924539c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -103,6 +103,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); + registerSerde(result, CandleEntry.class, CandleEntryPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java new file mode 100644 index 0000000..137beef --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CandleEntryPbSerdeTest { + + private static SerdeModule sut; + + private static CandleEntry expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(7) + .setMonth(8) + .setYear(9) + .build(); + + expectedObject = CandleEntry.builder() + .open("1") + .close("2") + .high("3") + .low("4") + .volume("5") + .dateTimeEntry(dateTimeEntry) + .doesExist(7) + .build(); + expectedPbInput = QluaStructures.CandleEntry.newBuilder() + .setOpen("1") + .setClose("2") + .setHigh("3") + .setLow("4") + .setVolume("5") + .setDatetime(pbDateTimeEntry) + .setDoesExist(7) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final CandleEntry actualObject = sut.deserialize(CandleEntry.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From f37a88c472af0cf5d57fc1d134cdedcd7982bc7e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 18:28:39 +0300 Subject: [PATCH 237/549] Added util methods for the protobuf ser/deser of CandleEntry. --- .../lua/rpc/serde/protobuf/ProtobufSerdeUtils.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index ae92ba7..815f7e8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; @@ -27,6 +28,8 @@ final class ProtobufSerdeUtils { BuySellInfoPbSerde.INSTANCE; private static final PbConverter BUY_SELL_INFO_EX_PB_CONVERTER = BuySellInfoExPbSerde.INSTANCE; + private static final PbConverter CANDLE_ENTRY_PB_CONVERTER = + CandleEntryPbSerde.INSTANCE; @Contract(" -> fail") private ProtobufSerdeUtils() { @@ -73,6 +76,16 @@ static qlua.rpc.GetBuySellInfoEx.BuySellInfoEx convertToPbBuySellInfoEx(@NotNull return BUY_SELL_INFO_EX_PB_CONVERTER.convertToPb(buySellInfoEx); } + @NotNull + static QluaStructures.CandleEntry convertToPbCandleEntry(@NotNull final CandleEntry candleEntry) { + return CANDLE_ENTRY_PB_CONVERTER.convertToPb(candleEntry); + } + + @NotNull + static CandleEntry convertFromPbCandleEntry(@NotNull final QluaStructures.CandleEntry candleEntry) { + return CANDLE_ENTRY_PB_CONVERTER.convertFromPb(candleEntry); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { From 05fdfc07a4356abcc5a93ffea04ada18ef5d4b6c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 18:55:22 +0300 Subject: [PATCH 238/549] Added a protobuf serde facility for GetCandlesByIndex.Request, GetCandlesByIndex.Result. --- .../GetCandlesByIndexRequestPbSerde.java | 63 ++++++++ .../GetCandlesByIndexResultPbSerde.java | 61 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetCandlesByIndexRequestPbSerdeTest.java | 63 ++++++++ .../GetCandlesByIndexResultPbSerdeTest.java | 145 ++++++++++++++++++ 5 files changed, 334 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java new file mode 100644 index 0000000..a08e8f6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java @@ -0,0 +1,63 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetCandlesByIndexRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CANDLES_BY_INDEX; + + @Override + public byte[] serialize(final GetCandlesByIndex.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCandlesByIndex.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetCandlesByIndex.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetCandlesByIndex.Request convertFromPb(@NotNull final qlua.rpc.GetCandlesByIndex.Request request) { + + return GetCandlesByIndex.Request.builder() + .tag( request.getTag() ) + .line( request.getLine() ) + .firstCandle( request.getFirstCandle() ) + .count( request.getCount() ) + .build(); + } + + @Override + public qlua.rpc.GetCandlesByIndex.Request convertToPb(@NotNull final GetCandlesByIndex.Request request) { + + return qlua.rpc.GetCandlesByIndex.Request.newBuilder() + .setTag( request.getTag() ) + .setLine( request.getLine() ) + .setFirstCandle( request.getFirstCandle() ) + .setCount( request.getCount() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java new file mode 100644 index 0000000..5f880e2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.common.collect.ImmutableList; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbCandleEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbCandleEntry; + +enum GetCandlesByIndexResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetCandlesByIndex.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCandlesByIndex.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetCandlesByIndex.Result.parseFrom(data) ); + } + + @Override + public GetCandlesByIndex.Result convertFromPb(@NotNull final qlua.rpc.GetCandlesByIndex.Result result) { + + final ImmutableList.Builder candles = ImmutableList.builder(); + for (final QluaStructures.CandleEntry pbCandleEntry : result.getTList()) { + candles.add( convertFromPbCandleEntry(pbCandleEntry) ); + } + + return new GetCandlesByIndex.Result( + candles.build(), + result.getN(), + result.getL() + ); + } + + @Override + public qlua.rpc.GetCandlesByIndex.Result convertToPb(@NotNull final GetCandlesByIndex.Result result) { + + final ImmutableList.Builder pbCandles = ImmutableList.builder(); + for (final CandleEntry candleEntry : result.getT()) { + pbCandles.add( convertToPbCandleEntry(candleEntry) ); + } + + return qlua.rpc.GetCandlesByIndex.Result.newBuilder() + .addAllT(pbCandles.build()) + .setN( result.getN() ) + .setL( result.getL() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 924539c..d226fc7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -135,6 +135,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetBuySellInfoEx.BuySellInfoEx.class, BuySellInfoExPbSerde.INSTANCE); registerSerde(result, GetBuySellInfoEx.Request.class, GetBuySellInfoExRequestPbSerde.INSTANCE); registerSerde(result, GetBuySellInfoEx.Result.class, GetBuySellInfoExResultPbSerde.INSTANCE); + registerSerde(result, GetCandlesByIndex.Request.class, GetCandlesByIndexRequestPbSerde.INSTANCE); + registerSerde(result, GetCandlesByIndex.Result.class, GetCandlesByIndexResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java new file mode 100644 index 0000000..5258259 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java @@ -0,0 +1,63 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetCandlesByIndexRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetCandlesByIndex.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetCandlesByIndex.Request.builder() + .tag("1") + .line(2) + .firstCandle(3) + .count(4) + .build(); + final ByteString pbArgs = qlua.rpc.GetCandlesByIndex.Request.newBuilder() + .setTag("1") + .setLine(2) + .setFirstCandle(3) + .setCount(4) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_CANDLES_BY_INDEX) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetCandlesByIndex.Request actualObject = sut.deserialize(GetCandlesByIndex.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java new file mode 100644 index 0000000..1a6e1f1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java @@ -0,0 +1,145 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.common.collect.ImmutableList; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetCandlesByIndexResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetCandlesByIndex.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final List candles = ImmutableList.of( + CandleEntry.builder() + .open("50") + .close("100") + .high("150") + .low("1") + .volume("555") + .dateTimeEntry( + DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(3) + .month(8) + .year(9) + .build() + ) + .doesExist(1) + .build(), + CandleEntry.builder() + .open("51") + .close("102") + .high("105") + .low("49") + .volume("123") + .dateTimeEntry( + DateTimeEntry.builder() + .mcs(11) + .ms(12) + .sec(13) + .min(14) + .hour(15) + .day(16) + .weekDay(3) + .month(8) + .year(9) + .build() + ) + .doesExist(1) + .build() + + ); + final List pbCandles = ImmutableList.of( + QluaStructures.CandleEntry.newBuilder() + .setOpen("50") + .setClose("100") + .setHigh("150") + .setLow("1") + .setVolume("555") + .setDatetime( + QluaStructures.DateTimeEntry.newBuilder() + .setMcs(1) + .setMs(2) + .setSec(3) + .setMin(4) + .setHour(5) + .setDay(6) + .setWeekDay(3) + .setMonth(8) + .setYear(9) + .build() + ) + .setDoesExist(1) + .build(), + QluaStructures.CandleEntry.newBuilder() + .setOpen("51") + .setClose("102") + .setHigh("105") + .setLow("49") + .setVolume("123") + .setDatetime( + QluaStructures.DateTimeEntry.newBuilder() + .setMcs(11) + .setMs(12) + .setSec(13) + .setMin(14) + .setHour(15) + .setDay(16) + .setWeekDay(3) + .setMonth(8) + .setYear(9) + .build() + ) + .setDoesExist(1) + .build() + ); + + expectedObject = new GetCandlesByIndex.Result(candles, 2, "3"); + + expectedPbInput = qlua.rpc.GetCandlesByIndex.Result.newBuilder() + .addAllT(pbCandles) + .setN(2) + .setL("3") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetCandlesByIndex.Result actualObject = sut.deserialize(GetCandlesByIndex.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From ac2554857bf494c8a0710692eb037b57c82291b1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 19:04:43 +0300 Subject: [PATCH 239/549] Added a protobuf serde facility for GetCell.Request, GetCell.Result. --- .../serde/protobuf/GetCellRequestPbSerde.java | 61 +++++++++++++++++++ .../serde/protobuf/GetCellResultPbSerde.java | 41 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/GetCellRequestPbSerdeTest.java | 61 +++++++++++++++++++ .../protobuf/GetCellResultPbSerdeTest.java | 51 ++++++++++++++++ 5 files changed, 216 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java new file mode 100644 index 0000000..2827124 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetCellRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CELL; + + @Override + public byte[] serialize(final GetCell.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCell.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetCell.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetCell.Request convertFromPb(@NotNull final qlua.rpc.GetCell.Request request) { + + return GetCell.Request.builder() + .tId( request.getTId() ) + .key( request.getKey() ) + .code( request.getCode() ) + .build(); + } + + @Override + public qlua.rpc.GetCell.Request convertToPb(@NotNull final GetCell.Request request) { + + return qlua.rpc.GetCell.Request.newBuilder() + .setTId( request.getTId() ) + .setKey( request.getKey() ) + .setCode( request.getCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java new file mode 100644 index 0000000..84895ab --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetCellResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetCell.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCell.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetCell.Result.parseFrom(data) ); + } + + @Override + public GetCell.Result convertFromPb(@NotNull final qlua.rpc.GetCell.Result result) { + return GetCell.Result.builder() + .image( result.getImage() ) + .value( result.getValue() ) + .build(); + } + + @Override + public qlua.rpc.GetCell.Result convertToPb(@NotNull final GetCell.Result result) { + return qlua.rpc.GetCell.Result.newBuilder() + .setImage( result.getImage() ) + .setValue( result.getValue() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index d226fc7..1c8b70c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -137,6 +137,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetBuySellInfoEx.Result.class, GetBuySellInfoExResultPbSerde.INSTANCE); registerSerde(result, GetCandlesByIndex.Request.class, GetCandlesByIndexRequestPbSerde.INSTANCE); registerSerde(result, GetCandlesByIndex.Result.class, GetCandlesByIndexResultPbSerde.INSTANCE); + registerSerde(result, GetCell.Request.class, GetCellRequestPbSerde.INSTANCE); + registerSerde(result, GetCell.Result.class, GetCellResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java new file mode 100644 index 0000000..2d224d4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetCellRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetCell.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetCell.Request.builder() + .tId(1) + .key(2) + .code(3) + .build(); + final ByteString pbArgs = qlua.rpc.GetCell.Request.newBuilder() + .setTId(1) + .setKey(2) + .setCode(3) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_CELL) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetCell.Request actualObject = sut.deserialize(GetCell.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java new file mode 100644 index 0000000..b5e5625 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetCellResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetCell.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetCell.Result.builder() + .image("1") + .value("2") + .build(); + expectedPbInput = qlua.rpc.GetCell.Result.newBuilder() + .setImage("1") + .setValue("2") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetCell.Result actualObject = sut.deserialize(GetCell.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} From 686b15bff0483221aa7a5606c5833d3969b53697 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 19:13:08 +0300 Subject: [PATCH 240/549] Added a protobuf serde facility for GetClassesList.Request, GetClassesList.Result. --- .../GetClassesListRequestPbSerde.java | 42 +++++++++++ .../protobuf/GetClassesListResultPbSerde.java | 40 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetClassesListRequestPbSerdeTest.java | 49 +++++++++++++ .../GetClassesListResultPbSerdeTest.java | 69 +++++++++++++++++++ 5 files changed, 202 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java new file mode 100644 index 0000000..2a90988 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetClassesListRequestPbSerde implements Serde { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASSES_LIST; + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final GetClassesList.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassesList.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return GetClassesList.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java new file mode 100644 index 0000000..cec4098 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum GetClassesListResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetClassesList.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassesList.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetClassesList.Result.parseFrom(data) ); + } + + @Override + public GetClassesList.Result convertFromPb(@NotNull final qlua.rpc.GetClassesList.Result result) { + return new GetClassesList.Result( convertFromPbString(result.getClassesList()) ); + } + + @Override + public qlua.rpc.GetClassesList.Result convertToPb(@NotNull final GetClassesList.Result result) { + return qlua.rpc.GetClassesList.Result.newBuilder() + .setClassesList( convertToPbString(result.getClassesList()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 1c8b70c..18827cb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -139,6 +139,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetCandlesByIndex.Result.class, GetCandlesByIndexResultPbSerde.INSTANCE); registerSerde(result, GetCell.Request.class, GetCellRequestPbSerde.INSTANCE); registerSerde(result, GetCell.Result.class, GetCellResultPbSerde.INSTANCE); + registerSerde(result, GetClassesList.Request.class, GetClassesListRequestPbSerde.INSTANCE); + registerSerde(result, GetClassesList.Result.class, GetClassesListResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java new file mode 100644 index 0000000..bec5493 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassesListRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassesList.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetClassesList.Request.INSTANCE; + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_CLASSES_LIST) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetClassesList.Request actualObject = sut.deserialize(GetClassesList.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java new file mode 100644 index 0000000..fefccd6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassesListResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassesList.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetClassesList.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetClassesList.Result("1"); + expectedPbInput = qlua.rpc.GetClassesList.Result.newBuilder() + .setClassesList("1") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetClassesList.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassesList.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetClassesList.Result actualObject = sut.deserialize(GetClassesList.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testSerializeWithOnlyRequiredFields() { + + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); + + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + } + + @Test + public void testDeserializeWithOnlyRequiredFields() { + + final GetClassesList.Result actualObject = sut.deserialize(GetClassesList.Result.class, expectedPbInputWithOnlyRequiredFields); + + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + } +} From b159f45fe7ce36e8131ffb3fe8bcf1b418a58dec Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 20:04:31 +0300 Subject: [PATCH 241/549] Moderately redone the JSON serde for ClassInfo and GetClassInfo to accommodate null values for ClassInfo in GetClassInfo.Result. --- .../lua/rpc/api/messages/GetClassInfo.java | 14 +++- .../lua/rpc/api/structures/ClassInfo.java | 13 ++-- .../GetClassInfoResultJsonDeserializer.java | 28 ------- .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../messages/GetClassInfoJsonSerdeTest.java | 78 +++++++++++++++++++ .../resources/json/getClassInfo.request.json | 6 ++ .../resources/json/getClassInfo.result.json | 9 +++ ...ClassInfo.result.only_required_fields.json | 1 + 8 files changed, 114 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java create mode 100644 src/test/resources/json/getClassInfo.request.json create mode 100644 src/test/resources/json/getClassInfo.result.json create mode 100644 src/test/resources/json/getClassInfo.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java index ceee87a..83979e3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; @@ -12,7 +14,11 @@ private GetClassInfo() {} @Value public static class Request { - @NonNull String classCode; + String classCode; + + public Request(@NonNull final String classCode) { + this.classCode = classCode; + } @Override public String toString() { @@ -25,9 +31,13 @@ public String toString() { @Value public static class Result { - @NonNull ClassInfo classInfo; + @JsonCreator + public Result(@JsonProperty("class_info") final ClassInfo classInfo) { + this.classInfo = classInfo; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java index e7e6a57..c74870e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; @@ -22,12 +24,13 @@ public class ClassInfo { private @NonFinal transient String asString; @Builder + @JsonCreator private ClassInfo( - final String firmId, - final String name, - final String code, - int npars, - int nsecs) { + @JsonProperty(value = "firmid") final String firmId, + @JsonProperty(value = "name") final String name, + @JsonProperty(value = "code") final String code, + @JsonProperty(value = "npars", required = true) int npars, + @JsonProperty(value = "nsecs", required = true) int nsecs) { this.firmId = firmId; this.name = name; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java deleted file mode 100644 index abc6e1c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoResultJsonDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetClassInfoResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetClassInfo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - final ClassInfo classInfo = - node.get("class_info") - .traverse(objectCodec) - .readValueAs(ClassInfo.class); - - return new GetClassInfo.Result(classInfo); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index 412010d..ee5570e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -44,7 +44,6 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(GetCell.Result.class, new GetCellResultJsonDeserializer()); super.addDeserializer(GetClassesList.Result.class, new GetClassesListResultJsonDeserializer()); super.addDeserializer(ClassInfo.class, new ClassInfoJsonDeserializer()); - super.addDeserializer(GetClassInfo.Result.class, new GetClassInfoResultJsonDeserializer()); super.addDeserializer(GetClassSecurities.Result.class, new GetClassSecuritiesResultJsonDeserializer()); super.addDeserializer(Depo.class, new DepoJsonDeserializer()); super.addDeserializer(GetDepo.Result.class, new GetDepoResultJsonDeserializer()); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java new file mode 100644 index 0000000..6ae2bfe --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetClassInfoJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetClassInfo.Request requestObj; + private static String requestJson; + + private static GetClassInfo.Result resultObj; + private static String resultJson; + + private static GetClassInfo.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = new GetClassInfo.Request("1"); + requestJson = + Resources.toString(Resources.getResource("json/getClassInfo.request.json"), Charsets.UTF_8); + + final ClassInfo classInfo = ClassInfo.builder() + .firmId("1") + .name("2") + .code("3") + .npars(4) + .nsecs(5) + .build(); + + resultObj = new GetClassInfo.Result(classInfo); + resultJson = + Resources.toString(Resources.getResource("json/getClassInfo.result.json"), Charsets.UTF_8); + + resultObjWithOnlyRequiredFields = new GetClassInfo.Result(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getClassInfo.result.only_required_fields.json"), Charsets.UTF_8); + } + + @Test + public void testSerializeRequest() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testDeserializeResult() throws IOException { + + final GetClassInfo.Result actualResultObj = sut.readValue(resultJson, GetClassInfo.Result.class); + + assertEquals(resultObj, actualResultObj); + } + + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { + + final GetClassInfo.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetClassInfo.Result.class); + + assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); + } +} diff --git a/src/test/resources/json/getClassInfo.request.json b/src/test/resources/json/getClassInfo.request.json new file mode 100644 index 0000000..32e9d67 --- /dev/null +++ b/src/test/resources/json/getClassInfo.request.json @@ -0,0 +1,6 @@ +{ + "method" : "getClassInfo", + "args" : { + "class_code" : "1" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo.result.json b/src/test/resources/json/getClassInfo.result.json new file mode 100644 index 0000000..f42b7c6 --- /dev/null +++ b/src/test/resources/json/getClassInfo.result.json @@ -0,0 +1,9 @@ +{ + "class_info" : { + "firmid" : "1", + "name" : "2", + "code" : "3", + "npars" : 4, + "nsecs" : 5 + } +} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo.result.only_required_fields.json b/src/test/resources/json/getClassInfo.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getClassInfo.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 02b17db5d93912ab7613517442fba3a640918e45 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 20:05:39 +0300 Subject: [PATCH 242/549] Reduced verbosity on the client side; added nullity annotations on some methods. --- .../com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 50a37ff..2881990 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -124,7 +124,7 @@ public interface QluaRpcClient extends Gateway, Securable { * * @return */ - GetClassesList.Result qlua_getClassesList(); + String qlua_getClassesList(); /** * diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 7cc71e3..4f1c711 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -15,6 +15,8 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.SerdeUtils; import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.zeromq.ZMQ; import org.zeromq.ZMsg; @@ -106,6 +108,7 @@ public int qlua_AllocTable() { return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class).getTId(); } + @NotNull @Override public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { return makeRPC(request, CalcBuySell.Result.class); @@ -146,29 +149,34 @@ public boolean qlua_DestroyTable(final DestroyTable.Request request) { return makeRPC(request, DestroyTable.Result.class).isResult(); } + @NotNull @Override public GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(final GetBuySellInfo.Request request) { return makeRPC(request, GetBuySellInfo.Result.class).getBuySellInfo(); } + @NotNull @Override public GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { return makeRPC(request, GetBuySellInfoEx.Result.class).getBuySellInfoEx(); } + @NotNull @Override public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Request request) { return makeRPC(request, GetCandlesByIndex.Result.class); } + @NotNull @Override public GetCell.Result qlua_GetCell(final GetCell.Result request) { return makeRPC(request, GetCell.Result.class); } + @Nullable @Override - public GetClassesList.Result qlua_getClassesList() { - return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class); + public String qlua_getClassesList() { + return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class).getClassesList(); } @Override From 81f870f814e3f5485d4bdf08a1e08adfffd29d2b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 21:21:11 +0300 Subject: [PATCH 243/549] Added a protobuf serde facility for ClassInfo, GetClassInfo.Request, GetClassInfo.Result. --- .../rpc/serde/protobuf/ClassInfoPbSerde.java | 52 +++++++++++ .../protobuf/GetClassInfoRequestPbSerde.java | 54 ++++++++++++ .../protobuf/GetClassInfoResultPbSerde.java | 53 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../serde/protobuf/ProtobufSerdeUtils.java | 18 +++- .../serde/protobuf/ClassInfoPbSerdeTest.java | 58 +++++++++++++ .../GetClassInfoRequestPbSerdeTest.java | 55 ++++++++++++ .../GetClassInfoResultPbSerdeTest.java | 86 +++++++++++++++++++ 8 files changed, 378 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java new file mode 100644 index 0000000..6572874 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum ClassInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ClassInfo classInfo) { + return convertToPb(classInfo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ClassInfo deserialize(final byte[] data) { + return convertFromPb( QluaStructures.Klass.parseFrom(data) ); + } + + @Override + public ClassInfo convertFromPb(@NotNull final QluaStructures.Klass classInfo) { + + return ClassInfo.builder() + .firmId( convertFromPbString(classInfo.getFirmid()) ) + .name( convertFromPbString(classInfo.getName()) ) + .code( convertFromPbString(classInfo.getCode()) ) + .npars( classInfo.getNpars() ) + .nsecs( classInfo.getNsecs() ) + .build(); + } + + @Override + public QluaStructures.Klass convertToPb(@NotNull final ClassInfo classInfo) { + + return QluaStructures.Klass.newBuilder() + .setFirmid( convertToPbString(classInfo.getFirmId()) ) + .setName( convertToPbString(classInfo.getName()) ) + .setCode( convertToPbString(classInfo.getCode()) ) + .setNpars( classInfo.getNpars() ) + .setNsecs( classInfo.getNsecs() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java new file mode 100644 index 0000000..22489fe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetClassInfoRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASS_INFO; + + @Override + public byte[] serialize(final GetClassInfo.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassInfo.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetClassInfo.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetClassInfo.Request convertFromPb(@NotNull final qlua.rpc.GetClassInfo.Request request) { + return new GetClassInfo.Request( request.getClassCode() ); + } + + @Override + public qlua.rpc.GetClassInfo.Request convertToPb(@NotNull final GetClassInfo.Request request) { + + return qlua.rpc.GetClassInfo.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java new file mode 100644 index 0000000..eff6063 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetClassInfoResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetClassInfo.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassInfo.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetClassInfo.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetClassInfo.Result convertFromPb(@NotNull final qlua.rpc.GetClassInfo.Result result) { + + ClassInfo classInfo = null; + if ( result.hasClassInfo() ) { + classInfo = convertFromPbClassInfo(result.getClassInfo()); + } + + return new GetClassInfo.Result(classInfo); + } + + @NotNull + @Override + public qlua.rpc.GetClassInfo.Result convertToPb(@NotNull final GetClassInfo.Result result) { + + final qlua.rpc.GetClassInfo.Result.Builder pbResult = qlua.rpc.GetClassInfo.Result.newBuilder(); + final ClassInfo classInfo = result.getClassInfo(); + if (classInfo != null) { + pbResult.setClassInfo( convertToPbClassInfo(result.getClassInfo()) ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 18827cb..e920c75 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -104,6 +104,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); registerSerde(result, CandleEntry.class, CandleEntryPbSerde.INSTANCE); + registerSerde(result, ClassInfo.class, ClassInfoPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); @@ -141,6 +142,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetCell.Result.class, GetCellResultPbSerde.INSTANCE); registerSerde(result, GetClassesList.Request.class, GetClassesListRequestPbSerde.INSTANCE); registerSerde(result, GetClassesList.Result.class, GetClassesListResultPbSerde.INSTANCE); + registerSerde(result, GetClassInfo.Request.class, GetClassInfoRequestPbSerde.INSTANCE); + registerSerde(result, GetClassInfo.Result.class, GetClassInfoResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 815f7e8..c69027c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; @@ -16,7 +17,6 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Objects; -import java.util.Optional; final class ProtobufSerdeUtils { @@ -24,13 +24,19 @@ final class ProtobufSerdeUtils { private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = DateTimeEntryPbSerde.INSTANCE; + private static final PbConverter BUY_SELL_INFO_PB_CONVERTER = BuySellInfoPbSerde.INSTANCE; + private static final PbConverter BUY_SELL_INFO_EX_PB_CONVERTER = BuySellInfoExPbSerde.INSTANCE; + private static final PbConverter CANDLE_ENTRY_PB_CONVERTER = CandleEntryPbSerde.INSTANCE; + private static final PbConverter CLASS_INFO_PB_CONVERTER = + ClassInfoPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -86,6 +92,16 @@ static CandleEntry convertFromPbCandleEntry(@NotNull final QluaStructures.Candle return CANDLE_ENTRY_PB_CONVERTER.convertFromPb(candleEntry); } + @NotNull + static QluaStructures.Klass convertToPbClassInfo(@NotNull final ClassInfo classInfo) { + return CLASS_INFO_PB_CONVERTER.convertToPb(classInfo); + } + + @NotNull + static ClassInfo convertFromPbClassInfo(@NotNull final QluaStructures.Klass classInfo) { + return CLASS_INFO_PB_CONVERTER.convertFromPb(classInfo); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java new file mode 100644 index 0000000..202254d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ClassInfoPbSerdeTest { + + private static SerdeModule sut; + + private static ClassInfo expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = ClassInfo.builder() + .firmId("1") + .name("2") + .code("3") + .npars(4) + .nsecs(5) + .build(); + expectedPbInput = QluaStructures.Klass.newBuilder() + .setFirmid("1") + .setName("2") + .setCode("3") + .setNpars(4) + .setNsecs(5) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final ClassInfo actualObject = sut.deserialize(ClassInfo.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java new file mode 100644 index 0000000..6c5a018 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassInfoRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassInfo.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetClassInfo.Request("1"); + final ByteString pbArgs = qlua.rpc.GetClassInfo.Request.newBuilder() + .setClassCode("1") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_CLASS_INFO) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetClassInfo.Request actualObject = sut.deserialize(GetClassInfo.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java new file mode 100644 index 0000000..9d84a9d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassInfoResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassInfo.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetClassInfo.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final ClassInfo classInfo = ClassInfo.builder() + .firmId("1") + .name("2") + .code("3") + .npars(4) + .nsecs(5) + .build(); + final QluaStructures.Klass pbClassInfo = QluaStructures.Klass.newBuilder() + .setFirmid("1") + .setName("2") + .setCode("3") + .setNpars(4) + .setNsecs(5) + .build(); + + expectedObject = new GetClassInfo.Result(classInfo); + expectedPbInput = qlua.rpc.GetClassInfo.Result.newBuilder() + .setClassInfo(pbClassInfo) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetClassInfo.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassInfo.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetClassInfo.Result actualObject = sut.deserialize(GetClassInfo.Result.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } + + @Test + public void testSerializeWithOnlyRequiredFields() { + + final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); + + assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + } + + @Test + public void testDeserializeWithOnlyRequiredFields() { + + final GetClassInfo.Result actualObject = sut.deserialize(GetClassInfo.Result.class, expectedPbInputWithOnlyRequiredFields); + + assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + } +} From 4ad32e26a3af24c32102441d075e681215e32299 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 21:53:43 +0300 Subject: [PATCH 244/549] Sorted up various DateTimeEntry null cases. --- .../lua/rpc/api/structures/CandleEntry.java | 2 +- .../serde/protobuf/CandleEntryPbSerde.java | 26 +++++++---- .../rpc/serde/protobuf/NegDealPbSerde.java | 22 ++++++--- .../lua/rpc/serde/protobuf/OrderPbSerde.java | 46 +++++++++++-------- .../serde/protobuf/ProtobufSerdeUtils.java | 7 ++- .../rpc/serde/protobuf/StopOrderPbSerde.java | 17 +++++-- .../lua/rpc/serde/protobuf/TradePbSerde.java | 42 +++++++++-------- .../rpc/serde/protobuf/TransReplyPbSerde.java | 31 +++++++------ .../protobuf/CandleEntryPbSerdeTest.java | 22 +++++++++ .../protobuf/DateTimeEntryPbSerdeTest.java | 33 +++++++++++-- 10 files changed, 166 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java index 6f2a56a..cf7f520 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java @@ -27,7 +27,7 @@ private CandleEntry( final String high, final String low, final String volume, - final @NonNull DateTimeEntry dateTimeEntry, + final DateTimeEntry dateTimeEntry, final int doesExist) { this.open = open; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java index 2365f4c..b586738 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; @@ -28,28 +29,37 @@ public CandleEntry deserialize(final byte[] data) { @Override public CandleEntry convertFromPb(@NotNull final QluaStructures.CandleEntry candleEntry) { - return CandleEntry.builder() + final CandleEntry.CandleEntryBuilder result = CandleEntry.builder() .open( convertFromPbString(candleEntry.getOpen()) ) .close( convertFromPbString(candleEntry.getClose()) ) .high( convertFromPbString(candleEntry.getHigh()) ) .low( convertFromPbString(candleEntry.getLow()) ) .volume( convertFromPbString(candleEntry.getVolume()) ) - .dateTimeEntry( convertFromPbDateTimeEntry(candleEntry.getDatetime()) ) - .doesExist( candleEntry.getDoesExist() ) - .build(); + .doesExist( candleEntry.getDoesExist() ); + + if (candleEntry.hasDatetime()) { + result.dateTimeEntry( convertFromPbDateTimeEntry(candleEntry.getDatetime()) ); + } + + return result.build(); } @Override public QluaStructures.CandleEntry convertToPb(@NotNull final CandleEntry candleEntry) { - return QluaStructures.CandleEntry.newBuilder() + final QluaStructures.CandleEntry.Builder result = QluaStructures.CandleEntry.newBuilder() .setOpen( convertToPbString(candleEntry.getOpen()) ) .setClose( convertToPbString(candleEntry.getClose()) ) .setHigh( convertToPbString(candleEntry.getHigh()) ) .setLow( convertToPbString(candleEntry.getLow()) ) .setVolume( convertToPbString(candleEntry.getVolume()) ) - .setDatetime( convertToPbDateTimeEntry(candleEntry.getDateTimeEntry()) ) - .setDoesExist( candleEntry.getDoesExist() ) - .build(); + .setDoesExist( candleEntry.getDoesExist() ); + + final DateTimeEntry dateTimeEntry = candleEntry.getDateTimeEntry(); + if (dateTimeEntry != null) { + result.setDatetime( convertToPbDateTimeEntry(candleEntry.getDateTimeEntry()) ); + } + + return result.build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java index 65fd5b4..82649f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java @@ -29,7 +29,7 @@ public NegDeal deserialize(final byte[] data) { @Override public NegDeal convertFromPb(@NotNull QluaStructures.NegDeal negDeal) { - return NegDeal.builder() + final NegDeal.NegDealBuilder result = NegDeal.builder() .negDealNum( negDeal.getNegDealNum() ) .negDealTime( convertFromPbString(negDeal.getNegDealTime()) ) .flags( negDeal.getFlags() ) @@ -74,11 +74,21 @@ public NegDeal convertFromPb(@NotNull QluaStructures.NegDeal negDeal) { .classCode( convertFromPbString(negDeal.getClassCode()) ) .bankAccId( convertFromPbString(negDeal.getBankAccId()) ) .withdrawDate( convertFromPbString(negDeal.getWithdrawDate()) ) - .linkedOrder( convertFromPbString(negDeal.getLinkedorder()) ) - .activationDateTime( convertFromPbDateTimeEntry(negDeal.getActivationDateTime()) ) - .withdrawDateTime( convertFromPbDateTimeEntry(negDeal.getWithdrawDateTime()) ) - .dateTime( convertFromPbDateTimeEntry(negDeal.getDateTime()) ) - .build(); + .linkedOrder( convertFromPbString(negDeal.getLinkedorder()) ); + + if (negDeal.hasActivationDateTime()) { + result.activationDateTime( convertFromPbDateTimeEntry(negDeal.getActivationDateTime()) ); + } + + if (negDeal.hasWithdrawDateTime()) { + result.withdrawDateTime( convertFromPbDateTimeEntry(negDeal.getWithdrawDateTime()) ); + } + + if (negDeal.hasDateTime()) { + result.dateTime( convertFromPbDateTimeEntry(negDeal.getDateTime()) ); + } + + return result.build(); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java index 6f5a945..d4f497f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java @@ -31,7 +31,7 @@ public Order deserialize(final byte[] data) { @Override public Order convertFromPb(@NotNull QluaStructures.Order order) { - return Order.builder() + final Order.OrderBuilder result = Order.builder() .orderNum( order.getOrderNum() ) .flags( order.getFlags() ) .brokerRef( convertFromPbString(order.getBrokerref()) ) @@ -56,8 +56,6 @@ public Order convertFromPb(@NotNull QluaStructures.Order order) { .expiry( convertFromPbString(order.getExpiry()) ) .secCode( convertFromPbString(order.getSecCode()) ) .classCode( convertFromPbString(order.getClassCode()) ) - .datetime( convertFromPbDateTimeEntry(order.getDatetime()) ) - .withdrawDatetime( convertFromPbDateTimeEntry(order.getWithdrawDatetime()) ) .bankAccId( convertFromPbString(order.getBankAccId()) ) .valueEntryType( order.getValueEntryType() ) .repoTerm( convertFromPbString(order.getRepoterm()) ) @@ -73,8 +71,17 @@ public Order convertFromPb(@NotNull QluaStructures.Order order) { .acntType( order.getAcntType() ) .capacity( order.getCapacity() ) .passiveOnlyOrder( order.getPassiveOnlyOrder() ) - .visible( order.getVisible() ) - .build(); + .visible( order.getVisible() ); + + if (order.hasDatetime()) { + result.datetime( convertFromPbDateTimeEntry(order.getDatetime()) ); + } + + if (order.hasWithdrawDatetime()) { + result.withdrawDatetime( convertFromPbDateTimeEntry(order.getWithdrawDatetime()) ); + } + + return result.build(); } @Override @@ -104,19 +111,7 @@ public QluaStructures.Order convertToPb(@NotNull final Order order) { .setLinkedorder( convertToPbString(order.getLinkedOrder()) ) .setExpiry( convertToPbString(order.getExpiry()) ) .setSecCode( convertToPbString(order.getSecCode()) ) - .setClassCode( convertToPbString(order.getClassCode()) ); - - final DateTimeEntry dateTime = order.getDatetime(); - if (dateTime != null) { - result.setDatetime( convertToPbDateTimeEntry(dateTime) ); - } - - final DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); - if (withdrawDateTime != null) { - result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); - } - - return result + .setClassCode( convertToPbString(order.getClassCode()) ) .setBankAccId( convertToPbString(order.getBankAccId()) ) .setValueEntryType( order.getValueEntryType() ) .setRepoterm( convertToPbString(order.getRepoTerm()) ) @@ -132,7 +127,18 @@ public QluaStructures.Order convertToPb(@NotNull final Order order) { .setAcntType( order.getAcntType() ) .setCapacity( order.getCapacity() ) .setPassiveOnlyOrder( order.getPassiveOnlyOrder() ) - .setVisible( order.getVisible() ) - .build(); + .setVisible( order.getVisible() ); + + final DateTimeEntry dateTime = order.getDatetime(); + if (dateTime != null) { + result.setDatetime( convertToPbDateTimeEntry(dateTime) ); + } + + final DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); + if (withdrawDateTime != null) { + result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); + } + + return result.build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index c69027c..d1ae5e6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -16,7 +16,6 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.Objects; final class ProtobufSerdeUtils { @@ -53,9 +52,9 @@ static String convertToPbString(final String string) { return (string == null) ? "" : string; } - @Nullable - static DateTimeEntry convertFromPbDateTimeEntry(final QluaStructures.DateTimeEntry dateTimeEntry) { - return Objects.equals(dateTimeEntry, QluaStructures.DateTimeEntry.getDefaultInstance()) ? null : DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTimeEntry); + @NotNull + static DateTimeEntry convertFromPbDateTimeEntry(@NotNull final QluaStructures.DateTimeEntry dateTimeEntry) { + return DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTimeEntry); } static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(@NotNull final DateTimeEntry dateTimeEntry) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java index 2489c91..90f8960 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java @@ -29,7 +29,7 @@ public StopOrder deserialize(final byte[] data) { @Override public StopOrder convertFromPb(@NotNull QluaStructures.StopOrder stopOrder) { - return StopOrder.builder() + final StopOrder.StopOrderBuilder result = StopOrder.builder() .orderNum( stopOrder.getOrderNum() ) .orderTime( convertFromPbString(stopOrder.getOrdertime()) ) .flags( stopOrder.getFlags() ) @@ -63,10 +63,17 @@ public StopOrder convertFromPb(@NotNull QluaStructures.StopOrder stopOrder) { .classCode( convertFromPbString(stopOrder.getClassCode()) ) .conditionSecCode( convertFromPbString(stopOrder.getConditionSecCode()) ) .conditionClassCode( convertFromPbString(stopOrder.getConditionClassCode()) ) - .canceledUid( convertFromPbString(stopOrder.getCanceledUid()) ) - .orderDateTime( convertFromPbDateTimeEntry(stopOrder.getOrderDateTime()) ) - .withdrawDateTime( convertFromPbDateTimeEntry(stopOrder.getWithdrawDatetime()) ) - .build(); + .canceledUid( convertFromPbString(stopOrder.getCanceledUid()) ); + + if (stopOrder.hasOrderDateTime()) { + result.orderDateTime( convertFromPbDateTimeEntry(stopOrder.getOrderDateTime()) ); + } + + if (stopOrder.hasWithdrawDatetime()) { + result.withdrawDateTime( convertFromPbDateTimeEntry(stopOrder.getWithdrawDatetime()) ); + } + + return result.build(); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java index f3cefc6..19f0a45 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java @@ -31,7 +31,7 @@ public Trade deserialize(final byte[] data) { @Override public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { - return Trade.builder() + final Trade.TradeBuilder result = Trade.builder() .tradeNum( trade.getTradeNum() ) .orderNum( trade.getOrderNum() ) .brokerRef( convertFromPbString(trade.getBrokerref()) ) @@ -68,7 +68,6 @@ public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { .stationId( convertFromPbString(trade.getStationId()) ) .secCode( convertFromPbString(trade.getSecCode()) ) .classCode( convertFromPbString(trade.getClassCode()) ) - .datetime( convertFromPbDateTimeEntry(trade.getDatetime()) ) .bankAccId( convertFromPbString(trade.getBankAccId()) ) .brokerComission( convertFromPbString(trade.getBrokerComission()) ) .linkedTrade( convertFromPbString(trade.getLinkedTrade()) ) @@ -76,11 +75,19 @@ public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { .transId( convertFromPbString(trade.getTransId()) ) .kind( trade.getKind() ) .clearingBankAccId( convertFromPbString(trade.getClearingBankAccid()) ) - .canceledDatetime( convertFromPbDateTimeEntry(trade.getCanceledDatetime()) ) .clearingFirmId( convertFromPbString(trade.getClearingFirmid()) ) .systemRef( convertFromPbString(trade.getSystemRef()) ) - .uid( convertFromPbString(trade.getUid()) ) - .build(); + .uid( convertFromPbString(trade.getUid()) ); + + if (trade.hasDatetime()) { + result.datetime( convertFromPbDateTimeEntry(trade.getDatetime()) ); + } + + if (trade.hasCanceledDatetime()) { + result.canceledDatetime( convertFromPbDateTimeEntry(trade.getCanceledDatetime()) ); + } + + return result.build(); } @Override @@ -122,31 +129,28 @@ public QluaStructures.Trade convertToPb(@NotNull final Trade trade) { .setExchangeCode( convertToPbString(trade.getExchangeCode()) ) .setStationId( convertToPbString(trade.getStationId()) ) .setSecCode( convertToPbString(trade.getSecCode()) ) - .setClassCode( convertToPbString(trade.getClassCode()) ); - - final DateTimeEntry datetime = trade.getDatetime(); - if (datetime != null) { - result.setDatetime( convertToPbDateTimeEntry(datetime) ); - } - - result + .setClassCode( convertToPbString(trade.getClassCode()) ) .setBankAccId( convertToPbString(trade.getBankAccId()) ) .setBrokerComission( convertToPbString(trade.getBrokerComission()) ) .setLinkedTrade( convertToPbString(trade.getLinkedTrade()) ) .setPeriod( trade.getPeriod() ) .setTransId( convertToPbString(trade.getTransId()) ) .setKind( trade.getKind() ) - .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ); + .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ) + .setClearingFirmid( convertToPbString(trade.getClearingFirmId()) ) + .setSystemRef( convertToPbString(trade.getSystemRef()) ) + .setUid( convertToPbString(trade.getUid()) ); + + final DateTimeEntry datetime = trade.getDatetime(); + if (datetime != null) { + result.setDatetime( convertToPbDateTimeEntry(datetime) ); + } final DateTimeEntry canceledDatetime = trade.getCanceledDatetime(); if (canceledDatetime != null) { result.setCanceledDatetime( convertToPbDateTimeEntry(canceledDatetime) ); } - return result - .setClearingFirmid( convertToPbString(trade.getClearingFirmId()) ) - .setSystemRef( convertToPbString(trade.getSystemRef()) ) - .setUid( convertToPbString(trade.getUid()) ) - .build(); + return result.build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java index a7cd715..89767b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java @@ -29,11 +29,10 @@ public TransReply deserialize(final byte[] data) { @Override public TransReply convertFromPb(@NotNull QluaStructures.Transaction transaction) { - return TransReply.builder() + final TransReply.TransReplyBuilder result = TransReply.builder() .transId( transaction.getTransId() ) .status( transaction.getStatus() ) .resultMsg( convertFromPbString(transaction.getResultMsg()) ) - .dateTime( convertFromPbDateTimeEntry(transaction.getDateTime()) ) .uid( convertFromPbString(transaction.getUid()) ) .flags( transaction.getFlags() ) .serverTransId( convertFromPbString(transaction.getServerTransId()) ) @@ -47,8 +46,13 @@ public TransReply convertFromPb(@NotNull QluaStructures.Transaction transaction) .brokerRef( convertFromPbString(transaction.getBrokerref()) ) .classCode( convertFromPbString(transaction.getClassCode()) ) .secCode( convertFromPbString(transaction.getSecCode()) ) - .exchangeCode( convertFromPbString(transaction.getExchangeCode()) ) - .build(); + .exchangeCode( convertFromPbString(transaction.getExchangeCode()) ); + + if (transaction.hasDateTime()) { + result.dateTime( convertFromPbDateTimeEntry(transaction.getDateTime()) ); + } + + return result.build(); } @Override @@ -57,14 +61,7 @@ public QluaStructures.Transaction convertToPb(@NotNull final TransReply transRep final QluaStructures.Transaction.Builder result = QluaStructures.Transaction.newBuilder() .setTransId( transReply.getTransId() ) .setStatus( transReply.getStatus() ) - .setResultMsg( convertToPbString(transReply.getResultMsg()) ); - - final DateTimeEntry dateTime = transReply.getDateTime(); - if (dateTime != null) { - result.setDateTime( convertToPbDateTimeEntry(dateTime) ); - } - - return result + .setResultMsg( convertToPbString(transReply.getResultMsg()) ) .setUid( convertToPbString(transReply.getUid()) ) .setFlags( transReply.getFlags() ) .setServerTransId( convertToPbString(transReply.getServerTransId()) ) @@ -78,7 +75,13 @@ public QluaStructures.Transaction convertToPb(@NotNull final TransReply transRep .setBrokerref( convertToPbString(transReply.getBrokerRef()) ) .setClassCode( convertToPbString(transReply.getClassCode()) ) .setSecCode( convertToPbString(transReply.getSecCode()) ) - .setExchangeCode( convertToPbString(transReply.getExchangeCode()) ) - .build(); + .setExchangeCode( convertToPbString(transReply.getExchangeCode()) ); + + final DateTimeEntry dateTime = transReply.getDateTime(); + if (dateTime != null) { + result.setDateTime( convertToPbDateTimeEntry(dateTime) ); + } + + return result.build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java index 137beef..04a81ee 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java @@ -19,6 +19,9 @@ public class CandleEntryPbSerdeTest { private static CandleEntry expectedObject; private static byte[] expectedPbInput; + private static CandleEntry expectedObjectInitializedByDefault; + private static byte[] expectedPbInputInitializedByDefault; + @BeforeClass public static void globalSetup() { @@ -66,6 +69,9 @@ public static void globalSetup() { .setDoesExist(7) .build() .toByteArray(); + + expectedObjectInitializedByDefault = CandleEntry.builder().build(); + expectedPbInputInitializedByDefault = QluaStructures.CandleEntry.getDefaultInstance().toByteArray(); } @Test @@ -83,4 +89,20 @@ public void testDeserialize() { assertEquals(actualObject, expectedObject); } + + @Test + public void testSerializeObjectInitializedByDefault() { + + final byte[] actual = sut.serialize(expectedObjectInitializedByDefault); + + assertTrue( Arrays.equals(expectedPbInputInitializedByDefault, actual) ); + } + + @Test + public void testDeserializePbInputInitializedByDefault() { + + final CandleEntry actualObject = sut.deserialize(CandleEntry.class, expectedPbInputInitializedByDefault); + + assertEquals(actualObject, expectedObjectInitializedByDefault); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java index 1f5612b..72f6e87 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java @@ -18,6 +18,9 @@ public class DateTimeEntryPbSerdeTest { private static DateTimeEntry expectedObject; private static byte[] expectedPbInput; + private static DateTimeEntry expectedObjectInitializedByDefault; + private static byte[] expectedPbInputInitializedByDefault; + @BeforeClass public static void globalSetup() { @@ -46,21 +49,41 @@ public static void globalSetup() { .setYear(9) .build() .toByteArray(); + + expectedObjectInitializedByDefault = DateTimeEntry.builder().build(); + expectedPbInputInitializedByDefault = QluaStructures.DateTimeEntry.getDefaultInstance().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(DateTimeEntry.class, expectedPbInput)); + } - final DateTimeEntry actualObject = sut.deserialize(DateTimeEntry.class, expectedPbInput); + @Test + public void testSerializeObjectInitializedByDefault() { + + assertTrue( + Arrays.equals( + expectedPbInputInitializedByDefault, + sut.serialize(expectedObjectInitializedByDefault) + ) + ); + } + + @Test + public void testDeserializePbInputInitializedByDefault() { - assertEquals(actualObject, expectedObject); + assertEquals( + expectedObjectInitializedByDefault, + sut.deserialize(DateTimeEntry.class, expectedPbInputInitializedByDefault) + ); } } From 8e771c6cca95ae69ead438a84932e4e53642d7f5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 21:58:10 +0300 Subject: [PATCH 245/549] Renamed some fields and methods, formatted the code. --- .../protobuf/AccountBalancePbSerdeTest.java | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java index 528c261..7b05d74 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java @@ -18,8 +18,8 @@ public class AccountBalancePbSerdeTest { private static AccountBalance expectedObject; private static byte[] expectedPbInput; - private static AccountBalance expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static AccountBalance expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -62,10 +62,10 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = AccountBalance.builder() + expectedObjectWithOnlyRequiredFields = AccountBalance.builder() .firmUse(1) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.AccountBalance.newBuilder() + expectedPbInputWithOnlyRequiredFields = QluaStructures.AccountBalance.newBuilder() .setFirmuse(1) .build() .toByteArray(); @@ -74,32 +74,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(AccountBalance.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(AccountBalance.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 5611169c7690b34a73b395a57eb8c7780c9651dc Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:01:11 +0300 Subject: [PATCH 246/549] Renamed some fields and methods, formatted the code. --- .../protobuf/AccountPositionPbSerdeTest.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java index 30b7d8d..5fd7e3e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java @@ -18,8 +18,8 @@ public class AccountPositionPbSerdeTest { private static AccountPosition expectedObject; private static byte[] expectedPbInput; - private static AccountPosition expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static AccountPosition expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -68,40 +68,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = AccountPosition.builder().build(); - expectedPbInputWithEmptyNonRequiredStringFields = - QluaStructures.AccountPosition.newBuilder().build().toByteArray(); + expectedObjectWithOnlyRequiredFields = AccountPosition.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.AccountPosition.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(AccountPosition.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(AccountPosition.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 2dc51fd4873469c791ab183d53a44c378af37566 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:05:41 +0300 Subject: [PATCH 247/549] Renamed some fields and methods, formatted the code. --- .../quik/lua/rpc/api/structures/AllTrade.java | 8 ++-- .../serde/protobuf/AllTradePbSerdeTest.java | 43 ++++++++++--------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 470dee7..765d95e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -13,7 +13,7 @@ public class AllTrade { @JsonProperty("trade_num") long tradeNum; @JsonProperty("flags") int flags; - @JsonProperty("price") @NonNull String price; + @JsonProperty("price") String price; @JsonProperty("qty") int qty; @JsonProperty("value") String value; @JsonProperty("accruedint") String accruedInt; @@ -25,7 +25,7 @@ public class AllTrade { @JsonProperty("repoterm") String repoTerm; @JsonProperty("sec_code") String secCode; @JsonProperty("class_code") String classCode; - @JsonProperty("datetime") @NonNull DateTimeEntry datetime; + @JsonProperty("datetime") DateTimeEntry datetime; @JsonProperty("period") int period; @JsonProperty("open_interest") String openInterest; @JsonProperty("exchange_code") String exchangeCode; @@ -38,7 +38,7 @@ public class AllTrade { private AllTrade( @JsonProperty(value = "trade_num", required = true) final long tradeNum, @JsonProperty(value = "flags", required = true) final int flags, - @JsonProperty(value = "price", required = true) final String price, + @JsonProperty(value = "price", required = true) @NonNull final String price, @JsonProperty(value = "qty", required = true) final int qty, @JsonProperty("value") final String value, @JsonProperty("accruedint") final String accruedInt, @@ -50,7 +50,7 @@ private AllTrade( @JsonProperty("repoterm") final String repoTerm, @JsonProperty("sec_code") final String secCode, @JsonProperty("class_code") final String classCode, - @JsonProperty(value = "datetime", required = true) final DateTimeEntry datetime, + @JsonProperty(value = "datetime", required = true) @NonNull final DateTimeEntry datetime, @JsonProperty(value = "period", required = true) final int period, @JsonProperty("open_interest") final String openInterest, @JsonProperty("exchange_code") final String exchangeCode) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java index a2a685b..e54acc4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -19,8 +19,8 @@ public class AllTradePbSerdeTest { private static AllTrade expectedObject; private static byte[] expectedPbInput; - private static AllTrade expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static AllTrade expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -92,14 +92,14 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = AllTrade.builder() + expectedObjectWithOnlyRequiredFields = AllTrade.builder() .tradeNum(1L) .flags(2) .price("3") .period(4) .datetime(dateTimeEntry) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.AllTrade.newBuilder() + expectedPbInputWithOnlyRequiredFields = QluaStructures.AllTrade.newBuilder() .setTradeNum(1L) .setFlags(2) .setPrice("3") @@ -112,32 +112,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(AllTrade.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(AllTrade.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 8e7de620de780b113718e8f391f5bdef79cd56ab Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:08:01 +0300 Subject: [PATCH 248/549] Renamed some fields and methods, formatted the code. --- .../protobuf/CandleEntryPbSerdeTest.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java index 04a81ee..6062d4c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java @@ -19,8 +19,8 @@ public class CandleEntryPbSerdeTest { private static CandleEntry expectedObject; private static byte[] expectedPbInput; - private static CandleEntry expectedObjectInitializedByDefault; - private static byte[] expectedPbInputInitializedByDefault; + private static CandleEntry expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -70,39 +70,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectInitializedByDefault = CandleEntry.builder().build(); - expectedPbInputInitializedByDefault = QluaStructures.CandleEntry.getDefaultInstance().toByteArray(); + expectedObjectWithOnlyRequiredFields = CandleEntry.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.CandleEntry.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { - - final CandleEntry actualObject = sut.deserialize(CandleEntry.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + assertEquals(expectedObject, sut.deserialize(CandleEntry.class, expectedPbInput)); } @Test - public void testSerializeObjectInitializedByDefault() { - - final byte[] actual = sut.serialize(expectedObjectInitializedByDefault); - - assertTrue( Arrays.equals(expectedPbInputInitializedByDefault, actual) ); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputInitializedByDefault() { - - final CandleEntry actualObject = sut.deserialize(CandleEntry.class, expectedPbInputInitializedByDefault); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectInitializedByDefault); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(CandleEntry.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 6d9cfa5cd1c47f8c756e9e5aaff9a315903eff9c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:09:10 +0300 Subject: [PATCH 249/549] Renamed some fields and methods. --- .../protobuf/DateTimeEntryPbSerdeTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java index 72f6e87..50649a6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java @@ -18,8 +18,8 @@ public class DateTimeEntryPbSerdeTest { private static DateTimeEntry expectedObject; private static byte[] expectedPbInput; - private static DateTimeEntry expectedObjectInitializedByDefault; - private static byte[] expectedPbInputInitializedByDefault; + private static DateTimeEntry expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -50,8 +50,8 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectInitializedByDefault = DateTimeEntry.builder().build(); - expectedPbInputInitializedByDefault = QluaStructures.DateTimeEntry.getDefaultInstance().toByteArray(); + expectedObjectWithOnlyRequiredFields = DateTimeEntry.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.DateTimeEntry.newBuilder().build().toByteArray(); } @Test @@ -68,22 +68,22 @@ public void testDeserialize() { } @Test - public void testSerializeObjectInitializedByDefault() { + public void testSerialize_WithOnlyRequiredFields() { assertTrue( Arrays.equals( - expectedPbInputInitializedByDefault, - sut.serialize(expectedObjectInitializedByDefault) + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) ) ); } @Test - public void testDeserializePbInputInitializedByDefault() { + public void testDeserialize_WithOnlyRequiredFields() { assertEquals( - expectedObjectInitializedByDefault, - sut.deserialize(DateTimeEntry.class, expectedPbInputInitializedByDefault) + expectedObjectWithOnlyRequiredFields, + sut.deserialize(DateTimeEntry.class, expectedPbInputWithOnlyRequiredFields) ); } } From 6e5c379e2c011dbe3f73b86815f9841c5aec0985 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:11:44 +0300 Subject: [PATCH 250/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/BuySellInfoPbSerdeTest.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java index 9070462..0196085 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java @@ -17,6 +17,9 @@ public class BuySellInfoPbSerdeTest { private static BuySellInfo expectedObject; private static byte[] expectedPbInput; + private static BuySellInfo expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() { @@ -69,21 +72,41 @@ public static void globalSetup() { .setCanSellOwn("12") .build() .toByteArray(); + + expectedObjectWithOnlyRequiredFields = BuySellInfo.builder().build(); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(BuySellInfo.class, expectedPbInput)); + } - final BuySellInfo actualObject = sut.deserialize(BuySellInfo.class, expectedPbInput); + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObject); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(BuySellInfo.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 9dd3518f5761a8cdc64ce183fa053ef85bb7b6a9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:13:52 +0300 Subject: [PATCH 251/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/BuySellInfoExPbSerdeTest.java | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java index 3a4539c..2e8dec1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java @@ -18,6 +18,9 @@ public class BuySellInfoExPbSerdeTest { private static BuySellInfoEx expectedObject; private static byte[] expectedPbInput; + private static BuySellInfoEx expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() { @@ -94,21 +97,46 @@ public static void globalSetup() { .setIsShortAllowed("9") .build() .toByteArray(); + + expectedObjectWithOnlyRequiredFields = BuySellInfoEx.builder() + .buySellInfo(buySellInfo) + .build(); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .build() + .toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(BuySellInfoEx.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } - final BuySellInfoEx actualObject = sut.deserialize(BuySellInfoEx.class, expectedPbInput); + @Test + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObject); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(BuySellInfoEx.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 47a86797de5389ec1db6ae07caa8467c08199fdf Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:15:34 +0300 Subject: [PATCH 252/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/ClassInfoPbSerdeTest.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java index 202254d..5a4d93d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java @@ -18,6 +18,9 @@ public class ClassInfoPbSerdeTest { private static ClassInfo expectedObject; private static byte[] expectedPbInput; + private static ClassInfo expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() { @@ -38,21 +41,41 @@ public static void globalSetup() { .setNsecs(5) .build() .toByteArray(); + + expectedObjectWithOnlyRequiredFields = ClassInfo.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.Klass.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(ClassInfo.class, expectedPbInput)); + } - final ClassInfo actualObject = sut.deserialize(ClassInfo.class, expectedPbInput); + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObject); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(ClassInfo.class, expectedPbInputWithOnlyRequiredFields) + ); } } From e6735417c227b44469b348e1ad80eb0bf679e243 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:20:20 +0300 Subject: [PATCH 253/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/DepoLimitPbSerdeTest.java | 60 +++++++------------ 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java index 588e38e..ea1e59a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java @@ -18,8 +18,8 @@ public class DepoLimitPbSerdeTest { private static DepoLimit expectedObject; private static byte[] expectedPbInput; - private static DepoLimit expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static DepoLimit expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -60,56 +60,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = DepoLimit.builder() - .openBal(1) - .openLimit(2) - .currentBal(3) - .currentLimit(4) - .lockedSell(5) - .lockedBuy(6) - .limitKind(7) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.DepoLimit.newBuilder() - .setOpenbal(1) - .setOpenlimit(2) - .setCurrentbal(3) - .setCurrentlimit(4) - .setLockedSell(5) - .setLockedBuy(6) - .setLimitKind(7) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = DepoLimit.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.DepoLimit.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(DepoLimit.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final DepoLimit actualObject = sut.deserialize(DepoLimit.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final DepoLimit actualObject = sut.deserialize(DepoLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(DepoLimit.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 0f2bc7004f9ecd20f35e275d630323dd510dd090 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:22:26 +0300 Subject: [PATCH 254/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../quik/lua/rpc/api/structures/Firm.java | 2 +- .../rpc/serde/protobuf/FirmPbSerdeTest.java | 47 +++++++++---------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index 591d962..a3b4e4b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -26,7 +26,7 @@ public class Firm { @Builder @JsonCreator private Firm( - @JsonProperty("firm_id") @NonNull final String firmId, + @JsonProperty(value = "firm_id", required = true) @NonNull final String firmId, @JsonProperty("firm_name") final String firmName, @JsonProperty(value = "status", required = true) int status, @JsonProperty("exchange") final String exchange) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index a7cdff3..b97afca 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -18,8 +18,8 @@ public class FirmPbSerdeTest { private static Firm expectedObject; private static byte[] expectedPbInput; - private static Firm expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static Firm expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -40,13 +40,11 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = Firm.builder() + expectedObjectWithOnlyRequiredFields = Firm.builder() .firmId("1") - .status(2) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.Firm.newBuilder() + expectedPbInputWithOnlyRequiredFields = QluaStructures.Firm.newBuilder() .setFirmid("1") - .setStatus(2) .build() .toByteArray(); } @@ -54,32 +52,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } - + @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(Firm.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final Firm actualObject = sut.deserialize(Firm.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final Firm actualObject = sut.deserialize(Firm.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(Firm.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 832eea42ed7238522c684898e538a599ebf16af5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:27:28 +0300 Subject: [PATCH 255/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../rpc/serde/protobuf/FirmPbSerdeTest.java | 2 +- .../FuturesClientHoldingPbSerdeTest.java | 54 ++++++++----------- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index b97afca..7599764 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -56,7 +56,7 @@ public void testSerialize() { Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) ); } - + @Test public void testDeserialize() { assertEquals(expectedObject, sut.deserialize(Firm.class, expectedPbInput)); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java index 6292e15..a9162fe 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java @@ -18,8 +18,8 @@ public class FuturesClientHoldingPbSerdeTest { private static FuturesClientHolding expectedObject; private static byte[] expectedPbInput; - private static FuturesClientHolding expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static FuturesClientHolding expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -70,50 +70,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = FuturesClientHolding.builder() - .type(1) - .openBuys(2) - .openSells(3) - .sessionStatus(4) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesClientHolding.newBuilder() - .setType(1) - .setOpenbuys(2) - .setOpensells(3) - .setSessionStatus(4) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = FuturesClientHolding.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesClientHolding.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(FuturesClientHolding.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final FuturesClientHolding actualObject = sut.deserialize(FuturesClientHolding.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final FuturesClientHolding actualObject = sut.deserialize(FuturesClientHolding.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(FuturesClientHolding.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 1da77b650885d50cc8b60a6754c460bc7af118f0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:29:00 +0300 Subject: [PATCH 256/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../FuturesLimitDeletePbSerdeTest.java | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java index 99ef902..46e48f1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java @@ -18,8 +18,8 @@ public class FuturesLimitDeletePbSerdeTest { private static FuturesLimitDelete expectedObject; private static byte[] expectedPbInput; - private static FuturesLimitDelete expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static FuturesLimitDelete expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -36,44 +36,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = FuturesLimitDelete.builder() - .limitType(1) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesLimitDelete.newBuilder() - .setLimitType(1) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = FuturesLimitDelete.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesLimitDelete.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(FuturesLimitDelete.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final FuturesLimitDelete actualObject = sut.deserialize(FuturesLimitDelete.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final FuturesLimitDelete actualObject = sut.deserialize(FuturesLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(FuturesLimitDelete.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 144f8509230fe412c7fa466c97657726f27ee556 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:30:22 +0300 Subject: [PATCH 257/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/FuturesLimitPbSerdeTest.java | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java index bedc744..97e887b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java @@ -18,8 +18,8 @@ public class FuturesLimitPbSerdeTest { private static FuturesLimit expectedObject; private static byte[] expectedPbInput; - private static FuturesLimit expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static FuturesLimit expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -66,44 +66,39 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = FuturesLimit.builder() - .limitType(1) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.FuturesLimit.newBuilder() - .setLimitType(1) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = FuturesLimit.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesLimit.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(FuturesLimit.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final FuturesLimit actualObject = sut.deserialize(FuturesLimit.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final FuturesLimit actualObject = sut.deserialize(FuturesLimit.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(FuturesLimit.class, expectedPbInputWithOnlyRequiredFields) + ); } } From d4dcc803c058c6a802f8490eddf1af565c0829f3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:31:43 +0300 Subject: [PATCH 258/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/MoneyLimitDeletePbSerdeTest.java | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java index 201f34c..6ecb396 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java @@ -36,44 +36,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = MoneyLimitDelete.builder() - .limitKind(1) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimitDelete.newBuilder() - .setLimitKind(1) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = MoneyLimitDelete.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimitDelete.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(MoneyLimitDelete.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final MoneyLimitDelete actualObject = sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithOnlyRequiredFields) + ); } } From d0b27abff08104347c17e2dc820adb469a06ba40 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:32:51 +0300 Subject: [PATCH 259/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/MoneyLimitPbSerdeTest.java | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java index 4e4a4be..098ee7b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java @@ -58,44 +58,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = MoneyLimit.builder() - .limitKind(1) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimit.newBuilder() - .setLimitKind(1) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = MoneyLimit.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimit.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(MoneyLimit.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final MoneyLimit actualObject = sut.deserialize(MoneyLimit.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(MoneyLimit.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 382b525705b3f7b3480aeae31dabd035d13200a8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:34:07 +0300 Subject: [PATCH 260/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/NegDealPbSerdeTest.java | 50 ++++++++----------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java index 032959c..25a3445 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java @@ -152,50 +152,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = NegDeal.builder() - .negDealNum(1L) - .flags(2) - .qty(3) - .repoEntry(4) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.NegDeal.newBuilder() - .setNegDealNum(1L) - .setFlags(2) - .setQty(3) - .setRepoentry(4) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = NegDeal.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.NegDeal.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializeWithOnlyRequiredFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(NegDeal.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializeWithOnlyRequiredFields() { - - final NegDeal actualObject = sut.deserialize(NegDeal.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(NegDeal.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 4d77339afdcec05c198e3dd53a2b054aaf7f22fa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:35:13 +0300 Subject: [PATCH 261/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/NegTradePbSerdeTest.java | 58 +++++++------------ 1 file changed, 20 insertions(+), 38 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java index 9cceec0..77f5252 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java @@ -154,58 +154,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = NegTrade.builder() - .tradeNum(1L) - .flags(2) - .qty(3) - .type(4) - .operationType(5) - .settled(6) - .clearingType(7) - .exFlags(8) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.NegTrade.newBuilder() - .setTradeNum(1L) - .setFlags(2) - .setQty(3) - .setType(4) - .setOperationType(5) - .setSettled(6) - .setClearingType(7) - .setExFlags(8) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = NegTrade.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.NegTrade.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(NegTrade.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final NegTrade actualObject = sut.deserialize(NegTrade.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(NegTrade.class, expectedPbInputWithOnlyRequiredFields) + ); } } From f2b970f123fae91adf5a05c87e871fadbc4e4286 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:36:34 +0300 Subject: [PATCH 262/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../rpc/serde/protobuf/OrderPbSerdeTest.java | 64 ++++++------------- 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java index caf57f4..6f96b74 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java @@ -140,64 +140,40 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = Order.builder() - .orderNum(1L) - .flags(2) - .qty(8) - .valueEntryType(28) - .minQty(36) - .execType(37) - .sideQualifier(38) - .acntType(39) - .capacity(40) - .passiveOnlyOrder(41) - .visible(42) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Order.newBuilder() - .setOrderNum(1L) - .setFlags(2) - .setQty(8) - .setValueEntryType(28) - .setMinQty(36) - .setExecType(37) - .setSideQualifier(38) - .setAcntType(39) - .setCapacity(40) - .setPassiveOnlyOrder(41) - .setVisible(42) - .build() - .toByteArray(); + expectedObjectWithOnlyRequiredFields = Order.builder().build(); + expectedPbInputWithOnlyRequiredFields = QluaStructures.Order.newBuilder().build().toByteArray(); } @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(Order.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final Order actualObject = sut.deserialize(Order.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final Order actualObject = sut.deserialize(Order.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(Order.class, expectedPbInputWithOnlyRequiredFields) + ); } } From e8c46c7a528011cd64ff012923c788a6c34c0ff1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:37:38 +0300 Subject: [PATCH 263/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/ParamEventInfoPbSerdeTest.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java index 5671a00..0229b21 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java @@ -43,32 +43,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(ParamEventInfo.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final ParamEventInfo actualObject = sut.deserialize(ParamEventInfo.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(ParamEventInfo.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 7a0b8e6f1fa43efb4cb6d9a6371d1d387ba386ae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:38:15 +0300 Subject: [PATCH 264/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../protobuf/QuoteEventInfoPbSerdeTest.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java index 248f786..0537b0d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java @@ -43,32 +43,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(QuoteEventInfo.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final QuoteEventInfo actualObject = sut.deserialize(QuoteEventInfo.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(QuoteEventInfo.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 1b807eb2876663fa1ad7b3f9044328c700b0223f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:40:03 +0300 Subject: [PATCH 265/549] Formatted the code. --- .../rpc/serde/protobuf/StopEventInfoPbSerdeTest.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java index b4c8cbd..cffbc3d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java @@ -33,16 +33,13 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test public void testDeserialize() { - - final StopEventInfo actualObject = sut.deserialize(StopEventInfo.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + assertEquals(expectedObject, sut.deserialize(StopEventInfo.class, expectedPbInput)); } } From 287b153f16c9b7a4ac217de318c47731559d9af0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:40:47 +0300 Subject: [PATCH 266/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../serde/protobuf/StopOrderPbSerdeTest.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java index 44ad968..775788b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java @@ -152,32 +152,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(StopOrder.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final StopOrder actualObject = sut.deserialize(StopOrder.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(StopOrder.class, expectedPbInputWithOnlyRequiredFields) + ); } } From e610b05d61e86b655fdd1e59ca63c8a6ffed4b77 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:41:43 +0300 Subject: [PATCH 267/549] Renamed some fields and methods, formatted the code; added ser/deser test cases for object with only the required fields set. --- .../rpc/serde/protobuf/TradePbSerdeTest.java | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java index 0d8ba25..2a15cca 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java @@ -19,8 +19,8 @@ public class TradePbSerdeTest { private static Trade expectedObject; private static byte[] expectedPbInput; - private static Trade expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; + private static Trade expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; @BeforeClass public static void globalSetup() { @@ -152,7 +152,7 @@ public static void globalSetup() { .build() .toByteArray(); - expectedObjectWithNullNonRequiredStringFileds = Trade.builder() + expectedObjectWithOnlyRequiredFields = Trade.builder() .tradeNum(1L) .orderNum(2L) .qty(3) @@ -160,7 +160,7 @@ public static void globalSetup() { .period(5) .kind(6) .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.Trade.newBuilder() + expectedPbInputWithOnlyRequiredFields = QluaStructures.Trade.newBuilder() .setTradeNum(1L) .setOrderNum(2L) .setQty(3) @@ -174,32 +174,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(Trade.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final Trade actualObject = sut.deserialize(Trade.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final Trade actualObject = sut.deserialize(Trade.class, expectedPbInputWithEmptyNonRequiredStringFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(Trade.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 17f86be534e910685ff9e833c803d265e1ffcd0a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:42:09 +0300 Subject: [PATCH 268/549] Renamed some fields and methods, formatted the code. --- .../serde/protobuf/TransReplyPbSerdeTest.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java index a4d515f..66f3cbd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java @@ -108,32 +108,33 @@ public static void globalSetup() { @Test public void testSerialize() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); } @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(DateTimeEntry.class, expectedPbInput)); } @Test - public void testDeserialize() { - - final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); } @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final TransReply actualObject = sut.deserialize(TransReply.class, expectedPbInputWithOnlyRequiredFields); + public void testDeserialize_WithOnlyRequiredFields() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(DateTimeEntry.class, expectedPbInputWithOnlyRequiredFields) + ); } } From 3d7eafc923ceb04e23f98426042c9e80f4a2e2c0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:42:39 +0300 Subject: [PATCH 269/549] Fixed copy-paste error. --- .../quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java index 66f3cbd..9b9c220 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java @@ -115,7 +115,7 @@ public void testSerialize() { @Test public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(DateTimeEntry.class, expectedPbInput)); + assertEquals(expectedObject, sut.deserialize(TransReply.class, expectedPbInput)); } @Test @@ -134,7 +134,7 @@ public void testDeserialize_WithOnlyRequiredFields() { assertEquals( expectedObjectWithOnlyRequiredFields, - sut.deserialize(DateTimeEntry.class, expectedPbInputWithOnlyRequiredFields) + sut.deserialize(TransReply.class, expectedPbInputWithOnlyRequiredFields) ); } } From 65524adc661ee20eae63018bf6dd210d9bd57d1c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 22:58:00 +0300 Subject: [PATCH 270/549] Added a protobuf serde facility for GetClassSecurities.Request, GetClassSecurities.Result. --- .../rpc/api/messages/GetClassSecurities.java | 6 +- .../GetClassSecuritiesRequestPbSerde.java | 54 ++++++++++++++ .../GetClassSecuritiesResultPbSerde.java | 40 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetClassSecuritiesRequestPbSerdeTest.java | 52 ++++++++++++++ .../GetClassSecuritiesResultPbSerdeTest.java | 70 +++++++++++++++++++ 6 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java index 168022d..4702768 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java @@ -11,7 +11,11 @@ private GetClassSecurities() {} @Value public static class Request { - @NonNull String classCode; + String classCode; + + public Request(@NonNull final String classCode) { + this.classCode = classCode; + } @Override public String toString() { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java new file mode 100644 index 0000000..c8242d3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetClassSecuritiesRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASS_SECURITIES; + + @Override + public byte[] serialize(final GetClassSecurities.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassSecurities.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetClassSecurities.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetClassSecurities.Request convertFromPb(@NotNull final qlua.rpc.GetClassSecurities.Request request) { + return new GetClassSecurities.Request( request.getClassCode() ); + } + + @Override + public qlua.rpc.GetClassSecurities.Request convertToPb(@NotNull final GetClassSecurities.Request request) { + + return qlua.rpc.GetClassSecurities.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java new file mode 100644 index 0000000..41d3672 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum GetClassSecuritiesResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetClassSecurities.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassSecurities.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetClassSecurities.Result.parseFrom(data) ); + } + + @Override + public GetClassSecurities.Result convertFromPb(@NotNull final qlua.rpc.GetClassSecurities.Result result) { + return new GetClassSecurities.Result( convertFromPbString(result.getClassSecurities()) ); + } + + @Override + public qlua.rpc.GetClassSecurities.Result convertToPb(@NotNull final GetClassSecurities.Result result) { + return qlua.rpc.GetClassSecurities.Result.newBuilder() + .setClassSecurities( convertToPbString(result.getClassSecurities()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index e920c75..a2a2012 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -144,6 +144,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetClassesList.Result.class, GetClassesListResultPbSerde.INSTANCE); registerSerde(result, GetClassInfo.Request.class, GetClassInfoRequestPbSerde.INSTANCE); registerSerde(result, GetClassInfo.Result.class, GetClassInfoResultPbSerde.INSTANCE); + registerSerde(result, GetClassSecurities.Request.class, GetClassSecuritiesRequestPbSerde.INSTANCE); + registerSerde(result, GetClassSecurities.Result.class, GetClassSecuritiesResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java new file mode 100644 index 0000000..b8322ed --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassSecuritiesRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassSecurities.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetClassSecurities.Request("1"); + final ByteString pbArgs = qlua.rpc.GetClassSecurities.Request.newBuilder() + .setClassCode("1") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_CLASS_SECURITIES) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetClassSecurities.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java new file mode 100644 index 0000000..bbdb0e4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetClassSecuritiesResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetClassSecurities.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetClassSecurities.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetClassSecurities.Result("1"); + expectedPbInput = qlua.rpc.GetClassesList.Result.newBuilder() + .setClassesList("1") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetClassSecurities.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassesList.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetClassSecurities.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetClassSecurities.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} From 88dd664915d9304af2481e5e28e69cf9f7169c6d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Sep 2018 23:07:38 +0300 Subject: [PATCH 271/549] Added a protobuf serde facility for Depo. --- .../lua/rpc/serde/protobuf/DepoPbSerde.java | 58 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../rpc/serde/protobuf/DepoPbSerdeTest.java | 86 +++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java new file mode 100644 index 0000000..f06a37f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum DepoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Depo depo) { + return convertToPb(depo).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Depo deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.GetDepo.Depo.parseFrom(data)); + } + + @Override + public Depo convertFromPb(@NotNull qlua.rpc.GetDepo.Depo depo) { + + return Depo + .builder() + .depoLimitLockedBuyValue( convertFromPbString(depo.getDepoLimitLockedBuyValue()) ) + .depoCurrentBalance( convertFromPbString(depo.getDepoCurrentBalance()) ) + .depoLimitLockedBuy( convertFromPbString(depo.getDepoLimitLockedBuy()) ) + .depoLimitLocked( convertFromPbString(depo.getDepoLimitLocked()) ) + .depoLimitAvailable( convertFromPbString(depo.getDepoLimitAvailable()) ) + .depoCurrentLimit( convertFromPbString(depo.getDepoCurrentLimit()) ) + .depoOpenBalance( convertFromPbString(depo.getDepoOpenBalance()) ) + .depoOpenLimit( convertFromPbString(depo.getDepoOpenLimit()) ) + .build(); + } + + @Override + public qlua.rpc.GetDepo.Depo convertToPb(@NotNull final Depo depo) { + + return qlua.rpc.GetDepo.Depo.newBuilder() + .setDepoLimitLockedBuyValue( convertToPbString(depo.getDepoLimitLockedBuyValue()) ) + .setDepoCurrentBalance( convertToPbString(depo.getDepoCurrentBalance()) ) + .setDepoLimitLockedBuy( convertToPbString(depo.getDepoLimitLockedBuy()) ) + .setDepoLimitLocked( convertToPbString(depo.getDepoLimitLocked()) ) + .setDepoLimitAvailable( convertToPbString(depo.getDepoLimitAvailable()) ) + .setDepoCurrentLimit( convertToPbString(depo.getDepoCurrentLimit()) ) + .setDepoOpenBalance( convertToPbString(depo.getDepoOpenBalance()) ) + .setDepoOpenLimit( convertToPbString(depo.getDepoOpenLimit()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index a2a2012..19644c0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -105,6 +105,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); registerSerde(result, CandleEntry.class, CandleEntryPbSerde.INSTANCE); registerSerde(result, ClassInfo.class, ClassInfoPbSerde.INSTANCE); + registerSerde(result, Depo.class, DepoPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java new file mode 100644 index 0000000..0689062 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java @@ -0,0 +1,86 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class DepoPbSerdeTest { + + private static SerdeModule sut; + + private static Depo expectedObject; + private static byte[] expectedPbInput; + + private static Depo expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = Depo.builder() + .depoLimitLockedBuyValue("1") + .depoCurrentBalance("2") + .depoLimitLockedBuy("3") + .depoLimitLocked("4") + .depoLimitAvailable("5") + .depoCurrentLimit("6") + .depoOpenBalance("7") + .depoOpenLimit("8") + .build(); + expectedPbInput = qlua.rpc.GetDepo.Depo.newBuilder() + .setDepoLimitLockedBuyValue("1") + .setDepoCurrentBalance("2") + .setDepoLimitLockedBuy("3") + .setDepoLimitLocked("4") + .setDepoLimitAvailable("5") + .setDepoCurrentLimit("6") + .setDepoOpenBalance("7") + .setDepoOpenLimit("8") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = Depo.builder().build(); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetDepo.Depo.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(Depo.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(Depo.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} From 290068a1f113553c5e9557433be1c57548c71811 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 00:41:56 +0300 Subject: [PATCH 272/549] Added a protobuf serde facility for GetDepo.Request, GetDepo.Result. --- .../quik/lua/rpc/api/messages/GetDepo.java | 5 +- .../serde/protobuf/GetDepoRequestPbSerde.java | 63 ++++++++++++++++++ .../serde/protobuf/GetDepoResultPbSerde.java | 40 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 14 ++++ .../protobuf/GetDepoRequestPbSerdeTest.java | 60 +++++++++++++++++ .../protobuf/GetDepoResultPbSerdeTest.java | 66 +++++++++++++++++++ 7 files changed, 249 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java index 48e7837..3c87699 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java @@ -45,9 +45,12 @@ public String toString() { @Value public static class Result { - @NonNull Depo depo; + public Result(@NonNull final Depo depo) { + this.depo = depo; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java new file mode 100644 index 0000000..397e4fe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java @@ -0,0 +1,63 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetDepoRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_DEPO; + + @Override + public byte[] serialize(final GetDepo.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepo.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetDepo.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetDepo.Request convertFromPb(@NotNull final qlua.rpc.GetDepo.Request request) { + + return GetDepo.Request.builder() + .clientCode( request.getClientCode() ) + .firmId( request.getFirmid() ) + .secCode( request.getSecCode() ) + .trdAccId( request.getTrdaccid() ) + .build(); + } + + @Override + public qlua.rpc.GetDepo.Request convertToPb(@NotNull final GetDepo.Request request) { + + return qlua.rpc.GetDepo.Request.newBuilder() + .setClientCode( request.getClientCode() ) + .setFirmid( request.getFirmId() ) + .setSecCode( request.getSecCode() ) + .setTrdaccid( request.getTrdAccId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java new file mode 100644 index 0000000..25a8c0b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetDepoResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetDepo.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepo.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetDepo.Result.parseFrom(data) ); + } + + @Override + public GetDepo.Result convertFromPb(@NotNull final qlua.rpc.GetDepo.Result result) { + return new GetDepo.Result( convertFromPbDepo(result.getDepo()) ); + } + + @Override + public qlua.rpc.GetDepo.Result convertToPb(@NotNull final GetDepo.Result result) { + + return qlua.rpc.GetDepo.Result.newBuilder() + .setDepo( convertToPbDepo(result.getDepo()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 19644c0..cfb9251 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -147,6 +147,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetClassInfo.Result.class, GetClassInfoResultPbSerde.INSTANCE); registerSerde(result, GetClassSecurities.Request.class, GetClassSecuritiesRequestPbSerde.INSTANCE); registerSerde(result, GetClassSecurities.Result.class, GetClassSecuritiesResultPbSerde.INSTANCE); + registerSerde(result, GetDepo.Request.class, GetDepoRequestPbSerde.INSTANCE); + registerSerde(result, GetDepo.Result.class, GetDepoResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index d1ae5e6..b729b9c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -2,9 +2,11 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Depo; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.google.common.base.Strings; @@ -36,6 +38,8 @@ final class ProtobufSerdeUtils { private static final PbConverter CLASS_INFO_PB_CONVERTER = ClassInfoPbSerde.INSTANCE; + private static final PbConverter DEPO_PB_CONVERTER = DepoPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -101,6 +105,16 @@ static ClassInfo convertFromPbClassInfo(@NotNull final QluaStructures.Klass clas return CLASS_INFO_PB_CONVERTER.convertFromPb(classInfo); } + @NotNull + static qlua.rpc.GetDepo.Depo convertToPbDepo(@NotNull final Depo depo) { + return DEPO_PB_CONVERTER.convertToPb(depo); + } + + @NotNull + static Depo convertFromPbDepo(@NotNull final qlua.rpc.GetDepo.Depo depo) { + return DEPO_PB_CONVERTER.convertFromPb(depo); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java new file mode 100644 index 0000000..bf69075 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetDepoRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetDepo.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetDepo.Request.builder() + .clientCode("1") + .firmId("2") + .secCode("3") + .trdAccId("4") + .build(); + final ByteString pbArgs = qlua.rpc.GetDepo.Request.newBuilder() + .setClientCode("1") + .setFirmid("2") + .setSecCode("3") + .setTrdaccid("4") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_DEPO) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetDepo.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java new file mode 100644 index 0000000..eb50c6e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetDepoResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetDepo.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final Depo depo = Depo.builder() + .depoLimitLockedBuyValue("1") + .depoCurrentBalance("2") + .depoLimitLockedBuy("3") + .depoLimitLocked("4") + .depoLimitAvailable("5") + .depoCurrentLimit("6") + .depoOpenBalance("7") + .depoOpenLimit("8") + .build(); + final qlua.rpc.GetDepo.Depo pbDepo = qlua.rpc.GetDepo.Depo.newBuilder() + .setDepoLimitLockedBuyValue("1") + .setDepoCurrentBalance("2") + .setDepoLimitLockedBuy("3") + .setDepoLimitLocked("4") + .setDepoLimitAvailable("5") + .setDepoCurrentLimit("6") + .setDepoOpenBalance("7") + .setDepoOpenLimit("8") + .build(); + + expectedObject = new GetDepo.Result(depo); + expectedPbInput = qlua.rpc.GetDepo.Result.newBuilder() + .setDepo(pbDepo) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetDepo.Result.class, expectedPbInput)); + } +} From 632fc467860aaea1e94d54b3a5be4d8615e37976 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 00:56:14 +0300 Subject: [PATCH 273/549] Added a protobuf serde facility for GetDepoEx.Request, GetDepoEx.Result. --- .../quik/lua/rpc/api/messages/GetDepoEx.java | 1 - .../protobuf/GetDepoExRequestPbSerde.java | 64 +++++++++++ .../protobuf/GetDepoExResultPbSerde.java | 49 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 17 ++- .../protobuf/GetDepoExRequestPbSerdeTest.java | 62 +++++++++++ .../protobuf/GetDepoExResultPbSerdeTest.java | 105 ++++++++++++++++++ 7 files changed, 295 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index 6ce5d60..2eb2a3e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -49,7 +49,6 @@ public String toString() { @Value public static class Result { - @NonNull DepoLimit depoEx; @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java new file mode 100644 index 0000000..26fd20d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetDepoExRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_DEPO_EX; + + @Override + public byte[] serialize(final GetDepoEx.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepoEx.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetDepoEx.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetDepoEx.Request convertFromPb(@NotNull final qlua.rpc.GetDepoEx.Request request) { + return GetDepoEx.Request.builder() + .firmId( request.getFirmid() ) + .clientCode( request.getClientCode() ) + .secCode( request.getSecCode() ) + .trdAccId( request.getTrdaccid() ) + .limitKind( request.getLimitKind() ) + .build(); + } + + @Override + public qlua.rpc.GetDepoEx.Request convertToPb(@NotNull final GetDepoEx.Request request) { + + return qlua.rpc.GetDepoEx.Request.newBuilder() + .setFirmid( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .setSecCode( request.getSecCode() ) + .setTrdaccid( request.getTrdAccId() ) + .setLimitKind( request.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java new file mode 100644 index 0000000..93a6a17 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetDepoExResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetDepoEx.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepoEx.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetDepoEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetDepoEx.Result convertFromPb(@NotNull final qlua.rpc.GetDepoEx.Result result) { + + final DepoLimit depoLimit = result.hasDepoEx() ? convertFromPbDepoLimit(result.getDepoEx()) : null; + return new GetDepoEx.Result(depoLimit); + } + + @NotNull + @Override + public qlua.rpc.GetDepoEx.Result convertToPb(@NotNull final GetDepoEx.Result result) { + + final qlua.rpc.GetDepoEx.Result.Builder pbResult = qlua.rpc.GetDepoEx.Result.newBuilder(); + final DepoLimit depoLimit = result.getDepoEx(); + if (depoLimit != null) { + pbResult.setDepoEx( convertToPbDepoLimit(result.getDepoEx()) ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index cfb9251..cd26c27 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -149,6 +149,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetClassSecurities.Result.class, GetClassSecuritiesResultPbSerde.INSTANCE); registerSerde(result, GetDepo.Request.class, GetDepoRequestPbSerde.INSTANCE); registerSerde(result, GetDepo.Result.class, GetDepoResultPbSerde.INSTANCE); + registerSerde(result, GetDepoEx.Request.class, GetDepoExRequestPbSerde.INSTANCE); + registerSerde(result, GetDepoEx.Result.class, GetDepoExResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index b729b9c..92f8863 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -3,10 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.google.common.base.Strings; @@ -40,6 +37,8 @@ final class ProtobufSerdeUtils { private static final PbConverter DEPO_PB_CONVERTER = DepoPbSerde.INSTANCE; + private static final PbConverter DEPO_LIMIT_PB_CONVERTER = DepoLimitPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -115,6 +114,16 @@ static Depo convertFromPbDepo(@NotNull final qlua.rpc.GetDepo.Depo depo) { return DEPO_PB_CONVERTER.convertFromPb(depo); } + @NotNull + static QluaStructures.DepoLimit convertToPbDepoLimit(@NotNull final DepoLimit depoLimit) { + return DEPO_LIMIT_PB_CONVERTER.convertToPb(depoLimit); + } + + @NotNull + static DepoLimit convertFromPbDepoLimit(@NotNull final QluaStructures.DepoLimit depoLimit) { + return DEPO_LIMIT_PB_CONVERTER.convertFromPb(depoLimit); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java new file mode 100644 index 0000000..3816369 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetDepoExRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetDepoEx.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetDepoEx.Request.builder() + .firmId("1") + .clientCode("2") + .secCode("3") + .trdAccId("4") + .limitKind(5) + .build(); + final ByteString pbArgs = qlua.rpc.GetDepoEx.Request.newBuilder() + .setFirmid("1") + .setClientCode("2") + .setSecCode("3") + .setTrdaccid("4") + .setLimitKind(5) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_DEPO_EX) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetDepoEx.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java new file mode 100644 index 0000000..7d37207 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java @@ -0,0 +1,105 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetDepoExResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetDepoEx.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetDepoEx.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final DepoLimit depoLimit = DepoLimit.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .openBal(5) + .openLimit(6) + .currentBal(7) + .currentLimit(8) + .lockedSell(9) + .lockedBuy(10) + .lockedBuyValue("11") + .lockedSellValue("12") + .awgPositionPrice("13") + .limitKind(14) + .build(); + final QluaStructures.DepoLimit pbDepoLimit = QluaStructures.DepoLimit.newBuilder() + .setSecCode("1") + .setTrdaccid("2") + .setFirmid("3") + .setClientCode("4") + .setOpenbal(5) + .setOpenlimit(6) + .setCurrentbal(7) + .setCurrentlimit(8) + .setLockedSell(9) + .setLockedBuy(10) + .setLockedBuyValue("11") + .setLockedSellValue("12") + .setAwgPositionPrice("13") + .setLimitKind(14) + .build(); + + expectedObject = new GetDepoEx.Result(depoLimit); + expectedPbInput = qlua.rpc.GetDepoEx.Result.newBuilder() + .setDepoEx(pbDepoLimit) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetDepoEx.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetDepoEx.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetDepoEx.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetDepoEx.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} From a00386ebb1a8727af197f026d54f4ee4ed9c9390 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 01:29:58 +0300 Subject: [PATCH 274/549] Added a protobuf serde facility for GetFuturesHolding.Request, GetFuturesHolding.Result; moderately redone the JSON serde for GetDepoEx and GetFuturesHolding to accommodate null values for DepoLimit (GetDepoEx.Result) and FuturesClientHolding (GetFuturesHolding.Result). --- .../quik/lua/rpc/api/messages/GetDepoEx.java | 16 +++ .../rpc/api/messages/GetFuturesHolding.java | 11 +- .../GetDepoExResultJsonDeserializer.java | 24 ---- .../jackson/QluaJsonJacksonDeserializers.java | 1 - .../protobuf/GetClassInfoResultPbSerde.java | 2 +- .../protobuf/GetDepoExResultPbSerde.java | 2 +- .../GetFuturesHoldingRequestPbSerde.java | 62 ++++++++++ .../GetFuturesHoldingResultPbSerde.java | 50 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 ++ .../api/messages/GetDepoExJsonSerdeTest.java | 93 ++++++++++++++ .../GetFuturesHoldingJsonSerdeTest.java | 25 +++- .../GetFuturesHoldingRequestPbSerdeTest.java | 60 +++++++++ .../GetFuturesHoldingResultPbSerdeTest.java | 115 ++++++++++++++++++ .../resources/json/getDepoEx.request.json | 10 ++ src/test/resources/json/getDepoEx.result.json | 18 +++ ...getDepoEx.result.only_required_fields.json | 1 + ...esHolding.result.only_required_fields.json | 1 + 18 files changed, 471 insertions(+), 35 deletions(-) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java create mode 100644 src/test/resources/json/getDepoEx.request.json create mode 100644 src/test/resources/json/getDepoEx.result.json create mode 100644 src/test/resources/json/getDepoEx.result.only_required_fields.json create mode 100644 src/test/resources/json/getFuturesHolding.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index 2eb2a3e..bd4a86c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.NonNull; @@ -13,10 +15,19 @@ private GetDepoEx() {} @Value public static class Request { + @JsonProperty(value = "firmid", required = true) String firmId; + + @JsonProperty(value = "client_code", required = true) String clientCode; + + @JsonProperty(value = "sec_code", required = true) String secCode; + + @JsonProperty(value = "trdaccid", required = true) String trdAccId; + + @JsonProperty(value = "limit_kind", required = true) int limitKind; @Builder @@ -51,6 +62,11 @@ public static class Result { DepoLimit depoEx; + @JsonCreator + public Result(@JsonProperty("depo_ex") final DepoLimit depoEx) { + this.depoEx = depoEx; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index 90d101f..de713f4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -15,9 +15,16 @@ private GetFuturesHolding() {} @Value public static class Request { + @JsonProperty(value = "firmid", required = true) String firmId; + + @JsonProperty(value = "trdaccid", required = true) String trdAccId; + + @JsonProperty(value = "sec_code", required = true) String secCode; + + @JsonProperty(value = "type", required = true) int type; @Builder @@ -47,10 +54,10 @@ public String toString() { @Value public static class Result { - @NonNull FuturesClientHolding futuresHolding; + FuturesClientHolding futuresHolding; @JsonCreator - public Result(final @JsonProperty(value = "futures_holding", required = true) FuturesClientHolding futuresHolding) { + public Result(@JsonProperty(value = "futures_holding") final FuturesClientHolding futuresHolding) { this.futuresHolding = futuresHolding; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java deleted file mode 100644 index fc7734f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExResultJsonDeserializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetDepoExResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetDepoEx.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - final DepoLimit depoEx = node.get("depo_ex").traverse(objectCodec).readValueAs(DepoLimit.class); - - return new GetDepoEx.Result(depoEx); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java index ee5570e..31ff49d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java @@ -47,6 +47,5 @@ public QluaJsonJacksonDeserializers() { super.addDeserializer(GetClassSecurities.Result.class, new GetClassSecuritiesResultJsonDeserializer()); super.addDeserializer(Depo.class, new DepoJsonDeserializer()); super.addDeserializer(GetDepo.Result.class, new GetDepoResultJsonDeserializer()); - super.addDeserializer(GetDepoEx.Result.class, new GetDepoExResultJsonDeserializer()); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java index eff6063..a195b67 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java @@ -45,7 +45,7 @@ public qlua.rpc.GetClassInfo.Result convertToPb(@NotNull final GetClassInfo.Resu final qlua.rpc.GetClassInfo.Result.Builder pbResult = qlua.rpc.GetClassInfo.Result.newBuilder(); final ClassInfo classInfo = result.getClassInfo(); if (classInfo != null) { - pbResult.setClassInfo( convertToPbClassInfo(result.getClassInfo()) ); + pbResult.setClassInfo( convertToPbClassInfo(classInfo) ); } return pbResult.build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java index 93a6a17..c8e9dc5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java @@ -41,7 +41,7 @@ public qlua.rpc.GetDepoEx.Result convertToPb(@NotNull final GetDepoEx.Result res final qlua.rpc.GetDepoEx.Result.Builder pbResult = qlua.rpc.GetDepoEx.Result.newBuilder(); final DepoLimit depoLimit = result.getDepoEx(); if (depoLimit != null) { - pbResult.setDepoEx( convertToPbDepoLimit(result.getDepoEx()) ); + pbResult.setDepoEx( convertToPbDepoLimit(depoLimit) ); } return pbResult.build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java new file mode 100644 index 0000000..fa9d743 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetFuturesHoldingRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_FUTURES_HOLDING; + + @Override + public byte[] serialize(final GetFuturesHolding.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesHolding.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetFuturesHolding.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetFuturesHolding.Request convertFromPb(@NotNull final qlua.rpc.GetFuturesHolding.Request request) { + return GetFuturesHolding.Request.builder() + .firmId( request.getFirmid() ) + .trdAccId( request.getTrdaccid() ) + .secCode( request.getSecCode() ) + .type( request.getType() ) + .build(); + } + + @Override + public qlua.rpc.GetFuturesHolding.Request convertToPb(@NotNull final GetFuturesHolding.Request request) { + + return qlua.rpc.GetFuturesHolding.Request.newBuilder() + .setFirmid( request.getFirmId() ) + .setTrdaccid( request.getTrdAccId() ) + .setSecCode( request.getSecCode() ) + .setType( request.getType() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java new file mode 100644 index 0000000..9e77511 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbFuturesClientHolding; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbFuturesClientHolding; + +enum GetFuturesHoldingResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetFuturesHolding.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesHolding.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetFuturesHolding.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetFuturesHolding.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesHolding.Result result) { + + final FuturesClientHolding futuresClientHolding = result.hasFuturesHolding() ? convertFromPbFuturesClientHolding(result.getFuturesHolding()) : null; + return new GetFuturesHolding.Result(futuresClientHolding); + } + + @NotNull + @Override + public qlua.rpc.GetFuturesHolding.Result convertToPb(@NotNull final GetFuturesHolding.Result result) { + + final qlua.rpc.GetFuturesHolding.Result.Builder pbResult = qlua.rpc.GetFuturesHolding.Result.newBuilder(); + final FuturesClientHolding futuresClientHolding = result.getFuturesHolding(); + if (futuresClientHolding != null) { + pbResult.setFuturesHolding( convertToPbFuturesClientHolding(futuresClientHolding) ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index cd26c27..2665d83 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -151,6 +151,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetDepo.Result.class, GetDepoResultPbSerde.INSTANCE); registerSerde(result, GetDepoEx.Request.class, GetDepoExRequestPbSerde.INSTANCE); registerSerde(result, GetDepoEx.Result.class, GetDepoExResultPbSerde.INSTANCE); + registerSerde(result, GetFuturesHolding.Request.class, GetFuturesHoldingRequestPbSerde.INSTANCE); + registerSerde(result, GetFuturesHolding.Result.class, GetFuturesHoldingResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 92f8863..633ec09 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -39,6 +39,9 @@ final class ProtobufSerdeUtils { private static final PbConverter DEPO_LIMIT_PB_CONVERTER = DepoLimitPbSerde.INSTANCE; + private static final PbConverter FUTURES_CLIENT_HOLDING_PB_CONVERTER = + FuturesClientHoldingPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -124,6 +127,16 @@ static DepoLimit convertFromPbDepoLimit(@NotNull final QluaStructures.DepoLimit return DEPO_LIMIT_PB_CONVERTER.convertFromPb(depoLimit); } + @NotNull + static QluaStructures.FuturesClientHolding convertToPbFuturesClientHolding(@NotNull final FuturesClientHolding futuresClientHolding) { + return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convertToPb(futuresClientHolding); + } + + @NotNull + static FuturesClientHolding convertFromPbFuturesClientHolding(@NotNull final QluaStructures.FuturesClientHolding futuresClientHolding) { + return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convertFromPb(futuresClientHolding); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java new file mode 100644 index 0000000..f5b9f43 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java @@ -0,0 +1,93 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GetDepoExJsonSerdeTest { + + private static ObjectMapper sut; + + private static GetDepoEx.Request requestObj; + private static String requestJson; + + private static GetDepoEx.Result resultObj; + private static String resultJson; + + private static GetDepoEx.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() throws IOException { + + sut = new ObjectMapper(); + sut.registerModule(new QluaJsonModule()); + + requestObj = GetDepoEx.Request.builder() + .firmId("1") + .clientCode("2") + .secCode("3") + .trdAccId("4") + .limitKind(5) + .build(); + requestJson = + Resources.toString(Resources.getResource("json/getDepoEx.request.json"), Charsets.UTF_8); + + final DepoLimit depoLimit = DepoLimit.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .openBal(5) + .openLimit(6) + .currentBal(7) + .currentLimit(8) + .lockedSell(9) + .lockedBuy(10) + .lockedBuyValue("11") + .lockedSellValue("12") + .awgPositionPrice("13") + .limitKind(14) + .build(); + + resultObj = new GetDepoEx.Result(depoLimit); + resultJson = + Resources.toString(Resources.getResource("json/getDepoEx.result.json"), Charsets.UTF_8); + + resultObjWithOnlyRequiredFields = new GetDepoEx.Result(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getDepoEx.result.only_required_fields.json"), Charsets.UTF_8); + } + + @Test + public void testSerializeRequest() throws IOException { + + final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + + assertEquals(requestJson, actualRequestJson); + } + + @Test + public void testDeserializeResult() throws IOException { + + final GetDepoEx.Result actualResultObj = sut.readValue(resultJson, GetDepoEx.Result.class); + + assertEquals(resultObj, actualResultObj); + } + + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { + + final GetDepoEx.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetDepoEx.Result.class); + + assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java index 1f5cdbc..2d23ab3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java @@ -1,6 +1,5 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; @@ -18,10 +17,14 @@ public class GetFuturesHoldingJsonSerdeTest { private static ObjectMapper sut; private static GetFuturesHolding.Request requestObj; - private static GetFuturesHolding.Result resultObj; private static String requestJson; + + private static GetFuturesHolding.Result resultObj; private static String resultJson; + private static GetFuturesHolding.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() throws IOException { @@ -34,6 +37,8 @@ public static void globalSetup() throws IOException { .secCode("3") .type(4) .build(); + requestJson = + Resources.toString(Resources.getResource("json/getFuturesHolding.request.json"), Charsets.UTF_8); final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() .firmId("1") @@ -58,11 +63,11 @@ public static void globalSetup() throws IOException { .build(); resultObj = new GetFuturesHolding.Result(futuresClientHolding); + resultJson = Resources.toString(Resources.getResource("json/getFuturesHolding.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/getFuturesHolding.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getFuturesHolding.result.json"), Charsets.UTF_8); + resultObjWithOnlyRequiredFields = new GetFuturesHolding.Result(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getFuturesHolding.result.only_required_fields.json"), Charsets.UTF_8); } @Test @@ -80,4 +85,12 @@ public void testResultDeserialize() throws IOException { assertEquals(resultObj, actualResultObj); } + + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { + + final GetFuturesHolding.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetFuturesHolding.Result.class); + + assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java new file mode 100644 index 0000000..4fdee63 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetFuturesHoldingRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetFuturesHolding.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetFuturesHolding.Request.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .build(); + final ByteString pbArgs = qlua.rpc.GetFuturesHolding.Request.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setSecCode("3") + .setType(4) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_FUTURES_HOLDING) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetFuturesHolding.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java new file mode 100644 index 0000000..3b57ae8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java @@ -0,0 +1,115 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetFuturesHoldingResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetFuturesHolding.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetFuturesHolding.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + final QluaStructures.FuturesClientHolding pbFuturesClientHolding = QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setSecCode("3") + .setType(4) + .setStartbuy("5") + .setStartsell("6") + .setTodaybuy("7") + .setTodaysell("8") + .setTotalnet("9") + .setOpenbuys(10) + .setOpensells(11) + .setCbplused("12") + .setCbplplanned("13") + .setVarmargin("14") + .setAvrposnprice("15") + .setPositionvalue("16") + .setRealVarmargin("17") + .setTotalVarmargin("18") + .setSessionStatus(19) + .build(); + + expectedObject = new GetFuturesHolding.Result(futuresClientHolding); + expectedPbInput = qlua.rpc.GetFuturesHolding.Result.newBuilder() + .setFuturesHolding(pbFuturesClientHolding) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetFuturesHolding.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesHolding.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetFuturesHolding.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetFuturesHolding.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} diff --git a/src/test/resources/json/getDepoEx.request.json b/src/test/resources/json/getDepoEx.request.json new file mode 100644 index 0000000..80ddf7d --- /dev/null +++ b/src/test/resources/json/getDepoEx.request.json @@ -0,0 +1,10 @@ +{ + "method" : "getDepoEx", + "args" : { + "firmid" : "1", + "client_code" : "2", + "sec_code" : "3", + "trdaccid" : "4", + "limit_kind" : 5 + } +} \ No newline at end of file diff --git a/src/test/resources/json/getDepoEx.result.json b/src/test/resources/json/getDepoEx.result.json new file mode 100644 index 0000000..4b6f17a --- /dev/null +++ b/src/test/resources/json/getDepoEx.result.json @@ -0,0 +1,18 @@ +{ + "depo_ex" : { + "sec_code" : "1", + "trdaccid" : "2", + "firmid" : "3", + "client_code" : "4", + "openbal" : 5, + "openlimit" : 6, + "currentbal" : 7, + "currentlimit" : 8, + "locked_sell" : 9, + "locked_buy" : 10, + "locked_buy_value" : "11", + "locked_sell_value" : "12", + "awg_position_price" : "13", + "limit_kind" : 14 + } +} \ No newline at end of file diff --git a/src/test/resources/json/getDepoEx.result.only_required_fields.json b/src/test/resources/json/getDepoEx.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getDepoEx.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesHolding.result.only_required_fields.json b/src/test/resources/json/getFuturesHolding.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getFuturesHolding.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 3887301062a04c7a4d286c8bda71afb1d78f7575 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 01:55:12 +0300 Subject: [PATCH 275/549] Removed unnecessary Jackson annotations. --- .../enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java | 9 --------- .../quik/lua/rpc/api/messages/GetFuturesHolding.java | 7 ------- 2 files changed, 16 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index bd4a86c..d33244d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -15,19 +15,10 @@ private GetDepoEx() {} @Value public static class Request { - @JsonProperty(value = "firmid", required = true) String firmId; - - @JsonProperty(value = "client_code", required = true) String clientCode; - - @JsonProperty(value = "sec_code", required = true) String secCode; - - @JsonProperty(value = "trdaccid", required = true) String trdAccId; - - @JsonProperty(value = "limit_kind", required = true) int limitKind; @Builder diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index de713f4..6e48c8f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -15,16 +15,9 @@ private GetFuturesHolding() {} @Value public static class Request { - @JsonProperty(value = "firmid", required = true) String firmId; - - @JsonProperty(value = "trdaccid", required = true) String trdAccId; - - @JsonProperty(value = "sec_code", required = true) String secCode; - - @JsonProperty(value = "type", required = true) int type; @Builder From 734ade22506006f5450cee9db56f4bf8cd09760c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 01:56:17 +0300 Subject: [PATCH 276/549] Moderately redone the JSON deserialization for GetFuturesLimit to accommodate null values for FuturesLimit in GetFuturesLimit.Result. --- .../lua/rpc/api/messages/GetFuturesLimit.java | 16 ++++++------- .../GetFuturesLimitJsonSerdeTest.java | 23 +++++++++++++++---- ...uresLimit.result.only_required_fields.json | 1 + 3 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 src/test/resources/json/getFuturesLimit.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index b8b3fea..70feea3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -15,17 +15,17 @@ private GetFuturesLimit() {} @Value public static class Request { - @NonNull String firmId; - @NonNull String trdAccId; + String firmId; + String trdAccId; int limitType; - @NonNull String currCode; + String currCode; @Builder private Request( - final String firmId, - final String trdAccId, + @NonNull final String firmId, + @NonNull final String trdAccId, final int limitType, - final String currCode) { + @NonNull final String currCode) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -47,10 +47,10 @@ public String toString() { @Value public static class Result { - @NonNull FuturesLimit futuresLimit; + FuturesLimit futuresLimit; @JsonCreator - public Result(final @JsonProperty(value = "futures_limit", required = true) FuturesLimit futuresLimit) { + public Result(final @JsonProperty(value = "futures_limit") FuturesLimit futuresLimit) { this.futuresLimit = futuresLimit; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index 61d41f2..6dbe1a2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -17,10 +17,14 @@ public class GetFuturesLimitJsonSerdeTest { private static ObjectMapper sut; private static GetFuturesLimit.Request requestObj; - private static GetFuturesLimit.Result resultObj; private static String requestJson; + + private static GetFuturesLimit.Result resultObj; private static String resultJson; + private static GetFuturesLimit.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() throws IOException { @@ -33,6 +37,8 @@ public static void globalSetup() throws IOException { .limitType(3) .currCode("4") .build(); + requestJson = + Resources.toString(Resources.getResource("json/getFuturesLimit.request.json"), Charsets.UTF_8); final FuturesLimit futuresLimit = FuturesLimit.builder() .firmId("1") @@ -55,11 +61,12 @@ public static void globalSetup() throws IOException { .build(); resultObj = new GetFuturesLimit.Result(futuresLimit); - - requestJson = - Resources.toString(Resources.getResource("json/getFuturesLimit.request.json"), Charsets.UTF_8); resultJson = Resources.toString(Resources.getResource("json/getFuturesLimit.result.json"), Charsets.UTF_8); + + resultObjWithOnlyRequiredFields = new GetFuturesLimit.Result(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getFuturesLimit.result.only_required_fields.json"), Charsets.UTF_8); } @Test @@ -77,4 +84,12 @@ public void testResultDeserialize() throws IOException { assertEquals(resultObj, actualResultObj); } + + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { + + final GetFuturesLimit.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetFuturesLimit.Result.class); + + assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); + } } diff --git a/src/test/resources/json/getFuturesLimit.result.only_required_fields.json b/src/test/resources/json/getFuturesLimit.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getFuturesLimit.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From f757dd72cb6bbf17b6986442d8e73529ebdee76d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 02:05:02 +0300 Subject: [PATCH 277/549] Added a protobuf serde facility for GetFuturesLimit.Request, GetFuturesLimit.Result. --- .../GetFuturesLimitRequestPbSerde.java | 62 ++++++++++ .../GetFuturesLimitResultPbSerde.java | 49 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 ++ .../GetFuturesLimitRequestPbSerdeTest.java | 60 ++++++++++ .../GetFuturesLimitResultPbSerdeTest.java | 111 ++++++++++++++++++ 6 files changed, 297 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java new file mode 100644 index 0000000..b950c8d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java @@ -0,0 +1,62 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetFuturesLimitRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_FUTURES_LIMIT; + + @Override + public byte[] serialize(final GetFuturesLimit.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesLimit.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetFuturesLimit.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetFuturesLimit.Request convertFromPb(@NotNull final qlua.rpc.GetFuturesLimit.Request request) { + return GetFuturesLimit.Request.builder() + .firmId( request.getFirmid() ) + .trdAccId( request.getTrdaccid() ) + .limitType( request.getLimitType() ) + .currCode( request.getCurrcode() ) + .build(); + } + + @Override + public qlua.rpc.GetFuturesLimit.Request convertToPb(@NotNull final GetFuturesLimit.Request request) { + + return qlua.rpc.GetFuturesLimit.Request.newBuilder() + .setFirmid( request.getFirmId() ) + .setTrdaccid( request.getTrdAccId() ) + .setLimitType( request.getLimitType() ) + .setCurrcode( request.getCurrCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java new file mode 100644 index 0000000..38a1d6c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetFuturesLimitResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetFuturesLimit.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesLimit.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetFuturesLimit.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetFuturesLimit.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesLimit.Result result) { + + final FuturesLimit futuresLimit = result.hasFuturesLimit() ? convertFromPbFuturesLimit(result.getFuturesLimit()) : null; + return new GetFuturesLimit.Result(futuresLimit); + } + + @NotNull + @Override + public qlua.rpc.GetFuturesLimit.Result convertToPb(@NotNull final GetFuturesLimit.Result result) { + + final qlua.rpc.GetFuturesLimit.Result.Builder pbResult = qlua.rpc.GetFuturesLimit.Result.newBuilder(); + final FuturesLimit futuresLimit = result.getFuturesLimit(); + if (futuresLimit != null) { + pbResult.setFuturesLimit( convertToPbFuturesLimit(futuresLimit) ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 2665d83..e599805 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -153,6 +153,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetDepoEx.Result.class, GetDepoExResultPbSerde.INSTANCE); registerSerde(result, GetFuturesHolding.Request.class, GetFuturesHoldingRequestPbSerde.INSTANCE); registerSerde(result, GetFuturesHolding.Result.class, GetFuturesHoldingResultPbSerde.INSTANCE); + registerSerde(result, GetFuturesLimit.Request.class, GetFuturesLimitRequestPbSerde.INSTANCE); + registerSerde(result, GetFuturesLimit.Result.class, GetFuturesLimitResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 633ec09..54dd8f0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -42,6 +42,9 @@ final class ProtobufSerdeUtils { private static final PbConverter FUTURES_CLIENT_HOLDING_PB_CONVERTER = FuturesClientHoldingPbSerde.INSTANCE; + private static final PbConverter FUTURES_LIMIT_PB_CONVERTER = + FuturesLimitPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -137,6 +140,16 @@ static FuturesClientHolding convertFromPbFuturesClientHolding(@NotNull final Qlu return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convertFromPb(futuresClientHolding); } + @NotNull + static QluaStructures.FuturesLimit convertToPbFuturesLimit(@NotNull final FuturesLimit futuresLimit) { + return FUTURES_LIMIT_PB_CONVERTER.convertToPb(futuresLimit); + } + + @NotNull + static FuturesLimit convertFromPbFuturesLimit(@NotNull final QluaStructures.FuturesLimit futuresLimit) { + return FUTURES_LIMIT_PB_CONVERTER.convertFromPb(futuresLimit); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java new file mode 100644 index 0000000..31a51e4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java @@ -0,0 +1,60 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetFuturesLimitRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetFuturesLimit.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = GetFuturesLimit.Request.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .currCode("4") + .build(); + final ByteString pbArgs = qlua.rpc.GetFuturesLimit.Request.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setLimitType(3) + .setCurrcode("4") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_FUTURES_LIMIT) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetFuturesLimit.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java new file mode 100644 index 0000000..d1e6f70 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java @@ -0,0 +1,111 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.structs.QluaStructures; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetFuturesLimitResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetFuturesLimit.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetFuturesLimit.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final FuturesLimit futuresLimit = FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + final QluaStructures.FuturesLimit pbFuturesLimit = QluaStructures.FuturesLimit.newBuilder() + .setFirmid("1") + .setTrdaccid("2") + .setLimitType(3) + .setLiquidityCoef("4") + .setCbpPrevLimit("5") + .setCbplimit("6") + .setCbplused("7") + .setCbplplanned("8") + .setVarmargin("9") + .setAccruedint("10") + .setCbplusedForOrders("11") + .setCbplusedForPositions("12") + .setOptionsPremium("13") + .setTsComission("14") + .setKgo("15") + .setCurrcode("16") + .setRealVarmargin("17") + .build(); + + expectedObject = new GetFuturesLimit.Result(futuresLimit); + expectedPbInput = qlua.rpc.GetFuturesLimit.Result.newBuilder() + .setFuturesLimit(pbFuturesLimit) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = new GetFuturesLimit.Result(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesLimit.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetFuturesLimit.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetFuturesLimit.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} From aebb41206f548defc07c0afb5eea3de17753c3e5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 02:18:18 +0300 Subject: [PATCH 278/549] Added a protobuf serde facility for GetInfoParam.Request, GetInfoParam.Result. --- .../lua/rpc/api/messages/GetInfoParam.java | 8 ++- .../protobuf/GetInfoParamRequestPbSerde.java | 54 ++++++++++++++++++ .../protobuf/GetInfoParamResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetInfoParamRequestPbSerdeTest.java | 55 +++++++++++++++++++ .../GetInfoParamResultPbSerdeTest.java | 44 +++++++++++++++ 6 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java index a47bb5a..30c0c46 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java @@ -13,7 +13,11 @@ private GetInfoParam() {} @Value public static class Request { - @NonNull String paramName; + String paramName; + + public Request(@NonNull final String paramName) { + this.paramName = paramName; + } @Override public String toString() { @@ -29,7 +33,7 @@ public static class Result { String infoParam; @JsonCreator - public Result(final @JsonProperty(value = "info_param") String infoParam) { + public Result(final @JsonProperty(value = "info_param", required = true) @NonNull String infoParam) { this.infoParam = infoParam; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java new file mode 100644 index 0000000..fad9860 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetInfoParamRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_INFO_PARAM; + + @Override + public byte[] serialize(final GetInfoParam.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetInfoParam.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetInfoParam.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetInfoParam.Request convertFromPb(@NotNull final qlua.rpc.GetInfoParam.Request request) { + return new GetInfoParam.Request( request.getParamName() ); + } + + @Override + public qlua.rpc.GetInfoParam.Request convertToPb(@NotNull final GetInfoParam.Request request) { + + return qlua.rpc.GetInfoParam.Request.newBuilder() + .setParamName( request.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java new file mode 100644 index 0000000..3122f6d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetInfoParamResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetInfoParam.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetInfoParam.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetInfoParam.Result.parseFrom(data) ); + } + + @Override + public GetInfoParam.Result convertFromPb(@NotNull final qlua.rpc.GetInfoParam.Result result) { + return new GetInfoParam.Result( result.getInfoParam() ); + } + + @Override + public qlua.rpc.GetInfoParam.Result convertToPb(@NotNull final GetInfoParam.Result result) { + return qlua.rpc.GetInfoParam.Result.newBuilder() + .setInfoParam( result.getInfoParam() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index e599805..7363f80 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -155,6 +155,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetFuturesHolding.Result.class, GetFuturesHoldingResultPbSerde.INSTANCE); registerSerde(result, GetFuturesLimit.Request.class, GetFuturesLimitRequestPbSerde.INSTANCE); registerSerde(result, GetFuturesLimit.Result.class, GetFuturesLimitResultPbSerde.INSTANCE); + registerSerde(result, GetInfoParam.Request.class, GetInfoParamRequestPbSerde.INSTANCE); + registerSerde(result, GetInfoParam.Result.class, GetInfoParamResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java new file mode 100644 index 0000000..f767dd5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetInfoParamRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetInfoParam.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetInfoParam.Request("1"); + final ByteString pbArgs = qlua.rpc.GetInfoParam.Request.newBuilder() + .setParamName("1") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_INFO_PARAM) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + final byte[] actual = sut.serialize(expectedObject); + + assertTrue( Arrays.equals(expectedPbInput, actual) ); + } + + @Test + public void testDeserialize() { + + final GetInfoParam.Request actualObject = sut.deserialize(GetInfoParam.Request.class, expectedPbInput); + + assertEquals(actualObject, expectedObject); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java new file mode 100644 index 0000000..42f3572 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetInfoParamResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetInfoParam.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetInfoParam.Result("1"); + expectedPbInput = qlua.rpc.GetInfoParam.Result.newBuilder() + .setInfoParam("1") + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetInfoParam.Result.class, expectedPbInput)); + } +} From 05610fb2d87d1bf66b896e3081dbc9a12d49393a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 03:49:44 +0300 Subject: [PATCH 279/549] Added singleton instance for the error (null) case. --- .../quik/lua/rpc/api/messages/GetDepoEx.java | 25 ++++++++++++++++++- .../rpc/api/messages/GetFuturesHolding.java | 25 ++++++++++++++++++- .../lua/rpc/api/messages/GetFuturesLimit.java | 25 ++++++++++++++++++- .../protobuf/GetDepoExResultPbSerde.java | 2 +- .../GetFuturesHoldingResultPbSerde.java | 2 +- .../GetFuturesLimitResultPbSerde.java | 2 +- .../api/messages/GetDepoExJsonSerdeTest.java | 4 +-- .../GetFuturesHoldingJsonSerdeTest.java | 4 +-- .../GetFuturesLimitJsonSerdeTest.java | 4 +-- .../protobuf/GetDepoExResultPbSerdeTest.java | 4 +-- .../GetFuturesHoldingResultPbSerdeTest.java | 4 +-- .../GetFuturesLimitResultPbSerdeTest.java | 4 +-- 12 files changed, 87 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index d33244d..b6f69f9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -7,6 +7,8 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetDepoEx { @@ -36,6 +38,7 @@ private Request( this.limitKind = limitKind; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -54,15 +57,35 @@ public static class Result { DepoLimit depoEx; @JsonCreator - public Result(@JsonProperty("depo_ex") final DepoLimit depoEx) { + public static Result getInstance(@JsonProperty("depo_ex") final DepoLimit depoEx) { + return depoEx == null ? InstanceHolder.ERROR : new Result(depoEx); + } + + private Result(final DepoLimit depoEx) { this.depoEx = depoEx; } + @Contract(pure = true) + public boolean isError() { + return depoEx == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("depo_ex", depoEx) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // just in case + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index 6e48c8f..113390e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -7,6 +7,8 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetFuturesHolding { @@ -33,6 +35,7 @@ private Request( this.type = type; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -50,15 +53,35 @@ public static class Result { FuturesClientHolding futuresHolding; @JsonCreator - public Result(@JsonProperty(value = "futures_holding") final FuturesClientHolding futuresHolding) { + public static Result getInstance(@JsonProperty("futures_holding") final FuturesClientHolding futuresHolding) { + return futuresHolding == null ? InstanceHolder.ERROR : new Result(futuresHolding); + } + + private Result(final FuturesClientHolding futuresHolding) { this.futuresHolding = futuresHolding; } + @Contract(pure = true) + public boolean isError() { + return futuresHolding == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("futures_holding", futuresHolding) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // just in case + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index 70feea3..233e62b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -7,6 +7,8 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetFuturesLimit { @@ -33,6 +35,7 @@ private Request( this.currCode = currCode; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -50,15 +53,35 @@ public static class Result { FuturesLimit futuresLimit; @JsonCreator - public Result(final @JsonProperty(value = "futures_limit") FuturesLimit futuresLimit) { + public static Result getInstance(@JsonProperty("futures_limit") final FuturesLimit futuresLimit) { + return futuresLimit == null ? InstanceHolder.ERROR : new Result(futuresLimit); + } + + private Result(final FuturesLimit futuresLimit) { this.futuresLimit = futuresLimit; } + @Contract(pure = true) + public boolean isError() { + return futuresLimit == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("futures_limit", futuresLimit) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // just in case + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java index c8e9dc5..71f5862 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java @@ -31,7 +31,7 @@ public GetDepoEx.Result deserialize(final byte[] data) { public GetDepoEx.Result convertFromPb(@NotNull final qlua.rpc.GetDepoEx.Result result) { final DepoLimit depoLimit = result.hasDepoEx() ? convertFromPbDepoLimit(result.getDepoEx()) : null; - return new GetDepoEx.Result(depoLimit); + return GetDepoEx.Result.getInstance(depoLimit); } @NotNull diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java index 9e77511..ee01b0f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java @@ -32,7 +32,7 @@ public GetFuturesHolding.Result deserialize(final byte[] data) { public GetFuturesHolding.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesHolding.Result result) { final FuturesClientHolding futuresClientHolding = result.hasFuturesHolding() ? convertFromPbFuturesClientHolding(result.getFuturesHolding()) : null; - return new GetFuturesHolding.Result(futuresClientHolding); + return GetFuturesHolding.Result.getInstance(futuresClientHolding); } @NotNull diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java index 38a1d6c..a3b3ad7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java @@ -31,7 +31,7 @@ public GetFuturesLimit.Result deserialize(final byte[] data) { public GetFuturesLimit.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesLimit.Result result) { final FuturesLimit futuresLimit = result.hasFuturesLimit() ? convertFromPbFuturesLimit(result.getFuturesLimit()) : null; - return new GetFuturesLimit.Result(futuresLimit); + return GetFuturesLimit.Result.getInstance(futuresLimit); } @NotNull diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java index f5b9f43..5a4fdb5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java @@ -58,11 +58,11 @@ public static void globalSetup() throws IOException { .limitKind(14) .build(); - resultObj = new GetDepoEx.Result(depoLimit); + resultObj = GetDepoEx.Result.getInstance(depoLimit); resultJson = Resources.toString(Resources.getResource("json/getDepoEx.result.json"), Charsets.UTF_8); - resultObjWithOnlyRequiredFields = new GetDepoEx.Result(null); + resultObjWithOnlyRequiredFields = GetDepoEx.Result.getInstance(null); resultJsonWithOnlyRequiredFields = Resources.toString(Resources.getResource("json/getDepoEx.result.only_required_fields.json"), Charsets.UTF_8); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java index 2d23ab3..3e77697 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java @@ -62,10 +62,10 @@ public static void globalSetup() throws IOException { .sessionStatus(19) .build(); - resultObj = new GetFuturesHolding.Result(futuresClientHolding); + resultObj = GetFuturesHolding.Result.getInstance(futuresClientHolding); resultJson = Resources.toString(Resources.getResource("json/getFuturesHolding.result.json"), Charsets.UTF_8); - resultObjWithOnlyRequiredFields = new GetFuturesHolding.Result(null); + resultObjWithOnlyRequiredFields = GetFuturesHolding.Result.getInstance(null); resultJsonWithOnlyRequiredFields = Resources.toString(Resources.getResource("json/getFuturesHolding.result.only_required_fields.json"), Charsets.UTF_8); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index 6dbe1a2..4f59682 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -60,11 +60,11 @@ public static void globalSetup() throws IOException { .realVarMargin("17") .build(); - resultObj = new GetFuturesLimit.Result(futuresLimit); + resultObj = GetFuturesLimit.Result.getInstance(futuresLimit); resultJson = Resources.toString(Resources.getResource("json/getFuturesLimit.result.json"), Charsets.UTF_8); - resultObjWithOnlyRequiredFields = new GetFuturesLimit.Result(null); + resultObjWithOnlyRequiredFields = GetFuturesLimit.Result.getInstance(null); resultJsonWithOnlyRequiredFields = Resources.toString(Resources.getResource("json/getFuturesLimit.result.only_required_fields.json"), Charsets.UTF_8); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java index 7d37207..a104523 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java @@ -60,13 +60,13 @@ public static void globalSetup() { .setLimitKind(14) .build(); - expectedObject = new GetDepoEx.Result(depoLimit); + expectedObject = GetDepoEx.Result.getInstance(depoLimit); expectedPbInput = qlua.rpc.GetDepoEx.Result.newBuilder() .setDepoEx(pbDepoLimit) .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = new GetDepoEx.Result(null); + expectedObjectWithOnlyRequiredFields = GetDepoEx.Result.getInstance(null); expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetDepoEx.Result.newBuilder().build().toByteArray(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java index 3b57ae8..d5c963d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java @@ -70,13 +70,13 @@ public static void globalSetup() { .setSessionStatus(19) .build(); - expectedObject = new GetFuturesHolding.Result(futuresClientHolding); + expectedObject = GetFuturesHolding.Result.getInstance(futuresClientHolding); expectedPbInput = qlua.rpc.GetFuturesHolding.Result.newBuilder() .setFuturesHolding(pbFuturesClientHolding) .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = new GetFuturesHolding.Result(null); + expectedObjectWithOnlyRequiredFields = GetFuturesHolding.Result.getInstance(null); expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesHolding.Result.newBuilder().build().toByteArray(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java index d1e6f70..48e8502 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java @@ -66,13 +66,13 @@ public static void globalSetup() { .setRealVarmargin("17") .build(); - expectedObject = new GetFuturesLimit.Result(futuresLimit); + expectedObject = GetFuturesLimit.Result.getInstance(futuresLimit); expectedPbInput = qlua.rpc.GetFuturesLimit.Result.newBuilder() .setFuturesLimit(pbFuturesLimit) .build() .toByteArray(); - expectedObjectWithOnlyRequiredFields = new GetFuturesLimit.Result(null); + expectedObjectWithOnlyRequiredFields = GetFuturesLimit.Result.getInstance(null); expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesLimit.Result.newBuilder().build().toByteArray(); } From ec1307a1414dba802b75689a006a75117c80150c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 10 Sep 2018 03:50:32 +0300 Subject: [PATCH 280/549] Added singleton instance for the error (null) case. --- .../quik/lua/rpc/api/messages/GetCell.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java index e31abcb..3a34d60 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java @@ -1,9 +1,12 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; -import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetCell { @@ -23,6 +26,7 @@ private Request(final int tId, final int key, final int code) { this.code = code; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -39,12 +43,26 @@ public static class Result { String image; String value; + @JsonCreator @Builder - private Result(final @NonNull String image, final @NonNull String value) { + private static Result getInstance( + @JsonProperty("image") final String image, + @JsonProperty("value") final String value) { + + return image == null && value == null ? InstanceHolder.ERROR : new Result(image, value); + } + + private Result(final String image, final String value) { this.image = image; this.value = value; } + @Contract(pure = true) + public boolean isError() { + return image == null && value == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -52,5 +70,15 @@ public String toString() { .add("value", value) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null, null); + + // just in case + static { + assert ERROR.isError(); + } + } } } From caa62917914d8e8bd414bfb8256a1274c81bf743 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 11 Sep 2018 02:02:33 +0300 Subject: [PATCH 281/549] Added a protobuf serde facility for GetItem.Request, GetItem.Result; moderately redone the JSON serde for GetItem accommodate null values for the tableRow field. --- .../quik/lua/rpc/api/messages/GetItem.java | 42 +++++++++- .../serde/protobuf/GetItemRequestPbSerde.java | 55 +++++++++++++ .../serde/protobuf/GetItemResultPbSerde.java | 46 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../api/messages/GetItemJsonSerdeTest.java | 32 +++++--- .../protobuf/GetItemRequestPbSerdeTest.java | 53 +++++++++++++ .../protobuf/GetItemResultPbSerdeTest.java | 78 +++++++++++++++++++ .../getItem.result.only_required_fields.json | 1 + 8 files changed, 293 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java create mode 100644 src/test/resources/json/getItem.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index d16f2d3..5e56a41 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -2,8 +2,11 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableMap; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import java.util.Map; @@ -14,9 +17,15 @@ private GetItem() {} @Value public static class Request { - @NonNull String tableName; + String tableName; int index; + public Request(@NonNull final String tableName, final int index) { + this.tableName = tableName; + this.index = index; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -29,18 +38,43 @@ public String toString() { @Value public static class Result { - @NonNull Map tableRow; + Map tableRow; @JsonCreator - public Result(final Map tableRow) { - this.tableRow = tableRow; + public static Result getInstance(final Map tableRow) { + + if (tableRow == null || tableRow.isEmpty()) { + return InstanceHolder.ERROR; + } + + return new Result(tableRow); + } + + private Result(final Map tableRow) { + this.tableRow = (tableRow == null || tableRow.isEmpty()) ? null : ImmutableMap.copyOf(tableRow); } + @Contract(pure = true) + public boolean isError() { + return tableRow == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("table_row", tableRow) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java new file mode 100644 index 0000000..e22f477 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetItemRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_ITEM; + + @Override + public byte[] serialize(final GetItem.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetItem.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetItem.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetItem.Request convertFromPb(@NotNull final qlua.rpc.GetItem.Request request) { + return new GetItem.Request(request.getTableName(), request.getIndex()); + } + + @Override + public qlua.rpc.GetItem.Request convertToPb(@NotNull final GetItem.Request request) { + + return qlua.rpc.GetItem.Request.newBuilder() + .setTableName( request.getTableName() ) + .setIndex( request.getIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java new file mode 100644 index 0000000..078cd58 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +enum GetItemResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetItem.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetItem.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetItem.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetItem.Result convertFromPb(@NotNull final qlua.rpc.GetItem.Result result) { + return GetItem.Result.getInstance( result.getTableRowMap() ); + } + + @NotNull + @Override + public qlua.rpc.GetItem.Result convertToPb(@NotNull final GetItem.Result result) { + + final qlua.rpc.GetItem.Result.Builder pbResult = qlua.rpc.GetItem.Result.newBuilder(); + final Map tableRow = result.getTableRow(); + if (tableRow != null) { + pbResult.putAllTableRow(tableRow); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 7363f80..1be71c3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -157,6 +157,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetFuturesLimit.Result.class, GetFuturesLimitResultPbSerde.INSTANCE); registerSerde(result, GetInfoParam.Request.class, GetInfoParamRequestPbSerde.INSTANCE); registerSerde(result, GetInfoParam.Result.class, GetInfoParamResultPbSerde.INSTANCE); + registerSerde(result, GetItem.Request.class, GetItemRequestPbSerde.INSTANCE); + registerSerde(result, GetItem.Result.class, GetItemResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java index 3620531..32dbc7f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java @@ -17,10 +17,14 @@ public class GetItemJsonSerdeTest { private static ObjectMapper sut; private static GetItem.Request requestObj; - private static GetItem.Result resultObj; private static String requestJson; + + private static GetItem.Result resultObj; private static String resultJson; + private static GetClassInfo.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() throws IOException { @@ -28,6 +32,7 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetItem.Request("1", 2); + requestJson = Resources.toString(Resources.getResource("json/getItem.request.json"), Charsets.UTF_8); final ImmutableMap.Builder tableRow = ImmutableMap.builder(); tableRow.put("field_1", "value_1"); @@ -36,27 +41,30 @@ public static void globalSetup() throws IOException { tableRow.put("field_...", "value_..."); tableRow.put("field_n", "value_n"); - resultObj = new GetItem.Result( tableRow.build() ); + resultObj = GetItem.Result.getInstance( tableRow.build() ); + resultJson = Resources.toString(Resources.getResource("json/getItem.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/getItem.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getItem.result.json"), Charsets.UTF_8); + resultObjWithOnlyRequiredFields = new GetClassInfo.Result(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getItem.result.only_required_fields.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetItem.Result.class)); + } - final GetItem.Result actualResultObj = sut.readValue(resultJson, GetItem.Result.class); + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - assertEquals(resultObj, actualResultObj); + assertEquals( + resultObjWithOnlyRequiredFields, + sut.readValue(resultJsonWithOnlyRequiredFields, GetClassInfo.Result.class) + ); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java new file mode 100644 index 0000000..a36359d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetItemRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetItem.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetItem.Request("1", 2); + final ByteString pbArgs = qlua.rpc.GetItem.Request.newBuilder() + .setTableName("1") + .setIndex(2) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_ITEM) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetItem.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java new file mode 100644 index 0000000..719656d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.common.collect.ImmutableMap; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetItemResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetItem.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetItem.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final Map tableRow = ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + ); + + expectedObject = GetItem.Result.getInstance(tableRow); + expectedPbInput = qlua.rpc.GetItem.Result.newBuilder() + .putAllTableRow(tableRow) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = GetItem.Result.getInstance(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetItem.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetItem.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetItem.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} diff --git a/src/test/resources/json/getItem.result.only_required_fields.json b/src/test/resources/json/getItem.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getItem.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From d7cdf0f0ce9ecc37f1c3d2cbf6cd22b58772195f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 00:33:04 +0300 Subject: [PATCH 282/549] Fixed JSON mapping and tests. --- .../enfernuz/quik/lua/rpc/api/messages/GetItem.java | 3 ++- .../lua/rpc/api/messages/GetItemJsonSerdeTest.java | 6 +++--- src/test/resources/json/getItem.result.json | 12 +++++++----- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index 5e56a41..ad68f25 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; import lombok.NonNull; @@ -41,7 +42,7 @@ public static class Result { Map tableRow; @JsonCreator - public static Result getInstance(final Map tableRow) { + public static Result getInstance(@JsonProperty("table_row") final Map tableRow) { if (tableRow == null || tableRow.isEmpty()) { return InstanceHolder.ERROR; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java index 32dbc7f..27c0678 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java @@ -22,7 +22,7 @@ public class GetItemJsonSerdeTest { private static GetItem.Result resultObj; private static String resultJson; - private static GetClassInfo.Result resultObjWithOnlyRequiredFields; + private static GetItem.Result resultObjWithOnlyRequiredFields; private static String resultJsonWithOnlyRequiredFields; @BeforeClass @@ -44,7 +44,7 @@ public static void globalSetup() throws IOException { resultObj = GetItem.Result.getInstance( tableRow.build() ); resultJson = Resources.toString(Resources.getResource("json/getItem.result.json"), Charsets.UTF_8); - resultObjWithOnlyRequiredFields = new GetClassInfo.Result(null); + resultObjWithOnlyRequiredFields = GetItem.Result.getInstance(null); resultJsonWithOnlyRequiredFields = Resources.toString(Resources.getResource("json/getItem.result.only_required_fields.json"), Charsets.UTF_8); } @@ -64,7 +64,7 @@ public void testDeserializeResultWithOnlyRequiredFields() throws IOException { assertEquals( resultObjWithOnlyRequiredFields, - sut.readValue(resultJsonWithOnlyRequiredFields, GetClassInfo.Result.class) + sut.readValue(resultJsonWithOnlyRequiredFields, GetItem.Result.class) ); } } diff --git a/src/test/resources/json/getItem.result.json b/src/test/resources/json/getItem.result.json index c56d2c0..ebba831 100644 --- a/src/test/resources/json/getItem.result.json +++ b/src/test/resources/json/getItem.result.json @@ -1,7 +1,9 @@ { - "field_1" : "value_1", - "field_2" : "value_2", - "field_3" : "value_3", - "field_..." : "value_...", - "field_n" : "value_n" + "table_row" : { + "field_1" : "value_1", + "field_2" : "value_2", + "field_3" : "value_3", + "field_..." : "value_...", + "field_n" : "value_n" + } } \ No newline at end of file From 4ac38777a51fd45c1b107ac9a979978f3fbeaee8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 00:33:48 +0300 Subject: [PATCH 283/549] Added a protobuf serde facility for GetLabelParams.Request, GetLabelParams.Result; moderately redone the JSON serde for GetLabelParams accommodate null values for the labelParams field. --- .../lua/rpc/api/messages/GetLabelParams.java | 41 +++++++++- .../GetLabelParamsRequestPbSerde.java | 55 +++++++++++++ .../protobuf/GetLabelParamsResultPbSerde.java | 46 +++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../messages/GetLabelParamsJsonSerdeTest.java | 32 +++++--- .../GetLabelParamsRequestPbSerdeTest.java | 53 +++++++++++++ .../GetLabelParamsResultPbSerdeTest.java | 78 +++++++++++++++++++ .../resources/json/GetLabelParams.result.json | 12 +-- ...belParams.result.only_required_fields.json | 1 + 9 files changed, 299 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java create mode 100644 src/test/resources/json/GetLabelParams.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java index afbb591..319b723 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java @@ -3,8 +3,11 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableMap; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import java.util.Map; @@ -15,9 +18,15 @@ private GetLabelParams() {} @Value public static class Request { - @NonNull String chartTag; + String chartTag; int labelId; + public Request(@NonNull final String chartTag, final int labelId) { + this.chartTag = chartTag; + this.labelId = labelId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -30,19 +39,43 @@ public String toString() { @Value public static class Result { - @JsonProperty(value = "label_params") Map labelParams; @JsonCreator - public Result(final @NonNull Map labelParams) { - this.labelParams = labelParams; + public static Result getInstance(@JsonProperty("label_params") final Map labelParams) { + + if (labelParams == null || labelParams.isEmpty()) { + return InstanceHolder.ERROR; + } + + return new Result(labelParams); + } + + private Result(final Map labelParams) { + this.labelParams = (labelParams == null || labelParams.isEmpty()) ? null : ImmutableMap.copyOf(labelParams); } + @Contract(pure = true) + public boolean isError() { + return labelParams == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("label_params", labelParams) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java new file mode 100644 index 0000000..51d41e4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetLabelParamsRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_LABEL_PARAMS; + + @Override + public byte[] serialize(final GetLabelParams.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLabelParams.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetLabelParams.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetLabelParams.Request convertFromPb(@NotNull final qlua.rpc.GetLabelParams.Request request) { + return new GetLabelParams.Request(request.getChartTag(), request.getLabelId()); + } + + @Override + public qlua.rpc.GetLabelParams.Request convertToPb(@NotNull final GetLabelParams.Request request) { + + return qlua.rpc.GetLabelParams.Request.newBuilder() + .setChartTag( request.getChartTag() ) + .setLabelId( request.getLabelId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java new file mode 100644 index 0000000..ee951bc --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +enum GetLabelParamsResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetLabelParams.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLabelParams.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetLabelParams.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetLabelParams.Result convertFromPb(@NotNull final qlua.rpc.GetLabelParams.Result result) { + return GetLabelParams.Result.getInstance( result.getLabelParamsMap() ); + } + + @NotNull + @Override + public qlua.rpc.GetLabelParams.Result convertToPb(@NotNull final GetLabelParams.Result result) { + + final qlua.rpc.GetLabelParams.Result.Builder pbResult = qlua.rpc.GetLabelParams.Result.newBuilder(); + final Map labelParams = result.getLabelParams(); + if (labelParams != null) { + pbResult.putAllLabelParams(labelParams); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 1be71c3..8947658 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -159,6 +159,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetInfoParam.Result.class, GetInfoParamResultPbSerde.INSTANCE); registerSerde(result, GetItem.Request.class, GetItemRequestPbSerde.INSTANCE); registerSerde(result, GetItem.Result.class, GetItemResultPbSerde.INSTANCE); + registerSerde(result, GetLabelParams.Request.class, GetLabelParamsRequestPbSerde.INSTANCE); + registerSerde(result, GetLabelParams.Result.class, GetLabelParamsResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java index 2bb191a..1efbd6e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java @@ -17,10 +17,14 @@ public class GetLabelParamsJsonSerdeTest { private static ObjectMapper sut; private static GetLabelParams.Request requestObj; - private static GetLabelParams.Result resultObj; private static String requestJson; + + private static GetLabelParams.Result resultObj; private static String resultJson; + private static GetLabelParams.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() throws IOException { @@ -28,6 +32,7 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetLabelParams.Request("1", 2); + requestJson = Resources.toString(Resources.getResource("json/GetLabelParams.request.json"), Charsets.UTF_8); final ImmutableMap.Builder labelParams = ImmutableMap.builder(); labelParams.put("param_1", "value_1"); @@ -36,27 +41,30 @@ public static void globalSetup() throws IOException { labelParams.put("param_...", "value_..."); labelParams.put("param_n", "value_n"); - resultObj = new GetLabelParams.Result( labelParams.build() ); + resultObj = GetLabelParams.Result.getInstance( labelParams.build() ); + resultJson = Resources.toString(Resources.getResource("json/GetLabelParams.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/GetLabelParams.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/GetLabelParams.result.json"), Charsets.UTF_8); + resultObjWithOnlyRequiredFields = GetLabelParams.Result.getInstance(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/GetLabelParams.result.only_required_fields.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetLabelParams.Result.class)); + } - final GetLabelParams.Result actualResultObj = sut.readValue(resultJson, GetLabelParams.Result.class); + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - assertEquals(resultObj, actualResultObj); + assertEquals( + resultObjWithOnlyRequiredFields, + sut.readValue(resultJsonWithOnlyRequiredFields, GetLabelParams.Result.class) + ); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java new file mode 100644 index 0000000..71e5103 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java @@ -0,0 +1,53 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetLabelParamsRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetLabelParams.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetLabelParams.Request("1", 2); + final ByteString pbArgs = qlua.rpc.GetLabelParams.Request.newBuilder() + .setChartTag("1") + .setLabelId(2) + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_LABEL_PARAMS) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetLabelParams.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java new file mode 100644 index 0000000..a4d9b14 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.common.collect.ImmutableMap; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetLabelParamsResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetLabelParams.Result expectedObject; + private static byte[] expectedPbInput; + + private static GetLabelParams.Result expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + final Map labelParams = ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + ); + + expectedObject = GetLabelParams.Result.getInstance(labelParams); + expectedPbInput = qlua.rpc.GetLabelParams.Result.newBuilder() + .putAllLabelParams(labelParams) + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = GetLabelParams.Result.getInstance(null); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetLabelParams.Result.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetLabelParams.Result.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(GetLabelParams.Result.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} diff --git a/src/test/resources/json/GetLabelParams.result.json b/src/test/resources/json/GetLabelParams.result.json index d5086aa..3aae0a2 100644 --- a/src/test/resources/json/GetLabelParams.result.json +++ b/src/test/resources/json/GetLabelParams.result.json @@ -1,7 +1,9 @@ { - "param_1" : "value_1", - "param_2" : "value_2", - "param_3" : "value_3", - "param_..." : "value_...", - "param_n" : "value_n" + "label_params" : { + "param_1" : "value_1", + "param_2" : "value_2", + "param_3" : "value_3", + "param_..." : "value_...", + "param_n" : "value_n" + } } \ No newline at end of file diff --git a/src/test/resources/json/GetLabelParams.result.only_required_fields.json b/src/test/resources/json/GetLabelParams.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/GetLabelParams.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 35387765f4158de81c719890e473c8295464b7e0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 00:42:52 +0300 Subject: [PATCH 284/549] Added a protobuf serde facility for GetLinesCount.Request, GetLinesCount.Result. --- .../lua/rpc/api/messages/GetLinesCount.java | 11 +++- .../protobuf/GetLinesCountRequestPbSerde.java | 54 +++++++++++++++++++ .../protobuf/GetLinesCountResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetLinesCountRequestPbSerdeTest.java | 52 ++++++++++++++++++ .../GetLinesCountResultPbSerdeTest.java | 44 +++++++++++++++ 6 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java index 737b566..5369e79 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java @@ -5,6 +5,7 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetLinesCount { @@ -13,8 +14,13 @@ private GetLinesCount() {} @Value public static class Request { - @NonNull String tag; + String tag; + public Request(@NonNull final String tag) { + this.tag = tag; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -29,10 +35,11 @@ public static class Result { int linesCount; @JsonCreator - public Result(final @JsonProperty(value = "lines_count", required = true) int linesCount) { + public Result(@JsonProperty(value = "lines_count", required = true) final int linesCount) { this.linesCount = linesCount; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java new file mode 100644 index 0000000..45d913d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetLinesCountRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_LINES_COUNT; + + @Override + public byte[] serialize(final GetLinesCount.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLinesCount.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetLinesCount.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetLinesCount.Request convertFromPb(@NotNull final qlua.rpc.GetLinesCount.Request request) { + return new GetLinesCount.Request( request.getTag() ); + } + + @Override + public qlua.rpc.GetLinesCount.Request convertToPb(@NotNull final GetLinesCount.Request request) { + + return qlua.rpc.GetLinesCount.Request.newBuilder() + .setTag( request.getTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java new file mode 100644 index 0000000..990c56e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetLinesCountResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetLinesCount.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLinesCount.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetLinesCount.Result.parseFrom(data) ); + } + + @Override + public GetLinesCount.Result convertFromPb(@NotNull final qlua.rpc.GetLinesCount.Result result) { + return new GetLinesCount.Result( result.getLinesCount() ); + } + + @Override + public qlua.rpc.GetLinesCount.Result convertToPb(@NotNull final GetLinesCount.Result result) { + return qlua.rpc.GetLinesCount.Result.newBuilder() + .setLinesCount( result.getLinesCount() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 8947658..3c8b6e2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -161,6 +161,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetItem.Result.class, GetItemResultPbSerde.INSTANCE); registerSerde(result, GetLabelParams.Request.class, GetLabelParamsRequestPbSerde.INSTANCE); registerSerde(result, GetLabelParams.Result.class, GetLabelParamsResultPbSerde.INSTANCE); + registerSerde(result, GetLinesCount.Request.class, GetLinesCountRequestPbSerde.INSTANCE); + registerSerde(result, GetLinesCount.Result.class, GetLinesCountResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java new file mode 100644 index 0000000..5d45ba1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.ByteString; +import org.junit.BeforeClass; +import org.junit.Test; +import qlua.rpc.RPC; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetLinesCountRequestPbSerdeTest { + + private static SerdeModule sut; + + private static GetLinesCount.Request expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetLinesCount.Request("1"); + final ByteString pbArgs = qlua.rpc.GetLinesCount.Request.newBuilder() + .setTag("1") + .build() + .toByteString(); + expectedPbInput = + RPC.Request.newBuilder() + .setType(RPC.ProcedureType.GET_LINES_COUNT) + .setArgs(pbArgs) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetLinesCount.Request.class, expectedPbInput)); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java new file mode 100644 index 0000000..0141883 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GetLinesCountResultPbSerdeTest { + + private static SerdeModule sut; + + private static GetLinesCount.Result expectedObject; + private static byte[] expectedPbInput; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = new GetLinesCount.Result(1); + expectedPbInput = qlua.rpc.GetLinesCount.Result.newBuilder() + .setLinesCount(1) + .build() + .toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(GetLinesCount.Result.class, expectedPbInput)); + } +} From 889d84319072faef274c594dfea2554ea921e7ed Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 00:56:07 +0300 Subject: [PATCH 285/549] Added a protobuf serde facility for Money. --- .../quik/lua/rpc/api/structures/Money.java | 2 + .../lua/rpc/serde/protobuf/MoneyPbSerde.java | 55 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../rpc/serde/protobuf/MoneyPbSerdeTest.java | 84 +++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java index cbb3d26..b76e6b8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java @@ -9,6 +9,7 @@ import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.Contract; import java.util.Objects; @@ -49,6 +50,7 @@ private Money( this.moneyLimitAvailable = moneyLimitAvailable; } + @Contract(value = "null -> false", pure = true) @Override public boolean equals(final Object o) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java new file mode 100644 index 0000000..4e8c64f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum MoneyPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Money money) { + return convertToPb(money).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Money deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.GetMoney.Money.parseFrom(data)); + } + + @Override + public Money convertFromPb(@NotNull qlua.rpc.GetMoney.Money money) { + + return Money.builder() + .moneyOpenLimit( convertFromPbString(money.getMoneyOpenLimit()) ) + .moneyLimitLockedNonMarginalValue( convertFromPbString(money.getMoneyLimitLockedNonmarginalValue()) ) + .moneyLimitLocked( convertFromPbString(money.getMoneyLimitLocked()) ) + .moneyOpenBalance( convertFromPbString(money.getMoneyOpenBalance()) ) + .moneyCurrentLimit( convertFromPbString(money.getMoneyCurrentLimit()) ) + .moneyCurrentBalance( convertFromPbString(money.getMoneyCurrentBalance()) ) + .moneyLimitAvailable( convertFromPbString(money.getMoneyLimitAvailable()) ) + .build(); + } + + @Override + public qlua.rpc.GetMoney.Money convertToPb(@NotNull final Money money) { + + return qlua.rpc.GetMoney.Money.newBuilder() + .setMoneyOpenLimit( convertToPbString(money.getMoneyOpenLimit()) ) + .setMoneyLimitLockedNonmarginalValue( convertToPbString(money.getMoneyLimitLockedNonMarginalValue()) ) + .setMoneyLimitLocked( convertToPbString(money.getMoneyLimitLocked()) ) + .setMoneyOpenBalance( convertToPbString(money.getMoneyOpenBalance()) ) + .setMoneyCurrentLimit( convertToPbString(money.getMoneyCurrentLimit()) ) + .setMoneyCurrentBalance( convertToPbString(money.getMoneyCurrentBalance()) ) + .setMoneyLimitAvailable( convertToPbString(money.getMoneyLimitAvailable()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 3c8b6e2..0ce45d3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -106,6 +106,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, CandleEntry.class, CandleEntryPbSerde.INSTANCE); registerSerde(result, ClassInfo.class, ClassInfoPbSerde.INSTANCE); registerSerde(result, Depo.class, DepoPbSerde.INSTANCE); + registerSerde(result, Money.class, MoneyPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java new file mode 100644 index 0000000..ee549ff --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java @@ -0,0 +1,84 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class MoneyPbSerdeTest { + + private static SerdeModule sut; + + private static Money expectedObject; + private static byte[] expectedPbInput; + + private static Money expectedObjectWithOnlyRequiredFields; + private static byte[] expectedPbInputWithOnlyRequiredFields; + + @BeforeClass + public static void globalSetup() { + + sut = ProtobufSerdeModule.INSTANCE; + + expectedObject = Money.builder() + .moneyOpenLimit("1") + .moneyLimitLockedNonMarginalValue("2") + .moneyLimitLocked("3") + .moneyOpenBalance("4") + .moneyCurrentLimit("5") + .moneyCurrentBalance("6") + .moneyLimitAvailable("7") + .build(); + expectedPbInput = qlua.rpc.GetMoney.Money.newBuilder() + .setMoneyOpenLimit("1") + .setMoneyLimitLockedNonmarginalValue("2") + .setMoneyLimitLocked("3") + .setMoneyOpenBalance("4") + .setMoneyCurrentLimit("5") + .setMoneyCurrentBalance("6") + .setMoneyLimitAvailable("7") + .build() + .toByteArray(); + + expectedObjectWithOnlyRequiredFields = Money.builder().build(); + expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetMoney.Money.newBuilder().build().toByteArray(); + } + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) + ); + } + + @Test + public void testDeserialize() { + assertEquals(expectedObject, sut.deserialize(Money.class, expectedPbInput)); + } + + @Test + public void testSerialize_WithOnlyRequiredFields() { + + assertTrue( + Arrays.equals( + expectedPbInputWithOnlyRequiredFields, + sut.serialize(expectedObjectWithOnlyRequiredFields) + ) + ); + } + + @Test + public void testDeserialize_WithOnlyRequiredFields() { + + assertEquals( + expectedObjectWithOnlyRequiredFields, + sut.deserialize(Money.class, expectedPbInputWithOnlyRequiredFields) + ); + } +} From 6fea8c1405309f26310c3deed03d1e8c1bb76a3d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 01:37:44 +0300 Subject: [PATCH 286/549] Finally got tired of copy-pasting test code for new tests over and over again: introduced an abstract test class for with two methods (test pb serialization and pb deserialization of *Request objects); created pb serde for GetMoney.Request, reimplemented that of GetDepo.Request as a particular case of the abstract test class. --- .../protobuf/GetMoneyRequestPbSerde.java | 63 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/ProtobufSerdeUtils.java | 12 +++ .../serde/protobuf/AbstractPbSerdeTest.java | 37 +++++++++ .../protobuf/AbstractRequestPbSerdeTest.java | 27 +++++++ .../protobuf/GetDepoRequestPbSerdeTest.java | 75 +++++++------------ .../protobuf/GetMoneyRequestPbSerdeTest.java | 43 +++++++++++ 7 files changed, 212 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java new file mode 100644 index 0000000..233792e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java @@ -0,0 +1,63 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetMoneyRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_MONEY; + + @Override + public byte[] serialize(final GetMoney.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoney.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetMoney.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetMoney.Request convertFromPb(@NotNull final qlua.rpc.GetMoney.Request request) { + + return GetMoney.Request.builder() + .clientCode( request.getClientCode() ) + .firmId( request.getFirmid() ) + .tag( request.getTag() ) + .currCode( request.getCurrcode() ) + .build(); + } + + @Override + public qlua.rpc.GetMoney.Request convertToPb(@NotNull final GetMoney.Request request) { + + return qlua.rpc.GetMoney.Request.newBuilder() + .setClientCode( request.getClientCode() ) + .setFirmid( request.getFirmId() ) + .setTag( request.getTag() ) + .setCurrcode( request.getCurrCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 0ce45d3..4f19855 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -164,6 +164,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetLabelParams.Result.class, GetLabelParamsResultPbSerde.INSTANCE); registerSerde(result, GetLinesCount.Request.class, GetLinesCountRequestPbSerde.INSTANCE); registerSerde(result, GetLinesCount.Result.class, GetLinesCountResultPbSerde.INSTANCE); + registerSerde(result, GetMoney.Request.class, GetMoneyRequestPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 54dd8f0..908269d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -45,6 +45,8 @@ final class ProtobufSerdeUtils { private static final PbConverter FUTURES_LIMIT_PB_CONVERTER = FuturesLimitPbSerde.INSTANCE; + private static final PbConverter MONEY_PB_CONVERTER = MoneyPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -150,6 +152,16 @@ static FuturesLimit convertFromPbFuturesLimit(@NotNull final QluaStructures.Futu return FUTURES_LIMIT_PB_CONVERTER.convertFromPb(futuresLimit); } + @NotNull + static qlua.rpc.GetMoney.Money convertToPbMoney(@NotNull final Money money) { + return MONEY_PB_CONVERTER.convertToPb(money); + } + + @NotNull + static Money convertFromPbMoney(@NotNull final qlua.rpc.GetMoney.Money money) { + return MONEY_PB_CONVERTER.convertFromPb(money); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java new file mode 100644 index 0000000..28fabd8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +@Ignore +public abstract class AbstractPbSerdeTest { + + public SerdeModule getSUT() { + return ProtobufSerdeModule.INSTANCE; + } + + public abstract Class getTargetClass(); + + public abstract byte[] getExpectedPbSerializedForm(); + + public abstract T getExpectedDeserializedObject(); + + @Test + public void testSerialize() { + + assertTrue( + Arrays.equals(getExpectedPbSerializedForm(), getSUT().serialize(getExpectedDeserializedObject())) + ); + } + + @Test + public void testDeserialize() { + assertEquals(getExpectedDeserializedObject(), getSUT().deserialize(getTargetClass(), getExpectedPbSerializedForm())); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java new file mode 100644 index 0000000..7432653 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.google.protobuf.ByteString; +import com.google.protobuf.MessageLite; +import org.junit.Ignore; +import qlua.rpc.RPC; + +@Ignore +public abstract class AbstractRequestPbSerdeTest extends AbstractPbSerdeTest { + + public abstract RPC.ProcedureType getProcedureType(); + + public abstract MessageLite getPbRequestArgs(); + + @Override + public final byte[] getExpectedPbSerializedForm() { + + final RPC.Request.Builder request = RPC.Request.newBuilder(); + request.setType( getProcedureType() ); + final MessageLite requestArgs = getPbRequestArgs(); + if (requestArgs != null) { + request.setArgs( requestArgs.toByteString() ); + } + + return request.build().toByteArray(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java index bf69075..e260d19 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java @@ -1,60 +1,43 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; +import com.google.protobuf.MessageLite; import qlua.rpc.RPC; -import java.util.Arrays; +public class GetDepoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final String CLIENT_CODE = "1"; + private static final String FIRM_ID = "2"; + private static final String SEC_CODE = "3"; + private static final String TRD_ACC_ID = "4"; -public class GetDepoRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetDepo.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetDepo.Request.builder() - .clientCode("1") - .firmId("2") - .secCode("3") - .trdAccId("4") - .build(); - final ByteString pbArgs = qlua.rpc.GetDepo.Request.newBuilder() - .setClientCode("1") - .setFirmid("2") - .setSecCode("3") - .setTrdaccid("4") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_DEPO) - .setArgs(pbArgs) - .build() - .toByteArray(); + @Override + public RPC.ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_DEPO; } - @Test - public void testSerialize() { + @Override + public Class getTargetClass() { + return GetDepo.Request.class; + } - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); + @Override + public GetDepo.Request getExpectedDeserializedObject() { + return GetDepo.Request.builder() + .clientCode(CLIENT_CODE) + .firmId(FIRM_ID) + .secCode(SEC_CODE) + .trdAccId(TRD_ACC_ID) + .build(); } - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetDepo.Request.class, expectedPbInput)); + @Override + public MessageLite getPbRequestArgs() { + return qlua.rpc.GetDepo.Request.newBuilder() + .setClientCode(CLIENT_CODE) + .setFirmid(FIRM_ID) + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java new file mode 100644 index 0000000..da4eeb4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.google.protobuf.MessageLite; +import qlua.rpc.RPC; + +public class GetMoneyRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLIENT_CODE = "1"; + private static final String FIRM_ID = "2"; + private static final String TAG = "3"; + private static final String CURR_CODE = "4"; + + @Override + public GetMoney.Request getExpectedDeserializedObject() { + return GetMoney.Request.builder() + .clientCode(CLIENT_CODE) + .firmId(FIRM_ID) + .tag(TAG) + .currCode(CURR_CODE) + .build(); + } + + @Override + public RPC.ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_MONEY; + } + + @Override + public MessageLite getPbRequestArgs() { + return qlua.rpc.GetMoney.Request.newBuilder() + .setClientCode(CLIENT_CODE) + .setFirmid(FIRM_ID) + .setTag(TAG) + .setCurrcode(CURR_CODE) + .build(); + } + + @Override + public Class getTargetClass() { + return GetMoney.Request.class; + } +} From 805cff0f6aa3e294511375a95b6a94f894f70cbd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 01:40:57 +0300 Subject: [PATCH 287/549] More concise methods' names. --- .../lua/rpc/serde/protobuf/AbstractPbSerdeTest.java | 12 ++++++------ .../serde/protobuf/AbstractRequestPbSerdeTest.java | 2 +- .../serde/protobuf/GetDepoRequestPbSerdeTest.java | 4 ++-- .../serde/protobuf/GetMoneyRequestPbSerdeTest.java | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java index 28fabd8..b4d0725 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -12,26 +12,26 @@ @Ignore public abstract class AbstractPbSerdeTest { - public SerdeModule getSUT() { + public SerdeModule getSerdeModuleUnderTest() { return ProtobufSerdeModule.INSTANCE; } - public abstract Class getTargetClass(); + public abstract Class getTargetObjectClass(); - public abstract byte[] getExpectedPbSerializedForm(); + public abstract byte[] getTargetObjectPbSerializedForm(); - public abstract T getExpectedDeserializedObject(); + public abstract T getTargetObject(); @Test public void testSerialize() { assertTrue( - Arrays.equals(getExpectedPbSerializedForm(), getSUT().serialize(getExpectedDeserializedObject())) + Arrays.equals(getTargetObjectPbSerializedForm(), getSerdeModuleUnderTest().serialize(getTargetObject())) ); } @Test public void testDeserialize() { - assertEquals(getExpectedDeserializedObject(), getSUT().deserialize(getTargetClass(), getExpectedPbSerializedForm())); + assertEquals(getTargetObject(), getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getTargetObjectPbSerializedForm())); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java index 7432653..215c9d0 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java @@ -13,7 +13,7 @@ public abstract class AbstractRequestPbSerdeTest extends AbstractPbSerdeTest< public abstract MessageLite getPbRequestArgs(); @Override - public final byte[] getExpectedPbSerializedForm() { + public final byte[] getTargetObjectPbSerializedForm() { final RPC.Request.Builder request = RPC.Request.newBuilder(); request.setType( getProcedureType() ); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java index e260d19..8ff4d29 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java @@ -17,12 +17,12 @@ public RPC.ProcedureType getProcedureType() { } @Override - public Class getTargetClass() { + public Class getTargetObjectClass() { return GetDepo.Request.class; } @Override - public GetDepo.Request getExpectedDeserializedObject() { + public GetDepo.Request getTargetObject() { return GetDepo.Request.builder() .clientCode(CLIENT_CODE) .firmId(FIRM_ID) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java index da4eeb4..193c98a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java @@ -12,7 +12,7 @@ public class GetMoneyRequestPbSerdeTest extends AbstractRequestPbSerdeTest getTargetClass() { + public Class getTargetObjectClass() { return GetMoney.Request.class; } } From 0d43714047e5521ff9011ce009b1678d654dba7b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 02:37:49 +0300 Subject: [PATCH 288/549] Improved readability, made some refactoring. --- .../serde/protobuf/AbstractPbSerdeTest.java | 18 +++- .../protobuf/AbstractRequestPbSerdeTest.java | 12 ++- .../protobuf/GetDepoRequestPbSerdeTest.java | 5 + .../protobuf/GetDepoResultPbSerdeTest.java | 100 ++++++++---------- .../protobuf/GetMoneyRequestPbSerdeTest.java | 5 + 5 files changed, 79 insertions(+), 61 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java index b4d0725..8771287 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -1,6 +1,8 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; import org.junit.Ignore; import org.junit.Test; @@ -10,17 +12,21 @@ import static org.junit.Assert.assertTrue; @Ignore -public abstract class AbstractPbSerdeTest { +public abstract class AbstractPbSerdeTest { + @NotNull public SerdeModule getSerdeModuleUnderTest() { return ProtobufSerdeModule.INSTANCE; } - public abstract Class getTargetObjectClass(); + @NotNull + public abstract Class getTargetObjectClass(); - public abstract byte[] getTargetObjectPbSerializedForm(); + @NotNull + public abstract PB_OBJECT getTargetObjectAsPbMessage(); - public abstract T getTargetObject(); + @NotNull + public abstract TARGET_OBJECT getTargetObject(); @Test public void testSerialize() { @@ -34,4 +40,8 @@ public void testSerialize() { public void testDeserialize() { assertEquals(getTargetObject(), getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getTargetObjectPbSerializedForm())); } + + private byte[] getTargetObjectPbSerializedForm() { + return getTargetObjectAsPbMessage().toByteArray(); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java index 215c9d0..3351e13 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractRequestPbSerdeTest.java @@ -1,19 +1,23 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.google.protobuf.ByteString; import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.junit.Ignore; import qlua.rpc.RPC; @Ignore -public abstract class AbstractRequestPbSerdeTest extends AbstractPbSerdeTest { +public abstract class AbstractRequestPbSerdeTest extends AbstractPbSerdeTest { + @NotNull public abstract RPC.ProcedureType getProcedureType(); + @Nullable public abstract MessageLite getPbRequestArgs(); + @NotNull @Override - public final byte[] getTargetObjectPbSerializedForm() { + public final RPC.Request getTargetObjectAsPbMessage() { final RPC.Request.Builder request = RPC.Request.newBuilder(); request.setType( getProcedureType() ); @@ -22,6 +26,6 @@ public final byte[] getTargetObjectPbSerializedForm() { request.setArgs( requestArgs.toByteString() ); } - return request.build().toByteArray(); + return request.build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java index 8ff4d29..c593d76 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; import qlua.rpc.RPC; public class GetDepoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { @@ -11,16 +12,19 @@ public class GetDepoRequestPbSerdeTest extends AbstractRequestPbSerdeTest getTargetObjectClass() { return GetDepo.Request.class; } + @NotNull @Override public GetDepo.Request getTargetObject() { return GetDepo.Request.builder() @@ -31,6 +35,7 @@ public GetDepo.Request getTargetObject() { .build(); } + @NotNull @Override public MessageLite getPbRequestArgs() { return qlua.rpc.GetDepo.Request.newBuilder() diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java index eb50c6e..2d8fa5d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java @@ -2,65 +2,59 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetDepoResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetDepo.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; +import org.jetbrains.annotations.NotNull; + +public class GetDepoResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String DEPO_LIMIT_LOCKED_BUY_VALUE = "1"; + private static final String DEPO_CURRENT_BALANCE = "2"; + private static final String DEPO_LIMIT_LOCKED_BUY = "3"; + private static final String DEPO_LIMIT_LOCKED = "4"; + private static final String DEPO_LIMIT_AVAILABLE = "5"; + private static final String DEPO_CURRENT_LIMIT = "6"; + private static final String DEPO_OPEN_BALANCE = "7"; + private static final String DEPO_OPEN_LIMIT = "8"; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetDepo.Result.class; + } - final Depo depo = Depo.builder() - .depoLimitLockedBuyValue("1") - .depoCurrentBalance("2") - .depoLimitLockedBuy("3") - .depoLimitLocked("4") - .depoLimitAvailable("5") - .depoCurrentLimit("6") - .depoOpenBalance("7") - .depoOpenLimit("8") - .build(); - final qlua.rpc.GetDepo.Depo pbDepo = qlua.rpc.GetDepo.Depo.newBuilder() - .setDepoLimitLockedBuyValue("1") - .setDepoCurrentBalance("2") - .setDepoLimitLockedBuy("3") - .setDepoLimitLocked("4") - .setDepoLimitAvailable("5") - .setDepoCurrentLimit("6") - .setDepoOpenBalance("7") - .setDepoOpenLimit("8") + @NotNull + @Override + public qlua.rpc.GetDepo.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetDepo.Depo depo = qlua.rpc.GetDepo.Depo.newBuilder() + .setDepoLimitLockedBuyValue(DEPO_LIMIT_LOCKED_BUY_VALUE) + .setDepoCurrentBalance(DEPO_CURRENT_BALANCE) + .setDepoLimitLockedBuy(DEPO_LIMIT_LOCKED_BUY) + .setDepoLimitLocked(DEPO_LIMIT_LOCKED) + .setDepoLimitAvailable(DEPO_LIMIT_AVAILABLE) + .setDepoCurrentLimit(DEPO_CURRENT_LIMIT) + .setDepoOpenBalance(DEPO_OPEN_BALANCE) + .setDepoOpenLimit(DEPO_OPEN_LIMIT) .build(); - expectedObject = new GetDepo.Result(depo); - expectedPbInput = qlua.rpc.GetDepo.Result.newBuilder() - .setDepo(pbDepo) - .build() - .toByteArray(); + return qlua.rpc.GetDepo.Result.newBuilder() + .setDepo(depo) + .build(); } - @Test - public void testSerialize() { + @NotNull + @Override + public GetDepo.Result getTargetObject() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } + final Depo depo = Depo.builder() + .depoLimitLockedBuyValue(DEPO_LIMIT_LOCKED_BUY_VALUE) + .depoCurrentBalance(DEPO_CURRENT_BALANCE) + .depoLimitLockedBuy(DEPO_LIMIT_LOCKED_BUY) + .depoLimitLocked(DEPO_LIMIT_LOCKED) + .depoLimitAvailable(DEPO_LIMIT_AVAILABLE) + .depoCurrentLimit(DEPO_CURRENT_LIMIT) + .depoOpenBalance(DEPO_OPEN_BALANCE) + .depoOpenLimit(DEPO_OPEN_LIMIT) + .build(); - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetDepo.Result.class, expectedPbInput)); + return new GetDepo.Result(depo); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java index 193c98a..571156b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java @@ -2,6 +2,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; import qlua.rpc.RPC; public class GetMoneyRequestPbSerdeTest extends AbstractRequestPbSerdeTest { @@ -11,6 +12,7 @@ public class GetMoneyRequestPbSerdeTest extends AbstractRequestPbSerdeTest getTargetObjectClass() { return GetMoney.Request.class; From 715cd0ab4111dff12ad6322423ceaafda741dcc6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 02:38:57 +0300 Subject: [PATCH 289/549] Added an abstract test class for testing ser/deser of the *Result classes. --- .../lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java new file mode 100644 index 0000000..47bd53e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java @@ -0,0 +1,6 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.google.protobuf.MessageLite; + +public abstract class AbstractResultPbSerdeTest extends AbstractPbSerdeTest { +} From a13d3acb19bcf4aa69d2a3290864be826bc4289b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 12 Sep 2018 02:39:51 +0300 Subject: [PATCH 290/549] Added a protobuf serde facility for GetMoney.Result. --- .../quik/lua/rpc/api/messages/GetMoney.java | 2 +- .../serde/protobuf/GetMoneyResultPbSerde.java | 41 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/GetMoneyResultPbSerdeTest.java | 58 +++++++++++++++++++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java index 5a0a8c2..b0352d7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java @@ -50,7 +50,7 @@ public static class Result { Money money; @JsonCreator - public Result(final @JsonProperty(value = "money", required = true) @NonNull Money money) { + public Result(@JsonProperty(value = "money", required = true) @NonNull final Money money) { this.money = money; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java new file mode 100644 index 0000000..3c8d61d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoney; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbMoney; + +enum GetMoneyResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetMoney.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoney.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetMoney.Result.parseFrom(data) ); + } + + @Override + public GetMoney.Result convertFromPb(@NotNull final qlua.rpc.GetMoney.Result result) { + return new GetMoney.Result( convertFromPbMoney(result.getMoney()) ); + } + + @Override + public qlua.rpc.GetMoney.Result convertToPb(@NotNull final GetMoney.Result result) { + + return qlua.rpc.GetMoney.Result.newBuilder() + .setMoney( convertToPbMoney(result.getMoney()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 4f19855..2a8e13e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -165,6 +165,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetLinesCount.Request.class, GetLinesCountRequestPbSerde.INSTANCE); registerSerde(result, GetLinesCount.Result.class, GetLinesCountResultPbSerde.INSTANCE); registerSerde(result, GetMoney.Request.class, GetMoneyRequestPbSerde.INSTANCE); + registerSerde(result, GetMoney.Result.class, GetMoneyResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java new file mode 100644 index 0000000..5eb9714 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import org.jetbrains.annotations.NotNull; + +public class GetMoneyResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String MONEY_OPEN_LIMIT = "1"; + private static final String MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE = "2"; + private static final String MONEY_LIMIT_LOCKED = "3"; + private static final String MONEY_OPEN_BALANCE = "4"; + private static final String MONEY_CURRENT_LIMIT = "5"; + private static final String MONEY_CURRENT_BALANCE = "6"; + private static final String MONEY_LIMIT_AVAILABLE = "7"; + + @NotNull + @Override + public Class getTargetObjectClass() { + return GetMoney.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetMoney.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetMoney.Money money = qlua.rpc.GetMoney.Money.newBuilder() + .setMoneyOpenLimit("1") + .setMoneyLimitLockedNonmarginalValue("2") + .setMoneyLimitLocked("3") + .setMoneyOpenBalance("4") + .setMoneyCurrentLimit("5") + .setMoneyCurrentBalance("6") + .setMoneyLimitAvailable("7") + .build(); + + return qlua.rpc.GetMoney.Result.newBuilder() + .setMoney(money) + .build(); + } + + @NotNull + @Override + public GetMoney.Result getTargetObject() { + + final Money money = Money.builder() + .moneyOpenLimit(MONEY_OPEN_LIMIT) + .moneyLimitLockedNonMarginalValue(MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE) + .moneyLimitLocked(MONEY_LIMIT_LOCKED) + .moneyOpenBalance(MONEY_OPEN_BALANCE) + .moneyCurrentLimit(MONEY_CURRENT_LIMIT) + .moneyCurrentBalance(MONEY_CURRENT_BALANCE) + .moneyLimitAvailable(MONEY_LIMIT_AVAILABLE) + .build(); + + return new GetMoney.Result(money); + } +} From 2d5f9b8de8e3fc05eb94ab768fbcd3783866f3c5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Thu, 13 Sep 2018 01:30:48 +0300 Subject: [PATCH 291/549] Made some changes to the abstract test classes to ease the implementation of the test cases where some of the object's fields can be omitted; added a protobuf serde facility for GetMoneyEx.Request, GetMoneyEx.Result; moderately redone the JSON serde for GetMoneyEx accommodate null values for the money_ex field. --- .../quik/lua/rpc/api/messages/GetMoneyEx.java | 26 ++++- .../protobuf/GetMoneyExRequestPbSerde.java | 65 +++++++++++ .../protobuf/GetMoneyExResultPbSerde.java | 50 +++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 +++ .../api/messages/GetMoneyExJsonSerdeTest.java | 25 +++-- .../serde/protobuf/AbstractPbSerdeTest.java | 58 +++++++++- .../protobuf/AbstractResultPbSerdeTest.java | 9 ++ .../GetMoneyExRequestPbSerdeTest.java | 49 +++++++++ .../protobuf/GetMoneyExResultPbSerdeTest.java | 101 ++++++++++++++++++ ...etMoneyEx.result.only_required_fields.json | 1 + 11 files changed, 386 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java create mode 100644 src/test/resources/json/getMoneyEx.result.only_required_fields.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java index d4b33bd..6b47e46 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java @@ -7,6 +7,8 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class GetMoneyEx { @@ -35,6 +37,7 @@ private Request(final @NonNull String firmId, this.limitKind = limitKind; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -50,18 +53,37 @@ public String toString() { @Value public static class Result { - MoneyLimit moneyEx; + @Nullable MoneyLimit moneyEx; @JsonCreator - public Result(final @JsonProperty(value = "money_ex", required = true) @NonNull MoneyLimit moneyEx) { + public static Result getInstance(@JsonProperty(value = "money_ex") final MoneyLimit moneyEx) { + return (moneyEx == null) ? InstanceHolder.ERROR : new Result(moneyEx); + } + + private Result(final MoneyLimit moneyEx) { this.moneyEx = moneyEx; } + public boolean isError() { + return moneyEx == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add("money_ex", moneyEx) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java new file mode 100644 index 0000000..bbfae93 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetMoneyExRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_MONEY_EX; + + @Override + public byte[] serialize(final GetMoneyEx.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoneyEx.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetMoneyEx.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetMoneyEx.Request convertFromPb(@NotNull final qlua.rpc.GetMoneyEx.Request request) { + + return GetMoneyEx.Request.builder() + .firmId( request.getFirmid() ) + .clientCode( request.getClientCode() ) + .tag( request.getTag() ) + .currCode( request.getCurrcode() ) + .limitKind( request.getLimitKind() ) + .build(); + } + + @Override + public qlua.rpc.GetMoneyEx.Request convertToPb(@NotNull final GetMoneyEx.Request request) { + + return qlua.rpc.GetMoneyEx.Request.newBuilder() + .setFirmid( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .setTag( request.getTag() ) + .setCurrcode( request.getCurrCode() ) + .setLimitKind( request.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java new file mode 100644 index 0000000..aeb1d21 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoneyLimit; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbMoneyLimit; + +enum GetMoneyExResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetMoneyEx.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoneyEx.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetMoneyEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetMoneyEx.Result convertFromPb(@NotNull final qlua.rpc.GetMoneyEx.Result result) { + + final MoneyLimit moneyLimit = result.hasMoneyEx() ? convertFromPbMoneyLimit(result.getMoneyEx()) : null; + return GetMoneyEx.Result.getInstance(moneyLimit); + } + + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Result convertToPb(@NotNull final GetMoneyEx.Result result) { + + final qlua.rpc.GetMoneyEx.Result.Builder pbResult = qlua.rpc.GetMoneyEx.Result.newBuilder(); + final MoneyLimit moneyLimit = result.getMoneyEx(); + if (moneyLimit != null) { + pbResult.setMoneyEx( convertToPbMoneyLimit(moneyLimit) ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 2a8e13e..df28099 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -166,6 +166,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetLinesCount.Result.class, GetLinesCountResultPbSerde.INSTANCE); registerSerde(result, GetMoney.Request.class, GetMoneyRequestPbSerde.INSTANCE); registerSerde(result, GetMoney.Result.class, GetMoneyResultPbSerde.INSTANCE); + registerSerde(result, GetMoneyEx.Request.class, GetMoneyExRequestPbSerde.INSTANCE); + registerSerde(result, GetMoneyEx.Result.class, GetMoneyExResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 908269d..28d52f7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -47,6 +47,9 @@ final class ProtobufSerdeUtils { private static final PbConverter MONEY_PB_CONVERTER = MoneyPbSerde.INSTANCE; + private static final PbConverter MONEY_LIMIT_PB_CONVERTER = + MoneyLimitPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -162,6 +165,16 @@ static Money convertFromPbMoney(@NotNull final qlua.rpc.GetMoney.Money money) { return MONEY_PB_CONVERTER.convertFromPb(money); } + @NotNull + static QluaStructures.MoneyLimit convertToPbMoneyLimit(@NotNull final MoneyLimit moneyLimit) { + return MONEY_LIMIT_PB_CONVERTER.convertToPb(moneyLimit); + } + + @NotNull + static MoneyLimit convertFromPbMoneyLimit(@NotNull final QluaStructures.MoneyLimit moneyLimit) { + return MONEY_LIMIT_PB_CONVERTER.convertFromPb(moneyLimit); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java index a7432cf..3a2caf4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java @@ -17,10 +17,14 @@ public class GetMoneyExJsonSerdeTest { private static ObjectMapper sut; private static GetMoneyEx.Request requestObj; - private static GetMoneyEx.Result resultObj; private static String requestJson; + + private static GetMoneyEx.Result resultObj; private static String resultJson; + private static GetMoneyEx.Result resultObjWithOnlyRequiredFields; + private static String resultJsonWithOnlyRequiredFields; + @BeforeClass public static void globalSetup() throws IOException { @@ -34,6 +38,7 @@ public static void globalSetup() throws IOException { .currCode("4") .limitKind(5) .build(); + requestJson = Resources.toString(Resources.getResource("json/getMoneyEx.request.json"), Charsets.UTF_8); final MoneyLimit moneyEx = MoneyLimit.builder() .currCode("1") @@ -51,12 +56,12 @@ public static void globalSetup() throws IOException { .limitKind(13) .build(); - resultObj = new GetMoneyEx.Result(moneyEx); + resultObj = GetMoneyEx.Result.getInstance(moneyEx); + resultJson = Resources.toString(Resources.getResource("json/getMoneyEx.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/getMoneyEx.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getMoneyEx.result.json"), Charsets.UTF_8); + resultObjWithOnlyRequiredFields = GetMoneyEx.Result.getInstance(null); + resultJsonWithOnlyRequiredFields = + Resources.toString(Resources.getResource("json/getMoneyEx.result.only_required_fields.json"), Charsets.UTF_8); } @Test @@ -74,4 +79,12 @@ public void testResultDeserialize() throws IOException { assertEquals(resultObj, actualResultObj); } + + @Test + public void testDeserializeResultWithOnlyRequiredFields() throws IOException { + + final GetMoneyEx.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetMoneyEx.Result.class); + + assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java index 8771287..fda8564 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -14,11 +14,6 @@ @Ignore public abstract class AbstractPbSerdeTest { - @NotNull - public SerdeModule getSerdeModuleUnderTest() { - return ProtobufSerdeModule.INSTANCE; - } - @NotNull public abstract Class getTargetObjectClass(); @@ -41,7 +36,60 @@ public void testDeserialize() { assertEquals(getTargetObject(), getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getTargetObjectPbSerializedForm())); } + /** + * Where applicable, this method must be overridden with the @Test annotation on it. + */ + public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { + + assertTrue( + Arrays.equals( + getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm(), + getSerdeModuleUnderTest().serialize(getTargetObject_WithNonEssentialFieldsInitializedByDefault()) + ) + ); + } + + /** + * Where applicable, this method must be overridden with the @Test annotation on it. + */ + public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { + + assertEquals( + getTargetObject_WithNonEssentialFieldsInitializedByDefault(), + getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm()) + ); + } + + @NotNull + public SerdeModule getSerdeModuleUnderTest() { + return ProtobufSerdeModule.INSTANCE; + } + + /** + * This method must be overridden with a proper implementation if either of the test methods + * {@link #testSerialize_WithNonEssentialFieldsInitializedByDefault()} or {@link #testDeserialize_WithNonEssentialFieldsInitializedByDefault()} + * is overridden with the @Test annotation on it. + */ + @NotNull + public PB_OBJECT getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + throw new UnsupportedOperationException(); + } + + /** + * This method must be overridden with a proper implementation if either of the test methods + * {@link #testSerialize_WithNonEssentialFieldsInitializedByDefault()} or {@link #testDeserialize_WithNonEssentialFieldsInitializedByDefault()} + * is overridden with the @Test annotation on it. + */ + @NotNull + public TARGET_OBJECT getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + throw new UnsupportedOperationException(); + } + private byte[] getTargetObjectPbSerializedForm() { return getTargetObjectAsPbMessage().toByteArray(); } + + private byte[] getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm() { + return getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage().toByteArray(); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java index 47bd53e..f00c42c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java @@ -1,6 +1,15 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public abstract class AbstractResultPbSerdeTest extends AbstractPbSerdeTest { + + } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java new file mode 100644 index 0000000..160805a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetMoneyExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final String TAG = "3"; + private static final String CURR_CODE = "4"; + private static final int LIMIT_KIND = 5; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_MONEY_EX; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetMoneyEx.Request.newBuilder() + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setTag(TAG) + .setCurrcode(CURR_CODE) + .setLimitKind(LIMIT_KIND) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetMoneyEx.Request.class; + } + + @NotNull + @Override + public GetMoneyEx.Request getTargetObject() { + return GetMoneyEx.Request.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .tag(TAG) + .currCode(CURR_CODE) + .limitKind(LIMIT_KIND) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java new file mode 100644 index 0000000..899b3aa --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java @@ -0,0 +1,101 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; +import qlua.structs.QluaStructures; + +public class GetMoneyExResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String CURR_CODE = "1"; + private static final String TAG = "2"; + private static final String FIRM_ID = "3"; + private static final String CLIENT_CODE = "4"; + private static final String OPEN_BAL = "5"; + private static final String OPEN_LIMIT = "6"; + private static final String CURRENT_BAL = "7"; + private static final String CURRENT_LIMIT = "8"; + private static final String LOCKED = "9"; + private static final String LOCKED_VALUE_COEF = "10"; + private static final String LOCKED_MARGIN_VALUE = "11"; + private static final String LEVERAGE = "12"; + private static final int LIMIT_KIND = 13; + + @Test + @Override + public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { + super.testSerialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @Test + @Override + public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { + super.testDeserialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetMoneyEx.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Result getTargetObjectAsPbMessage() { + + final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.newBuilder() + .setCurrcode(CURR_CODE) + .setTag(TAG) + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setOpenbal(OPEN_BAL) + .setOpenlimit(OPEN_LIMIT) + .setCurrentbal(CURRENT_BAL) + .setCurrentlimit(CURRENT_LIMIT) + .setLocked(LOCKED) + .setLockedValueCoef(LOCKED_VALUE_COEF) + .setLockedMarginValue(LOCKED_MARGIN_VALUE) + .setLeverage(LEVERAGE) + .setLimitKind(LIMIT_KIND) + .build(); + + return qlua.rpc.GetMoneyEx.Result.newBuilder() + .setMoneyEx(moneyLimit) + .build(); + } + + @NotNull + @Override + public GetMoneyEx.Result getTargetObject() { + + final MoneyLimit moneyLimit = MoneyLimit.builder() + .currCode(CURR_CODE) + .tag(TAG) + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .openBal(OPEN_BAL) + .openLimit(OPEN_LIMIT) + .currentBal(CURRENT_BAL) + .currentLimit(CURRENT_LIMIT) + .locked(LOCKED) + .lockedValueCoef(LOCKED_VALUE_COEF) + .lockedMarginValue(LOCKED_MARGIN_VALUE) + .leverage(LEVERAGE) + .limitKind(LIMIT_KIND) + .build(); + + return GetMoneyEx.Result.getInstance(moneyLimit); + } + + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Result getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + return qlua.rpc.GetMoneyEx.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetMoneyEx.Result getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + return GetMoneyEx.Result.getInstance(null); + } +} diff --git a/src/test/resources/json/getMoneyEx.result.only_required_fields.json b/src/test/resources/json/getMoneyEx.result.only_required_fields.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getMoneyEx.result.only_required_fields.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 812f6a6c5e846ab8181cc55aabd4448f47cf2ad3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 14 Sep 2018 00:34:05 +0300 Subject: [PATCH 292/549] Added a protobuf serde facility for GetNumberOf. --- .../lua/rpc/api/messages/GetNumberOf.java | 9 +++- .../protobuf/GetNumberOfRequestPbSerde.java | 54 +++++++++++++++++++ .../protobuf/GetNumberOfResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/AbstractResultPbSerdeTest.java | 7 --- .../protobuf/GetNumberOfPbSerdeTest.java | 35 ++++++++++++ .../GetNumberOfResultPbSerdeTest.java | 28 ++++++++++ 7 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java index 8dd13da..8529f9e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java @@ -5,14 +5,20 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetNumberOf { @Value public static class Request { - @NonNull String tableName; + String tableName; + public Request(@NonNull final String tableName) { + this.tableName = tableName; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -31,6 +37,7 @@ public Result(final @JsonProperty(value = "result", required = true) int result) this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java new file mode 100644 index 0000000..574fb1b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetNumberOfRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_NUMBER_OF; + + @Override + public byte[] serialize(final GetNumberOf.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumberOf.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetNumberOf.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetNumberOf.Request convertFromPb(@NotNull final qlua.rpc.GetNumberOf.Request request) { + return new GetNumberOf.Request( request.getTableName() ); + } + + @Override + public qlua.rpc.GetNumberOf.Request convertToPb(@NotNull final GetNumberOf.Request request) { + + return qlua.rpc.GetNumberOf.Request.newBuilder() + .setTableName( request.getTableName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java new file mode 100644 index 0000000..f38d1d4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetNumberOfResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetNumberOf.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumberOf.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetNumberOf.Result.parseFrom(data) ); + } + + @Override + public GetNumberOf.Result convertFromPb(@NotNull final qlua.rpc.GetNumberOf.Result result) { + return new GetNumberOf.Result( result.getResult() ); + } + + @Override + public qlua.rpc.GetNumberOf.Result convertToPb(@NotNull final GetNumberOf.Result result) { + return qlua.rpc.GetNumberOf.Result.newBuilder() + .setResult( result.getResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index df28099..224bb03 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -168,6 +168,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetMoney.Result.class, GetMoneyResultPbSerde.INSTANCE); registerSerde(result, GetMoneyEx.Request.class, GetMoneyExRequestPbSerde.INSTANCE); registerSerde(result, GetMoneyEx.Result.class, GetMoneyExResultPbSerde.INSTANCE); + registerSerde(result, GetNumberOf.Request.class, GetNumberOfRequestPbSerde.INSTANCE); + registerSerde(result, GetNumberOf.Result.class, GetNumberOfResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java index f00c42c..8ceecbb 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java @@ -1,13 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; public abstract class AbstractResultPbSerdeTest extends AbstractPbSerdeTest { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java new file mode 100644 index 0000000..a1aee24 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetNumberOfPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String TABLE_NAME = "1"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_NUMBER_OF; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetNumberOf.Request.newBuilder() + .setTableName(TABLE_NAME) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetNumberOf.Request.class; + } + + @NotNull + @Override + public GetNumberOf.Request getTargetObject() { + return new GetNumberOf.Request(TABLE_NAME); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java new file mode 100644 index 0000000..0efdd0e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import org.jetbrains.annotations.NotNull; + +public class GetNumberOfResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetNumberOf.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetNumberOf.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetNumberOf.Result.newBuilder() + .setResult(RESULT) + .build(); + } + + @NotNull + @Override + public GetNumberOf.Result getTargetObject() { + return new GetNumberOf.Result(RESULT); + } +} From 8af74c1e9c570680081ea0cae4a3d7ea5a329a1c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 14 Sep 2018 00:40:22 +0300 Subject: [PATCH 293/549] Added a protobuf serde facility for GetNumCandles. --- .../lua/rpc/api/messages/GetNumCandles.java | 11 +++- .../protobuf/GetNumCandlesRequestPbSerde.java | 54 +++++++++++++++++++ .../protobuf/GetNumCandlesResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetNumCandlesRequestPbSerdeTest.java | 35 ++++++++++++ .../GetNumCandlesResultPbSerdeTest.java | 28 ++++++++++ 6 files changed, 165 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java index dc7e1ec..04a252c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java @@ -5,6 +5,7 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetNumCandles { @@ -13,8 +14,13 @@ private GetNumCandles() {} @Value public static class Request { - @NonNull String tag; + String tag; + public Request(@NonNull final String tag) { + this.tag = tag; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -29,10 +35,11 @@ public static class Result { int numCandles; @JsonCreator - public Result(final @JsonProperty(value = "num_candles", required = true) int numCandles) { + public Result(@JsonProperty(value = "num_candles", required = true) final int numCandles) { this.numCandles = numCandles; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java new file mode 100644 index 0000000..9face89 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetNumCandlesRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_NUM_CANDLES; + + @Override + public byte[] serialize(final GetNumCandles.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumCandles.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetNumCandles.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetNumCandles.Request convertFromPb(@NotNull final qlua.rpc.GetNumCandles.Request request) { + return new GetNumCandles.Request( request.getTag() ); + } + + @Override + public qlua.rpc.GetNumCandles.Request convertToPb(@NotNull final GetNumCandles.Request request) { + + return qlua.rpc.GetNumCandles.Request.newBuilder() + .setTag( request.getTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java new file mode 100644 index 0000000..572c525 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetNumCandlesResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetNumCandles.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumCandles.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetNumCandles.Result.parseFrom(data) ); + } + + @Override + public GetNumCandles.Result convertFromPb(@NotNull final qlua.rpc.GetNumCandles.Result result) { + return new GetNumCandles.Result( result.getNumCandles() ); + } + + @Override + public qlua.rpc.GetNumCandles.Result convertToPb(@NotNull final GetNumCandles.Result result) { + return qlua.rpc.GetNumCandles.Result.newBuilder() + .setNumCandles( result.getNumCandles() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 224bb03..760b78a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -170,6 +170,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetMoneyEx.Result.class, GetMoneyExResultPbSerde.INSTANCE); registerSerde(result, GetNumberOf.Request.class, GetNumberOfRequestPbSerde.INSTANCE); registerSerde(result, GetNumberOf.Result.class, GetNumberOfResultPbSerde.INSTANCE); + registerSerde(result, GetNumCandles.Request.class, GetNumCandlesRequestPbSerde.INSTANCE); + registerSerde(result, GetNumCandles.Result.class, GetNumCandlesResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java new file mode 100644 index 0000000..e2c54f5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetNumCandlesRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String TAG = "1"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_NUM_CANDLES; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetNumCandles.Request.newBuilder() + .setTag(TAG) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetNumCandles.Request.class; + } + + @NotNull + @Override + public GetNumCandles.Request getTargetObject() { + return new GetNumCandles.Request(TAG); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java new file mode 100644 index 0000000..3ef45e6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import org.jetbrains.annotations.NotNull; + +public class GetNumCandlesResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final int NUM_CANDLES = 1; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetNumCandles.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetNumCandles.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetNumCandles.Result.newBuilder() + .setNumCandles(NUM_CANDLES) + .build(); + } + + @NotNull + @Override + public GetNumCandles.Result getTargetObject() { + return new GetNumCandles.Result(NUM_CANDLES); + } +} From 710727a1fa2f27dcb11ee7f79191d6e3a318de5e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 14 Sep 2018 00:40:37 +0300 Subject: [PATCH 294/549] Renamed test. --- ...berOfPbSerdeTest.java => GetNumberOfRequestPbSerdeTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetNumberOfPbSerdeTest.java => GetNumberOfRequestPbSerdeTest.java} (90%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java similarity index 90% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java index a1aee24..35ea5f6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable; import qlua.rpc.RPC; -public class GetNumberOfPbSerdeTest extends AbstractRequestPbSerdeTest { +public class GetNumberOfRequestPbSerdeTest extends AbstractRequestPbSerdeTest { private static final String TABLE_NAME = "1"; From df3b26872bd3e1c38e5085cfdfb90987f75632d2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 14 Sep 2018 01:25:35 +0300 Subject: [PATCH 295/549] Added a protobuf serde facility for GetOrderByNumber; moderately redone the JSON serde for GetOrderByNumber to make it able to deserialize the error case. --- .../rpc/api/messages/GetOrderByNumber.java | 34 ++- .../GetOrderByNumberRequestPbSerde.java | 55 +++++ .../GetOrderByNumberResultPbSerde.java | 50 ++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 12 + .../GetOrderByNumberJsonSerdeTest.java | 21 +- .../GetOrderByNumberRequestPbSerdeTest.java | 37 +++ .../GetOrderByNumberResultPbSerdeTest.java | 224 ++++++++++++++++++ .../json/getOrderByNumber.error.json | 1 + 9 files changed, 427 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java create mode 100644 src/test/resources/json/getOrderByNumber.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java index 0cb5d24..d8ddc9d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java @@ -6,6 +6,8 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetOrderByNumber { @@ -15,6 +17,12 @@ public static class Request { String classCode; long orderId; + public Request(@NonNull final String classCode, final long orderId) { + this.classCode = classCode; + this.orderId = orderId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -31,14 +39,24 @@ public static class Result { int indx; @JsonCreator - public Result( - final @JsonProperty(value = "order", required = true) @NonNull Order order, - final @JsonProperty(value = "indx", required = true) int indx) { + public static Result getInstance( + @JsonProperty("order") final Order order, + @JsonProperty("indx") final int indx) { + return (order == null) ? InstanceHolder.ERROR : new Result(order, indx); + } + + private Result(final Order order, final int indx) { this.order = order; this.indx = indx; } + @Contract(pure = true) + public boolean isError() { + return order == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -46,5 +64,15 @@ public String toString() { .add("indx", indx) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null, 0); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java new file mode 100644 index 0000000..43978ab --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java @@ -0,0 +1,55 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetOrderByNumberRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_ORDER_BY_NUMBER; + + @Override + public byte[] serialize(final GetOrderByNumber.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetOrderByNumber.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetOrderByNumber.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetOrderByNumber.Request convertFromPb(@NotNull final qlua.rpc.GetOrderByNumber.Request request) { + return new GetOrderByNumber.Request(request.getClassCode(), request.getOrderId()); + } + + @Override + public qlua.rpc.GetOrderByNumber.Request convertToPb(@NotNull final GetOrderByNumber.Request request) { + + return qlua.rpc.GetOrderByNumber.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setOrderId( request.getOrderId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java new file mode 100644 index 0000000..dc1d01b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetOrderByNumberResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetOrderByNumber.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetOrderByNumber.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetOrderByNumber.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetOrderByNumber.Result convertFromPb(@NotNull final qlua.rpc.GetOrderByNumber.Result result) { + + final Order order = result.hasOrder() ? convertFromPbOrder(result.getOrder()) : null; + return GetOrderByNumber.Result.getInstance(order, result.getIndx()); + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Result convertToPb(@NotNull final GetOrderByNumber.Result result) { + + final qlua.rpc.GetOrderByNumber.Result.Builder pbResult = qlua.rpc.GetOrderByNumber.Result.newBuilder(); + final Order order = result.getOrder(); + if (order != null) { + pbResult.setOrder( convertToPbOrder(order) ); + pbResult.setIndx( result.getIndx() ); + } + + return pbResult.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 760b78a..1bf8c77 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -172,6 +172,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetNumberOf.Result.class, GetNumberOfResultPbSerde.INSTANCE); registerSerde(result, GetNumCandles.Request.class, GetNumCandlesRequestPbSerde.INSTANCE); registerSerde(result, GetNumCandles.Result.class, GetNumCandlesResultPbSerde.INSTANCE); + registerSerde(result, GetOrderByNumber.Request.class, GetOrderByNumberRequestPbSerde.INSTANCE); + registerSerde(result, GetOrderByNumber.Result.class, GetOrderByNumberResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 28d52f7..281ade6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -50,6 +50,8 @@ final class ProtobufSerdeUtils { private static final PbConverter MONEY_LIMIT_PB_CONVERTER = MoneyLimitPbSerde.INSTANCE; + private static final PbConverter ORDER_PB_CONVERTER = OrderPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -175,6 +177,16 @@ static MoneyLimit convertFromPbMoneyLimit(@NotNull final QluaStructures.MoneyLim return MONEY_LIMIT_PB_CONVERTER.convertFromPb(moneyLimit); } + @NotNull + static QluaStructures.Order convertToPbOrder(@NotNull final Order order) { + return ORDER_PB_CONVERTER.convertToPb(order); + } + + @NotNull + static Order convertFromPbOrder(@NotNull final QluaStructures.Order order) { + return ORDER_PB_CONVERTER.convertFromPb(order); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java index 28bfbde..45a1e40 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java @@ -18,10 +18,14 @@ public class GetOrderByNumberJsonSerdeTest { private static ObjectMapper sut; private static GetOrderByNumber.Request requestObj; - private static GetOrderByNumber.Result resultObj; private static String requestJson; + + private static GetOrderByNumber.Result resultObj; private static String resultJson; + private static GetOrderByNumber.Result errorObj; + private static String errorJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -29,6 +33,7 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetOrderByNumber.Request("1", 12345678909876577L); + requestJson = Resources.toString(Resources.getResource("json/getOrderByNumber.request.json"), Charsets.UTF_8); final DateTimeEntry datetime = DateTimeEntry.builder() .mcs(1) @@ -99,12 +104,11 @@ public static void globalSetup() throws IOException { .visible(42) .build(); - resultObj = new GetOrderByNumber.Result(order, 2); + resultObj = GetOrderByNumber.Result.getInstance(order, 2); + resultJson = Resources.toString(Resources.getResource("json/getOrderByNumber.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/getOrderByNumber.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getOrderByNumber.result.json"), Charsets.UTF_8); + errorObj = GetOrderByNumber.Result.getInstance(null, 0); + errorJson = Resources.toString(Resources.getResource("json/getOrderByNumber.error.json"), Charsets.UTF_8); } @Test @@ -122,4 +126,9 @@ public void testResultDeserialize() throws IOException { assertEquals(resultObj, actualResultObj); } + + @Test + public void testDeserializeError() throws IOException { + assertEquals(errorObj, sut.readValue(errorJson, GetOrderByNumber.Result.class)); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java new file mode 100644 index 0000000..7985180 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetOrderByNumberRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final long ORDER_ID = 12345678910L; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_ORDER_BY_NUMBER; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetOrderByNumber.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setOrderId(ORDER_ID) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetOrderByNumber.Request.class; + } + + @NotNull + @Override + public GetOrderByNumber.Request getTargetObject() { + return new GetOrderByNumber.Request(CLASS_CODE, ORDER_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java new file mode 100644 index 0000000..9f26ae5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java @@ -0,0 +1,224 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; +import qlua.structs.QluaStructures; + +public class GetOrderByNumberResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final int DATETIME_MCS = 1; + private static final int DATETIME_MS = 2; + private static final int DATETIME_SEC = 3; + private static final int DATETIME_MIN = 4; + private static final int DATETIME_HOUR = 5; + private static final int DATETIME_DAY = 6; + private static final int DATETIME_WEEK_DAY = 7; + private static final int DATETIME_MONTH = 8; + private static final int DATETIME_YEAR = 9; + + private static final long ORDER_NUM = 12345678910L; + private static final int FLAGS = 2; + private static final String BROKER_REF = "3"; + private static final String USER_ID = "4"; + private static final String FIRM_ID = "5"; + private static final String ACCOUNT = "6"; + private static final String PRICE = "7"; + private static final int QTY = 8; + private static final String BALANCE = "9"; + private static final String VALUE = "10"; + private static final String ACCRUED_INT = "11"; + private static final String YIELD = "12"; + private static final String TRANS_ID = "13"; + private static final String CLIENT_CODE = "14"; + private static final String PRICE2 = "15"; + private static final String SETTLE_CODE = "16"; + private static final String UID = "17"; + private static final String CANCELED_UID = "18"; + private static final String EXCHANGE_CODE = "19"; + private static final String ACTIVATION_TIME = "20"; + private static final String LINKED_ORDER = "21"; + private static final String EXPIRY = "22"; + private static final String SEC_CODE = "23"; + private static final String CLASS_CODE = "24"; + private static final String BANK_ACC_ID = "27"; + private static final int VALUE_ENTRY_TYPE = 28; + private static final String REPO_TERM = "29"; + private static final String REPO_VALUE = "30"; + private static final String REPO2_VALUE = "31"; + private static final String REPO_VALUE_BALANCE = "32"; + private static final String START_DISCOUNT = "33"; + private static final String REJECT_REASON = "34"; + private static final String EXT_ORDER_FLAGS = "35"; + private static final int MIN_QTY = 36; + private static final int EXEC_TYPE = 37; + private static final int SIDE_QUALIFIER = 38; + private static final int ACNT_TYPE = 39; + private static final int CAPACITY = 40; + private static final int PASSIVE_ONLY_ORDER = 41; + private static final int VISIBLE = 42; + + private static final int INDX = 2; + + @Test + @Override + public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { + super.testSerialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @Test + @Override + public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { + super.testDeserialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetOrderByNumber.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Result getTargetObjectAsPbMessage() { + + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(DATETIME_MCS) + .setMs(DATETIME_MS) + .setSec(DATETIME_SEC) + .setMin(DATETIME_MIN) + .setHour(DATETIME_HOUR) + .setDay(DATETIME_DAY) + .setWeekDay(DATETIME_WEEK_DAY) + .setMonth(DATETIME_MONTH) + .setYear(DATETIME_YEAR) + .build(); + + final QluaStructures.Order order = QluaStructures.Order.newBuilder() + .setOrderNum(ORDER_NUM) + .setFlags(FLAGS) + .setBrokerref(BROKER_REF) + .setUserid(USER_ID) + .setFirmid(FIRM_ID) + .setAccount(ACCOUNT) + .setPrice(PRICE) + .setQty(QTY) + .setBalance(BALANCE) + .setValue(VALUE) + .setAccruedint(ACCRUED_INT) + .setYield(YIELD) + .setTransId(TRANS_ID) + .setClientCode(CLIENT_CODE) + .setPrice2(PRICE2) + .setSettlecode(SETTLE_CODE) + .setUid(UID) + .setCanceledUid(CANCELED_UID) + .setExchangeCode(EXCHANGE_CODE) + .setActivationTime(ACTIVATION_TIME) + .setLinkedorder(LINKED_ORDER) + .setExpiry(EXPIRY) + .setSecCode(SEC_CODE) + .setClassCode(CLASS_CODE) + .setDatetime(pbDateTimeEntry) + .setWithdrawDatetime(pbDateTimeEntry) + .setBankAccId(BANK_ACC_ID) + .setValueEntryType(VALUE_ENTRY_TYPE) + .setRepoterm(REPO_TERM) + .setRepovalue(REPO_VALUE) + .setRepo2Value(REPO2_VALUE) + .setRepoValueBalance(REPO_VALUE_BALANCE) + .setStartDiscount(START_DISCOUNT) + .setRejectReason(REJECT_REASON) + .setExtOrderFlags(EXT_ORDER_FLAGS) + .setMinQty(MIN_QTY) + .setExecType(EXEC_TYPE) + .setSideQualifier(SIDE_QUALIFIER) + .setAcntType(ACNT_TYPE) + .setCapacity(CAPACITY) + .setPassiveOnlyOrder(PASSIVE_ONLY_ORDER) + .setVisible(VISIBLE) + .build(); + + return qlua.rpc.GetOrderByNumber.Result.newBuilder() + .setOrder(order) + .setIndx(INDX) + .build(); + } + + @NotNull + @Override + public GetOrderByNumber.Result getTargetObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(DATETIME_MCS) + .ms(DATETIME_MS) + .sec(DATETIME_SEC) + .min(DATETIME_MIN) + .hour(DATETIME_HOUR) + .day(DATETIME_DAY) + .weekDay(DATETIME_WEEK_DAY) + .month(DATETIME_MONTH) + .year(DATETIME_YEAR) + .build(); + + final Order order = Order.builder() + .orderNum(ORDER_NUM) + .flags(FLAGS) + .brokerRef(BROKER_REF) + .userId(USER_ID) + .firmId(FIRM_ID) + .account(ACCOUNT) + .price(PRICE) + .qty(QTY) + .balance(BALANCE) + .value(VALUE) + .accruedInt(ACCRUED_INT) + .yield(YIELD) + .transId(TRANS_ID) + .clientCode(CLIENT_CODE) + .price2(PRICE2) + .settleCode(SETTLE_CODE) + .uid(UID) + .canceledUid(CANCELED_UID) + .exchangeCode(EXCHANGE_CODE) + .activationTime(ACTIVATION_TIME) + .linkedOrder(LINKED_ORDER) + .expiry(EXPIRY) + .secCode(SEC_CODE) + .classCode(CLASS_CODE) + .datetime(dateTimeEntry) + .withdrawDatetime(dateTimeEntry) + .bankAccId(BANK_ACC_ID) + .valueEntryType(VALUE_ENTRY_TYPE) + .repoTerm(REPO_TERM) + .repoValue(REPO_VALUE) + .repo2Value(REPO2_VALUE) + .repoValueBalance(REPO_VALUE_BALANCE) + .startDiscount(START_DISCOUNT) + .rejectReason(REJECT_REASON) + .extOrderFlags(EXT_ORDER_FLAGS) + .minQty(MIN_QTY) + .execType(EXEC_TYPE) + .sideQualifier(SIDE_QUALIFIER) + .acntType(ACNT_TYPE) + .capacity(CAPACITY) + .passiveOnlyOrder(PASSIVE_ONLY_ORDER) + .visible(VISIBLE) + .build(); + + return GetOrderByNumber.Result.getInstance(order, INDX); + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Result getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + return qlua.rpc.GetOrderByNumber.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetOrderByNumber.Result getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + return GetOrderByNumber.Result.getInstance(null, 0); + } +} diff --git a/src/test/resources/json/getOrderByNumber.error.json b/src/test/resources/json/getOrderByNumber.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getOrderByNumber.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 8fcdd14f9eaf65c1776ff5319e318a0e4964bddf Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 04:04:56 +0300 Subject: [PATCH 296/549] Added a protobuf serde facility for GetParamEx. --- pom.xml | 8 ++ .../quik/lua/rpc/api/messages/GetParamEx.java | 15 ++-- .../protobuf/GetParamExRequestPbSerde.java | 61 +++++++++++++++ .../protobuf/GetParamExResultPbSerde.java | 65 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetParamExRequestPbSerdeTest.java | 43 +++++++++++ .../protobuf/GetParamExResultPbSerdeTest.java | 74 +++++++++++++++++++ 7 files changed, 262 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java diff --git a/pom.xml b/pom.xml index 9bd6fd5..175c06e 100644 --- a/pom.xml +++ b/pom.xml @@ -77,6 +77,14 @@ test + + + org.hamcrest + hamcrest-all + 1.3 + test + + org.powermock powermock-module-junit4 diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java index 65f1892..dda0f27 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java @@ -6,6 +6,7 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetParamEx { @@ -31,6 +32,7 @@ private ParamEx(final @JsonProperty("param_type") String paramType, this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -45,12 +47,12 @@ public String toString() { @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; - @NonNull String paramName; + String classCode; + String secCode; + String paramName; @Builder - private Request(final String classCode, final String secCode, final String paramName) { + private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { this.classCode = classCode; this.secCode = secCode; this.paramName = paramName; @@ -69,13 +71,14 @@ public String toString() { @Value public static class Result { - @NonNull ParamEx paramEx; + ParamEx paramEx; @JsonCreator - public Result(final @JsonProperty(value = "param_ex", required = true) ParamEx paramEx) { + public Result(@JsonProperty(value = "param_ex", required = true) @NonNull final ParamEx paramEx) { this.paramEx = paramEx; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java new file mode 100644 index 0000000..0efd2fa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetParamExRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PARAM_EX; + + @Override + public byte[] serialize(final GetParamEx.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetParamEx.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetParamEx.Request convertFromPb(@NotNull final qlua.rpc.GetParamEx.Request request) { + + return GetParamEx.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .paramName( request.getParamName() ) + .build(); + } + + @Override + public qlua.rpc.GetParamEx.Request convertToPb(@NotNull final GetParamEx.Request request) { + + return qlua.rpc.GetParamEx.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setParamName( request.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java new file mode 100644 index 0000000..e155cee --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum GetParamExResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetParamEx.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetParamEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetParamEx.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx.Result result) { + + if (!result.hasParamEx()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetParamEx.Result не содержит поля 'paramEx'."); + } + + final qlua.rpc.GetParamEx.ParamEx pbParamEx = result.getParamEx(); + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType( convertFromPbString(pbParamEx.getParamType()) ) + .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) + .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) + .result( convertFromPbString(pbParamEx.getResult()) ) + .build(); + + return new GetParamEx.Result(paramEx); + } + + @NotNull + @Override + public qlua.rpc.GetParamEx.Result convertToPb(@NotNull final GetParamEx.Result result) { + + final GetParamEx.ParamEx paramEx = result.getParamEx(); + final qlua.rpc.GetParamEx.ParamEx pbParamEx = qlua.rpc.GetParamEx.ParamEx.newBuilder() + .setParamType( convertToPbString(paramEx.getParamType()) ) + .setParamValue( convertToPbString(paramEx.getParamValue()) ) + .setParamImage( convertToPbString(paramEx.getParamImage()) ) + .setResult( convertToPbString(paramEx.getResult()) ) + .build(); + + return qlua.rpc.GetParamEx.Result.newBuilder() + .setParamEx(pbParamEx) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 1bf8c77..dd37f6f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -174,6 +174,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetNumCandles.Result.class, GetNumCandlesResultPbSerde.INSTANCE); registerSerde(result, GetOrderByNumber.Request.class, GetOrderByNumberRequestPbSerde.INSTANCE); registerSerde(result, GetOrderByNumber.Result.class, GetOrderByNumberResultPbSerde.INSTANCE); + registerSerde(result, GetParamEx.Request.class, GetParamExRequestPbSerde.INSTANCE); + registerSerde(result, GetParamEx.Result.class, GetParamExResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java new file mode 100644 index 0000000..81b430e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetParamExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String PARAM_NAME = "3"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_PARAM_EX; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetParamEx.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setParamName(PARAM_NAME) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetParamEx.Request.class; + } + + @NotNull + @Override + public GetParamEx.Request getTargetObject() { + return GetParamEx.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .paramName(PARAM_NAME) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java new file mode 100644 index 0000000..f2a28b1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.enfernuz.quik.lua.rpc.serde.protobuf.AbstractResultPbSerdeTest; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetParamExResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String PARAM_TYPE = "1"; + private static final String PARAM_VALUE = "2"; + private static final String PARAM_IMAGE = "3"; + private static final String RESULT = "4"; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetParamEx.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetParamEx.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetParamEx.ParamEx paramEx = qlua.rpc.GetParamEx.ParamEx.newBuilder() + .setParamType(PARAM_TYPE) + .setParamValue(PARAM_VALUE) + .setParamImage(PARAM_IMAGE) + .setResult(RESULT) + .build(); + + return qlua.rpc.GetParamEx.Result.newBuilder() + .setParamEx(paramEx) + .build(); + } + + @NotNull + @Override + public GetParamEx.Result getTargetObject() { + + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType(PARAM_TYPE) + .paramValue(PARAM_VALUE) + .paramImage(PARAM_IMAGE) + .result(RESULT) + .build(); + + return new GetParamEx.Result(paramEx); + } + + @Test + public void shouldFailOnUninitializedPbParamEx() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetParamEx.Result не содержит поля 'paramEx'.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetParamEx.Result.class, qlua.rpc.GetParamEx.Result.newBuilder().build().toByteArray()); + } +} From 52acd8f60a7ad8eff2a92c1a563b04aede259cbd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 15:19:17 +0300 Subject: [PATCH 297/549] Added a protobuf serde facility for GetParamEx2. --- .../lua/rpc/api/messages/GetParamEx2.java | 16 ++-- .../protobuf/GetParamEx2RequestPbSerde.java | 61 ++++++++++++++++ .../protobuf/GetParamEx2ResultPbSerde.java | 64 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetParamEx2RequestPbSerdeTest.java | 43 +++++++++++ .../GetParamEx2ResultPbSerdeTest.java | 73 +++++++++++++++++++ 6 files changed, 253 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java index ed1c9c5..696f3b3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java @@ -6,6 +6,7 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetParamEx2 { @@ -31,6 +32,7 @@ private ParamEx2(final @JsonProperty("param_type") String paramType, this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -45,17 +47,18 @@ public String toString() { @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; - @NonNull String paramName; + String classCode; + String secCode; + String paramName; @Builder - private Request(final String classCode, final String secCode, final String paramName) { + private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { this.classCode = classCode; this.secCode = secCode; this.paramName = paramName; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -69,13 +72,14 @@ public String toString() { @Value public static class Result { - @NonNull ParamEx2 paramEx; + ParamEx2 paramEx; @JsonCreator - public Result(final @JsonProperty(value = "param_ex", required = true) ParamEx2 paramEx) { + public Result(@JsonProperty(value = "param_ex", required = true) @NonNull final ParamEx2 paramEx) { this.paramEx = paramEx; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java new file mode 100644 index 0000000..4b403c7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetParamEx2RequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PARAM_EX_2; + + @Override + public byte[] serialize(final GetParamEx2.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx2.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetParamEx2.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetParamEx2.Request convertFromPb(@NotNull final qlua.rpc.GetParamEx2.Request request) { + + return GetParamEx2.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .paramName( request.getParamName() ) + .build(); + } + + @Override + public qlua.rpc.GetParamEx2.Request convertToPb(@NotNull final GetParamEx2.Request request) { + + return qlua.rpc.GetParamEx2.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setParamName( request.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java new file mode 100644 index 0000000..1eb6f1a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum GetParamEx2ResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetParamEx2.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx2.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetParamEx2.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetParamEx2.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx2.Result result) { + + if (!result.hasParamEx()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetParamEx2.Result не содержит поля 'paramEx'."); + } + + final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = result.getParamEx(); + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType( convertFromPbString(pbParamEx.getParamType()) ) + .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) + .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) + .result( convertFromPbString(pbParamEx.getResult()) ) + .build(); + + return new GetParamEx2.Result(paramEx); + } + + @NotNull + @Override + public qlua.rpc.GetParamEx2.Result convertToPb(@NotNull final GetParamEx2.Result result) { + + final GetParamEx2.ParamEx2 paramEx = result.getParamEx(); + final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = qlua.rpc.GetParamEx2.ParamEx2.newBuilder() + .setParamType( convertToPbString(paramEx.getParamType()) ) + .setParamValue( convertToPbString(paramEx.getParamValue()) ) + .setParamImage( convertToPbString(paramEx.getParamImage()) ) + .setResult( convertToPbString(paramEx.getResult()) ) + .build(); + + return qlua.rpc.GetParamEx2.Result.newBuilder() + .setParamEx(pbParamEx) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index dd37f6f..a754a5a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -176,6 +176,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetOrderByNumber.Result.class, GetOrderByNumberResultPbSerde.INSTANCE); registerSerde(result, GetParamEx.Request.class, GetParamExRequestPbSerde.INSTANCE); registerSerde(result, GetParamEx.Result.class, GetParamExResultPbSerde.INSTANCE); + registerSerde(result, GetParamEx2.Request.class, GetParamEx2RequestPbSerde.INSTANCE); + registerSerde(result, GetParamEx2.Result.class, GetParamEx2ResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java new file mode 100644 index 0000000..b0ee624 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetParamEx2RequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String PARAM_NAME = "3"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_PARAM_EX_2; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetParamEx2.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setParamName(PARAM_NAME) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetParamEx2.Request.class; + } + + @NotNull + @Override + public GetParamEx2.Request getTargetObject() { + return GetParamEx2.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .paramName(PARAM_NAME) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java new file mode 100644 index 0000000..bd1b1b1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetParamEx2ResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String PARAM_TYPE = "1"; + private static final String PARAM_VALUE = "2"; + private static final String PARAM_IMAGE = "3"; + private static final String RESULT = "4"; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetParamEx2.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetParamEx2.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetParamEx2.ParamEx2 paramEx = qlua.rpc.GetParamEx2.ParamEx2.newBuilder() + .setParamType(PARAM_TYPE) + .setParamValue(PARAM_VALUE) + .setParamImage(PARAM_IMAGE) + .setResult(RESULT) + .build(); + + return qlua.rpc.GetParamEx2.Result.newBuilder() + .setParamEx(paramEx) + .build(); + } + + @NotNull + @Override + public GetParamEx2.Result getTargetObject() { + + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType(PARAM_TYPE) + .paramValue(PARAM_VALUE) + .paramImage(PARAM_IMAGE) + .result(RESULT) + .build(); + + return new GetParamEx2.Result(paramEx); + } + + @Test + public void shouldFailOnUninitializedPbParamEx() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetParamEx2.Result не содержит поля 'paramEx'.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetParamEx2.Result.class, qlua.rpc.GetParamEx2.Result.newBuilder().build().toByteArray()); + } +} From 5a66054f2856b772d5578518b912c4911a7f5e40 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 16:03:37 +0300 Subject: [PATCH 298/549] Added a protobuf serde for PortfolioInfo. --- .../lua/rpc/api/structures/PortfolioInfo.java | 5 +- .../serde/protobuf/PortfolioInfoPbSerde.java | 121 ++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../protobuf/PortfolioInfoPbSerdeTest.java | 148 ++++++++++++++++++ 4 files changed, 271 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java index 5b43a40..f50e1c5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java @@ -4,10 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import java.util.Objects; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java new file mode 100644 index 0000000..fd413a4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java @@ -0,0 +1,121 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum PortfolioInfoPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final PortfolioInfo money) { + return convertToPb(money).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public PortfolioInfo deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.GetPortfolioInfo.PortfolioInfo.parseFrom(data)); + } + + @Override + public PortfolioInfo convertFromPb(@NotNull qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo) { + + return PortfolioInfo.builder() + .isLeverage( convertFromPbString(portfolioInfo.getIsLeverage()) ) + .inAssets( convertFromPbString(portfolioInfo.getInAssets()) ) + .leverage( convertFromPbString(portfolioInfo.getLeverage()) ) + .openLimit( convertFromPbString(portfolioInfo.getOpenLimit()) ) + .valShort( convertFromPbString(portfolioInfo.getValShort()) ) + .valLong( convertFromPbString(portfolioInfo.getValLong()) ) + .valLongMargin( convertFromPbString(portfolioInfo.getValLongMargin()) ) + .valLongAsset( convertFromPbString(portfolioInfo.getValLongAsset()) ) + .assets( convertFromPbString(portfolioInfo.getAssets()) ) + .curLeverage( convertFromPbString(portfolioInfo.getCurLeverage()) ) + .margin( convertFromPbString(portfolioInfo.getMargin()) ) + .limAll( convertFromPbString(portfolioInfo.getLimAll()) ) + .avLimAll( convertFromPbString(portfolioInfo.getAvLimAll()) ) + .lockedBuy( convertFromPbString(portfolioInfo.getLockedBuy()) ) + .lockedBuyMargin( convertFromPbString(portfolioInfo.getLockedBuyMargin()) ) + .lockedBuyAsset( convertFromPbString(portfolioInfo.getLockedBuyAsset()) ) + .lockedSell( convertFromPbString(portfolioInfo.getLockedSell()) ) + .lockedValueCoef( convertFromPbString(portfolioInfo.getLockedValueCoef()) ) + .inAllAssets( convertFromPbString(portfolioInfo.getInAllAssets()) ) + .allAssets( convertFromPbString(portfolioInfo.getAllAssets()) ) + .profitLoss( convertFromPbString(portfolioInfo.getProfitLoss()) ) + .rateChange( convertFromPbString(portfolioInfo.getRateChange()) ) + .limBuy( convertFromPbString(portfolioInfo.getLimBuy()) ) + .limSell( convertFromPbString(portfolioInfo.getLimSell()) ) + .limNonMargin( convertFromPbString(portfolioInfo.getLimNonMargin()) ) + .limBuyAsset( convertFromPbString(portfolioInfo.getLimBuyAsset()) ) + .valShortNet( convertFromPbString(portfolioInfo.getValShortNet()) ) + .valLongNet( convertFromPbString(portfolioInfo.getValLongNet()) ) + .totalMoneyBal( convertFromPbString(portfolioInfo.getTotalMoneyBal()) ) + .totalLockedMoney( convertFromPbString(portfolioInfo.getTotalLockedMoney()) ) + .haircuts( convertFromPbString(portfolioInfo.getHaircuts()) ) + .assetsWithoutHc( convertFromPbString(portfolioInfo.getAssetsWithoutHc()) ) + .statusCoef( convertFromPbString(portfolioInfo.getStatusCoef()) ) + .varMargin( convertFromPbString(portfolioInfo.getVarmargin()) ) + .goForPositions( convertFromPbString(portfolioInfo.getGoForPositions()) ) + .goForOrders( convertFromPbString(portfolioInfo.getGoForOrders()) ) + .rateFutures( convertFromPbString(portfolioInfo.getRateFutures()) ) + .isQualClient( convertFromPbString(portfolioInfo.getIsQualClient()) ) + .isFutures( convertFromPbString(portfolioInfo.getIsFutures()) ) + .currTag( convertFromPbString(portfolioInfo.getCurrTag()) ) + .build(); + } + + @Override + public qlua.rpc.GetPortfolioInfo.PortfolioInfo convertToPb(@NotNull final PortfolioInfo portfolioInfo) { + + return qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage( convertToPbString(portfolioInfo.getIsLeverage()) ) + .setInAssets( convertToPbString(portfolioInfo.getInAssets()) ) + .setLeverage( convertToPbString(portfolioInfo.getLeverage()) ) + .setOpenLimit( convertToPbString(portfolioInfo.getOpenLimit()) ) + .setValShort( convertToPbString(portfolioInfo.getValShort()) ) + .setValLong( convertToPbString(portfolioInfo.getValLong()) ) + .setValLongMargin( convertToPbString(portfolioInfo.getValLongMargin()) ) + .setValLongAsset( convertToPbString(portfolioInfo.getValLongAsset()) ) + .setAssets( convertToPbString(portfolioInfo.getAssets()) ) + .setCurLeverage( convertToPbString(portfolioInfo.getCurLeverage()) ) + .setMargin( convertToPbString(portfolioInfo.getMargin()) ) + .setLimAll( convertToPbString(portfolioInfo.getLimAll()) ) + .setAvLimAll( convertToPbString(portfolioInfo.getAvLimAll()) ) + .setLockedBuy( convertToPbString(portfolioInfo.getLockedBuy()) ) + .setLockedBuyMargin( convertToPbString(portfolioInfo.getLockedBuyMargin()) ) + .setLockedBuyAsset( convertToPbString(portfolioInfo.getLockedBuyAsset()) ) + .setLockedSell( convertToPbString(portfolioInfo.getLockedSell()) ) + .setLockedValueCoef( convertToPbString(portfolioInfo.getLockedValueCoef()) ) + .setInAllAssets( convertToPbString(portfolioInfo.getInAllAssets()) ) + .setAllAssets( convertToPbString(portfolioInfo.getAllAssets()) ) + .setProfitLoss( convertToPbString(portfolioInfo.getProfitLoss()) ) + .setRateChange( convertToPbString(portfolioInfo.getRateChange()) ) + .setLimBuy( convertToPbString(portfolioInfo.getLimBuy()) ) + .setLimSell( convertToPbString(portfolioInfo.getLimSell()) ) + .setLimNonMargin( convertToPbString(portfolioInfo.getLimNonMargin()) ) + .setLimBuyAsset( convertToPbString(portfolioInfo.getLimBuyAsset()) ) + .setValShortNet( convertToPbString(portfolioInfo.getValShortNet()) ) + .setValLongNet( convertToPbString(portfolioInfo.getValLongNet()) ) + .setTotalMoneyBal( convertToPbString(portfolioInfo.getTotalMoneyBal()) ) + .setTotalLockedMoney( convertToPbString(portfolioInfo.getTotalLockedMoney()) ) + .setHaircuts( convertToPbString(portfolioInfo.getHaircuts()) ) + .setAssetsWithoutHc( convertToPbString(portfolioInfo.getAssetsWithoutHc()) ) + .setStatusCoef( convertToPbString(portfolioInfo.getStatusCoef()) ) + .setVarmargin( convertToPbString(portfolioInfo.getVarMargin()) ) + .setGoForPositions( convertToPbString(portfolioInfo.getGoForPositions()) ) + .setGoForOrders( convertToPbString(portfolioInfo.getGoForOrders()) ) + .setRateFutures( convertToPbString(portfolioInfo.getRateFutures()) ) + .setIsQualClient( convertToPbString(portfolioInfo.getIsQualClient()) ) + .setIsFutures( convertToPbString(portfolioInfo.getIsFutures()) ) + .setCurrTag( convertToPbString(portfolioInfo.getCurrTag()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index a754a5a..fda9d03 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -107,6 +107,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, ClassInfo.class, ClassInfoPbSerde.INSTANCE); registerSerde(result, Depo.class, DepoPbSerde.INSTANCE); registerSerde(result, Money.class, MoneyPbSerde.INSTANCE); + registerSerde(result, PortfolioInfo.class, PortfolioInfoPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java new file mode 100644 index 0000000..b280d40 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java @@ -0,0 +1,148 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetPortfolioInfo; + +public class PortfolioInfoPbSerdeTest extends AbstractPbSerdeTest { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + + @Override + public @NotNull Class getTargetObjectClass() { + return PortfolioInfo.class; + } + + @NotNull + @Override + public GetPortfolioInfo.PortfolioInfo getTargetObjectAsPbMessage() { + return GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage(IS_LEVERAGE) + .setInAssets(IN_ASSETS) + .setLeverage(LEVERAGE) + .setOpenLimit(OPEN_LIMIT) + .setValShort(VAL_SHORT) + .setValLong(VAL_LONG) + .setValLongMargin(VAL_LONG_MARGIN) + .setValLongAsset(VAL_LONG_ASSET) + .setAssets(ASSETS) + .setCurLeverage(CUR_LEVERAGE) + .setMargin(MARGIN) + .setLimAll(LIM_ALL) + .setAvLimAll(AV_LIM_ALL) + .setLockedBuy(LOCKED_BUY) + .setLockedBuyMargin(LOCKED_BUY_MARGIN) + .setLockedBuyAsset(LOCKED_BUY_ASSET) + .setLockedSell(LOCKED_SELL) + .setLockedValueCoef(LOCKED_VALUE_COEF) + .setInAllAssets(IN_ALL_ASSETS) + .setAllAssets(ALL_ASSETS) + .setProfitLoss(PROFIT_LOSS) + .setRateChange(RATE_CHANGE) + .setLimBuy(LIM_BUY) + .setLimSell(LIM_SELL) + .setLimNonMargin(LIM_NON_MARGIN) + .setLimBuyAsset(LIM_BUY_ASSET) + .setValShortNet(VAL_SHORT_NET) + .setValLongNet(VAL_LONG_NET) + .setTotalMoneyBal(TOTAL_MONEY_BAL) + .setTotalLockedMoney(TOTAL_LOCKED_MONEY) + .setHaircuts(HAIRCUTS) + .setAssetsWithoutHc(ASSETS_WITHOUT_HC) + .setStatusCoef(STATUS_COEF) + .setVarmargin(VAR_MARGIN) + .setGoForPositions(GO_FOR_POSITIONS) + .setGoForOrders(GO_FOR_ORDERS) + .setRateFutures(RATE_FUTURES) + .setIsQualClient(IS_QUAL_CLIENT) + .setIsFutures(IS_FUTURES) + .setCurrTag(CURR_TAG) + .build(); + } + + @NotNull + @Override + public PortfolioInfo getTargetObject() { + return PortfolioInfo.builder() + .isLeverage(IS_LEVERAGE) + .inAssets(IN_ASSETS) + .leverage(LEVERAGE) + .openLimit(OPEN_LIMIT) + .valShort(VAL_SHORT) + .valLong(VAL_LONG) + .valLongMargin(VAL_LONG_MARGIN) + .valLongAsset(VAL_LONG_ASSET) + .assets(ASSETS) + .curLeverage(CUR_LEVERAGE) + .margin(MARGIN) + .limAll(LIM_ALL) + .avLimAll(AV_LIM_ALL) + .lockedBuy(LOCKED_BUY) + .lockedBuyMargin(LOCKED_BUY_MARGIN) + .lockedBuyAsset(LOCKED_BUY_ASSET) + .lockedSell(LOCKED_SELL) + .lockedValueCoef(LOCKED_VALUE_COEF) + .inAllAssets(IN_ALL_ASSETS) + .allAssets(ALL_ASSETS) + .profitLoss(PROFIT_LOSS) + .rateChange(RATE_CHANGE) + .limBuy(LIM_BUY) + .limSell(LIM_SELL) + .limNonMargin(LIM_NON_MARGIN) + .limBuyAsset(LIM_BUY_ASSET) + .valShortNet(VAL_SHORT_NET) + .valLongNet(VAL_LONG_NET) + .totalMoneyBal(TOTAL_MONEY_BAL) + .totalLockedMoney(TOTAL_LOCKED_MONEY) + .haircuts(HAIRCUTS) + .assetsWithoutHc(ASSETS_WITHOUT_HC) + .statusCoef(STATUS_COEF) + .varMargin(VAR_MARGIN) + .goForPositions(GO_FOR_POSITIONS) + .goForOrders(GO_FOR_ORDERS) + .rateFutures(RATE_FUTURES) + .isQualClient(IS_QUAL_CLIENT) + .isFutures(IS_FUTURES) + .currTag(CURR_TAG) + .build(); + } +} From b7604c4abd14f6b899cc1895aebb3b66739bdf03 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 16:22:32 +0300 Subject: [PATCH 299/549] Added a protobuf serde for GetPortfolioInfo. --- .../rpc/api/messages/GetPortfolioInfo.java | 11 +- .../GetPortfolioInfoRequestPbSerde.java | 59 ++++++ .../GetPortfolioInfoResultPbSerde.java | 47 +++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../serde/protobuf/ProtobufSerdeUtils.java | 13 ++ .../GetPortfolioInfoRequestPbSerdeTest.java | 40 ++++ .../GetPortfolioInfoResultPbSerdeTest.java | 185 ++++++++++++++++++ 7 files changed, 353 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java index 5254b16..cb3eaeb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java @@ -7,21 +7,23 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetPortfolioInfo { @Value public static class Request { - @NonNull String firmId; - @NonNull String clientCode; + String firmId; + String clientCode; @Builder - private Request(final String firmId, final String clientCode) { + private Request(@NonNull final String firmId, @NonNull final String clientCode) { this.firmId = firmId; this.clientCode = clientCode; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -37,10 +39,11 @@ public static class Result { PortfolioInfo portfolioInfo; @JsonCreator - public Result(final @JsonProperty(value = "portfolio_info", required = true) @NonNull PortfolioInfo portfolioInfo) { + public Result(@JsonProperty(value = "portfolio_info", required = true) @NonNull final PortfolioInfo portfolioInfo) { this.portfolioInfo = portfolioInfo; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java new file mode 100644 index 0000000..abfaa44 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetPortfolioInfoRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PORTFOLIO_INFO; + + @Override + public byte[] serialize(final GetPortfolioInfo.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetPortfolioInfo.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetPortfolioInfo.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetPortfolioInfo.Request convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfo.Request request) { + + return GetPortfolioInfo.Request.builder() + .firmId( request.getFirmId() ) + .clientCode( request.getClientCode() ) + .build(); + } + + @Override + public qlua.rpc.GetPortfolioInfo.Request convertToPb(@NotNull final GetPortfolioInfo.Request request) { + + return qlua.rpc.GetPortfolioInfo.Request.newBuilder() + .setFirmId( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java new file mode 100644 index 0000000..8731ce9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbPortfolioInfo; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbPortfolioInfo; + +enum GetPortfolioInfoResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetPortfolioInfo.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetPortfolioInfo.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetPortfolioInfo.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetPortfolioInfo.Result convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfo.Result result) { + + if (!result.hasPortfolioInfo()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfo.Result не содержит поля 'portfolioInfo'."); + } + + return new GetPortfolioInfo.Result( convertFromPbPortfolioInfo(result.getPortfolioInfo()) ); + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfo.Result convertToPb(@NotNull final GetPortfolioInfo.Result result) { + return qlua.rpc.GetPortfolioInfo.Result.newBuilder() + .setPortfolioInfo( convertToPbPortfolioInfo(result.getPortfolioInfo()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index fda9d03..b9af344 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -179,6 +179,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetParamEx.Result.class, GetParamExResultPbSerde.INSTANCE); registerSerde(result, GetParamEx2.Request.class, GetParamEx2RequestPbSerde.INSTANCE); registerSerde(result, GetParamEx2.Result.class, GetParamEx2ResultPbSerde.INSTANCE); + registerSerde(result, GetPortfolioInfo.Request.class, GetPortfolioInfoRequestPbSerde.INSTANCE); + registerSerde(result, GetPortfolioInfo.Result.class, GetPortfolioInfoResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index 281ade6..f90daf0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -52,6 +52,9 @@ final class ProtobufSerdeUtils { private static final PbConverter ORDER_PB_CONVERTER = OrderPbSerde.INSTANCE; + private static final PbConverter PORTFOLIO_INFO_PB_CONVERTER = + PortfolioInfoPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -187,6 +190,16 @@ static Order convertFromPbOrder(@NotNull final QluaStructures.Order order) { return ORDER_PB_CONVERTER.convertFromPb(order); } + @NotNull + static qlua.rpc.GetPortfolioInfo.PortfolioInfo convertToPbPortfolioInfo(@NotNull final PortfolioInfo portfolioInfo) { + return PORTFOLIO_INFO_PB_CONVERTER.convertToPb(portfolioInfo); + } + + @NotNull + static PortfolioInfo convertFromPbPortfolioInfo(@NotNull final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo) { + return PORTFOLIO_INFO_PB_CONVERTER.convertFromPb(portfolioInfo); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java new file mode 100644 index 0000000..3fa2a8e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.api.messages; + +import com.enfernuz.quik.lua.rpc.serde.protobuf.AbstractRequestPbSerdeTest; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetPortfolioInfoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_PORTFOLIO_INFO; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetPortfolioInfo.Request.newBuilder() + .setFirmId(FIRM_ID) + .setClientCode(CLIENT_CODE) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetPortfolioInfo.Request.class; + } + + @NotNull + @Override + public GetPortfolioInfo.Request getTargetObject() { + return GetPortfolioInfo.Request.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java new file mode 100644 index 0000000..b68325d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java @@ -0,0 +1,185 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetPortfolioInfoResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetPortfolioInfo.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfo.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .setInAssets(PortfolioInfoParameters.IN_ASSETS) + .setLeverage(PortfolioInfoParameters.LEVERAGE) + .setOpenLimit(PortfolioInfoParameters.OPEN_LIMIT) + .setValShort(PortfolioInfoParameters.VAL_SHORT) + .setValLong(PortfolioInfoParameters.VAL_LONG) + .setValLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .setValLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .setAssets(PortfolioInfoParameters.ASSETS) + .setCurLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .setMargin(PortfolioInfoParameters.MARGIN) + .setLimAll(PortfolioInfoParameters.LIM_ALL) + .setAvLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .setLockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .setLockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .setLockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .setLockedSell(PortfolioInfoParameters.LOCKED_SELL) + .setLockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .setInAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .setAllAssets(PortfolioInfoParameters.ALL_ASSETS) + .setProfitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .setRateChange(PortfolioInfoParameters.RATE_CHANGE) + .setLimBuy(PortfolioInfoParameters.LIM_BUY) + .setLimSell(PortfolioInfoParameters.LIM_SELL) + .setLimNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .setLimBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .setValShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .setValLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .setTotalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .setTotalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .setHaircuts(PortfolioInfoParameters.HAIRCUTS) + .setAssetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .setStatusCoef(PortfolioInfoParameters.STATUS_COEF) + .setVarmargin(PortfolioInfoParameters.VAR_MARGIN) + .setGoForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .setGoForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .setRateFutures(PortfolioInfoParameters.RATE_FUTURES) + .setIsQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .setIsFutures(PortfolioInfoParameters.IS_FUTURES) + .setCurrTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return qlua.rpc.GetPortfolioInfo.Result.newBuilder() + .setPortfolioInfo(portfolioInfo) + .build(); + } + + @NotNull + @Override + public GetPortfolioInfo.Result getTargetObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .inAssets(PortfolioInfoParameters.IN_ASSETS) + .leverage(PortfolioInfoParameters.LEVERAGE) + .openLimit(PortfolioInfoParameters.OPEN_LIMIT) + .valShort(PortfolioInfoParameters.VAL_SHORT) + .valLong(PortfolioInfoParameters.VAL_LONG) + .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .assets(PortfolioInfoParameters.ASSETS) + .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .margin(PortfolioInfoParameters.MARGIN) + .limAll(PortfolioInfoParameters.LIM_ALL) + .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .lockedSell(PortfolioInfoParameters.LOCKED_SELL) + .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .allAssets(PortfolioInfoParameters.ALL_ASSETS) + .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .rateChange(PortfolioInfoParameters.RATE_CHANGE) + .limBuy(PortfolioInfoParameters.LIM_BUY) + .limSell(PortfolioInfoParameters.LIM_SELL) + .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .haircuts(PortfolioInfoParameters.HAIRCUTS) + .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .statusCoef(PortfolioInfoParameters.STATUS_COEF) + .varMargin(PortfolioInfoParameters.VAR_MARGIN) + .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .rateFutures(PortfolioInfoParameters.RATE_FUTURES) + .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .isFutures(PortfolioInfoParameters.IS_FUTURES) + .currTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return new GetPortfolioInfo.Result(portfolioInfo); + } + + @Test + public void shouldFailOnUninitializedPbPortfolioInfo() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfo.Result не содержит поля 'portfolioInfo'.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetPortfolioInfo.Result.class, qlua.rpc.GetPortfolioInfo.Result.newBuilder().build().toByteArray()); + } + + private static final class PortfolioInfoParameters { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + } +} From 9ff13070fe597055f815a91ea8e74b8f702949b0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 18:46:46 +0300 Subject: [PATCH 300/549] Moved misplaced file. --- .../protobuf}/GetPortfolioInfoRequestPbSerdeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/test/java/com/enfernuz/quik/lua/rpc/{api/messages => serde/protobuf}/GetPortfolioInfoRequestPbSerdeTest.java (90%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java similarity index 90% rename from src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java index 3fa2a8e..2853105 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java @@ -1,6 +1,6 @@ -package com.enfernuz.quik.lua.rpc.api.messages; +package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.serde.protobuf.AbstractRequestPbSerdeTest; +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; import com.google.protobuf.MessageLite; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; From d97db223c29599c06570994f3e6039bf49035730 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 18:47:05 +0300 Subject: [PATCH 301/549] Added a protobuf serde for GetPortfolioInfoEx. --- .../rpc/api/messages/GetPortfolioInfoEx.java | 12 +- .../GetPortfolioInfoExRequestPbSerde.java | 61 ++++ .../GetPortfolioInfoExResultPbSerde.java | 102 +++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetPortfolioInfoExRequestPbSerdeTest.java | 43 +++ .../GetPortfolioInfoExResultPbSerdeTest.java | 279 ++++++++++++++++++ 6 files changed, 494 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java index 0ffabce..a9b1a43 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java @@ -6,6 +6,7 @@ import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -16,17 +17,18 @@ private GetPortfolioInfoEx() {} @Value public static class Request { - @NonNull String firmId; - @NonNull String clientCode; + String firmId; + String clientCode; int limitKind; @Builder - private Request(final String firmId, final String clientCode, final int limitKind) { + private Request(@NonNull final String firmId, @NonNull final String clientCode, final int limitKind) { this.firmId = firmId; this.clientCode = clientCode; this.limitKind = limitKind; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -40,7 +42,7 @@ public String toString() { @Value public static class Result { - @NonNull PortfolioInfo portfolioInfo; + PortfolioInfo portfolioInfo; String initMargin; String minMargin; String correctedMargin; @@ -69,7 +71,7 @@ public static class Result { @JsonCreator @Builder - private Result(final @JsonProperty(value = "portfolio_info", required = true) PortfolioInfo portfolioInfo, + private Result(final @JsonProperty(value = "portfolio_info", required = true) @NonNull PortfolioInfo portfolioInfo, final @JsonProperty(value = "init_margin") String initMargin, final @JsonProperty(value = "min_margin") String minMargin, final @JsonProperty(value = "corrected_margin") String correctedMargin, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java new file mode 100644 index 0000000..64c2906 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetPortfolioInfoExRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PORTFOLIO_INFO_EX; + + @Override + public byte[] serialize(final GetPortfolioInfoEx.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetPortfolioInfoEx.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetPortfolioInfoEx.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetPortfolioInfoEx.Request convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfoEx.Request request) { + + return GetPortfolioInfoEx.Request.builder() + .firmId( request.getFirmId() ) + .clientCode( request.getClientCode() ) + .limitKind( request.getLimitKind() ) + .build(); + } + + @Override + public qlua.rpc.GetPortfolioInfoEx.Request convertToPb(@NotNull final GetPortfolioInfoEx.Request request) { + + return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() + .setFirmId( request.getFirmId() ) + .setClientCode( request.getClientCode() ) + .setLimitKind( request.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java new file mode 100644 index 0000000..1b893a4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java @@ -0,0 +1,102 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; + +enum GetPortfolioInfoExResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetPortfolioInfoEx.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetPortfolioInfoEx.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetPortfolioInfoEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetPortfolioInfoEx.Result convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfoEx.Result result) { + + if (!result.hasPortfolioInfoEx()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfoEx'."); + } + + final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = result.getPortfolioInfoEx(); + if (!portfolioInfoEx.hasPortfolioInfo()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfo' в поле 'portfolioInfoEx'."); + } + + return GetPortfolioInfoEx.Result.builder() + .portfolioInfo( convertFromPbPortfolioInfo(portfolioInfoEx.getPortfolioInfo()) ) + .initMargin( convertFromPbString(portfolioInfoEx.getInitMargin()) ) + .minMargin( convertFromPbString(portfolioInfoEx.getMinMargin()) ) + .correctedMargin( convertFromPbString(portfolioInfoEx.getCorrectedMargin()) ) + .clientType( convertFromPbString(portfolioInfoEx.getClientType()) ) + .portfolioValue( convertFromPbString(portfolioInfoEx.getPortfolioValue()) ) + .startLimitOpenPos( convertFromPbString(portfolioInfoEx.getStartLimitOpenPos()) ) + .totalLimitOpenPos( convertFromPbString(portfolioInfoEx.getTotalLimitOpenPos()) ) + .limitOpenPos( convertFromPbString(portfolioInfoEx.getLimitOpenPos()) ) + .usedLimOpenPos( convertFromPbString(portfolioInfoEx.getUsedLimOpenPos()) ) + .accVarMargin( convertFromPbString(portfolioInfoEx.getAccVarMargin()) ) + .clVarMargin( convertFromPbString(portfolioInfoEx.getClVarMargin()) ) + .optLiquidCost( convertFromPbString(portfolioInfoEx.getOptLiquidCost()) ) + .futAsset( convertFromPbString(portfolioInfoEx.getFutAsset()) ) + .futTotalAsset( convertFromPbString(portfolioInfoEx.getFutTotalAsset()) ) + .futDebt( convertFromPbString(portfolioInfoEx.getFutDebt()) ) + .futRateAsset( convertFromPbString(portfolioInfoEx.getFutRateAsset()) ) + .futRateAssetOpen( convertFromPbString(portfolioInfoEx.getFutRateAssetOpen()) ) + .futRateGo( convertFromPbString(portfolioInfoEx.getFutRateGo()) ) + .planedRateGo( convertFromPbString(portfolioInfoEx.getPlanedRateGo()) ) + .cashLeverage( convertFromPbString(portfolioInfoEx.getCashLeverage()) ) + .futPositionType( convertFromPbString(portfolioInfoEx.getFutPositionType()) ) + .futAccruedInt( convertFromPbString(portfolioInfoEx.getFutAccuredInt()) ) + .build(); + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfoEx.Result convertToPb(@NotNull final GetPortfolioInfoEx.Result result) { + + final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder() + .setPortfolioInfo( convertToPbPortfolioInfo(result.getPortfolioInfo()) ) + .setInitMargin( convertToPbString(result.getInitMargin()) ) + .setMinMargin( convertToPbString(result.getMinMargin()) ) + .setCorrectedMargin( convertToPbString(result.getCorrectedMargin()) ) + .setClientType( convertToPbString(result.getClientType()) ) + .setPortfolioValue( convertToPbString(result.getPortfolioValue()) ) + .setStartLimitOpenPos( convertToPbString(result.getStartLimitOpenPos()) ) + .setTotalLimitOpenPos( convertToPbString(result.getTotalLimitOpenPos()) ) + .setLimitOpenPos( convertToPbString(result.getLimitOpenPos()) ) + .setUsedLimOpenPos( convertToPbString(result.getUsedLimOpenPos()) ) + .setAccVarMargin( convertToPbString(result.getAccVarMargin()) ) + .setClVarMargin( convertToPbString(result.getClVarMargin()) ) + .setOptLiquidCost( convertToPbString(result.getOptLiquidCost()) ) + .setFutAsset( convertToPbString(result.getFutAsset()) ) + .setFutTotalAsset( convertToPbString(result.getFutTotalAsset()) ) + .setFutDebt( convertToPbString(result.getFutDebt()) ) + .setFutRateAsset( convertToPbString(result.getFutRateAsset()) ) + .setFutRateAssetOpen( convertToPbString(result.getFutRateAssetOpen()) ) + .setFutRateGo( convertToPbString(result.getFutRateGo()) ) + .setPlanedRateGo( convertToPbString(result.getPlanedRateGo()) ) + .setCashLeverage( convertToPbString(result.getCashLeverage()) ) + .setFutPositionType( convertToPbString(result.getFutPositionType()) ) + .setFutAccuredInt( convertToPbString(result.getFutAccruedInt()) ) + .build(); + + return qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() + .setPortfolioInfoEx(portfolioInfoEx) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index b9af344..af1362d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -181,6 +181,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetParamEx2.Result.class, GetParamEx2ResultPbSerde.INSTANCE); registerSerde(result, GetPortfolioInfo.Request.class, GetPortfolioInfoRequestPbSerde.INSTANCE); registerSerde(result, GetPortfolioInfo.Result.class, GetPortfolioInfoResultPbSerde.INSTANCE); + registerSerde(result, GetPortfolioInfoEx.Request.class, GetPortfolioInfoExRequestPbSerde.INSTANCE); + registerSerde(result, GetPortfolioInfoEx.Result.class, GetPortfolioInfoExResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java new file mode 100644 index 0000000..f9cf3d6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetPortfolioInfoExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final int LIMIT_KIND = 3; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_PORTFOLIO_INFO_EX; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() + .setFirmId(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setLimitKind(LIMIT_KIND) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetPortfolioInfoEx.Request.class; + } + + @NotNull + @Override + public GetPortfolioInfoEx.Request getTargetObject() { + return GetPortfolioInfoEx.Request.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .limitKind(LIMIT_KIND) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java new file mode 100644 index 0000000..0131dd0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java @@ -0,0 +1,279 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetPortfolioInfoExResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetPortfolioInfoEx.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfoEx.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .setInAssets(PortfolioInfoParameters.IN_ASSETS) + .setLeverage(PortfolioInfoParameters.LEVERAGE) + .setOpenLimit(PortfolioInfoParameters.OPEN_LIMIT) + .setValShort(PortfolioInfoParameters.VAL_SHORT) + .setValLong(PortfolioInfoParameters.VAL_LONG) + .setValLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .setValLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .setAssets(PortfolioInfoParameters.ASSETS) + .setCurLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .setMargin(PortfolioInfoParameters.MARGIN) + .setLimAll(PortfolioInfoParameters.LIM_ALL) + .setAvLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .setLockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .setLockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .setLockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .setLockedSell(PortfolioInfoParameters.LOCKED_SELL) + .setLockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .setInAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .setAllAssets(PortfolioInfoParameters.ALL_ASSETS) + .setProfitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .setRateChange(PortfolioInfoParameters.RATE_CHANGE) + .setLimBuy(PortfolioInfoParameters.LIM_BUY) + .setLimSell(PortfolioInfoParameters.LIM_SELL) + .setLimNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .setLimBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .setValShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .setValLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .setTotalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .setTotalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .setHaircuts(PortfolioInfoParameters.HAIRCUTS) + .setAssetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .setStatusCoef(PortfolioInfoParameters.STATUS_COEF) + .setVarmargin(PortfolioInfoParameters.VAR_MARGIN) + .setGoForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .setGoForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .setRateFutures(PortfolioInfoParameters.RATE_FUTURES) + .setIsQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .setIsFutures(PortfolioInfoParameters.IS_FUTURES) + .setCurrTag(PortfolioInfoParameters.CURR_TAG) + .build(); + final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder() + .setPortfolioInfo(portfolioInfo) + .setInitMargin(PortfolioInfoExParameters.INIT_MARGIN) + .setMinMargin(PortfolioInfoExParameters.MIN_MARGIN) + .setCorrectedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) + .setClientType(PortfolioInfoExParameters.CLIENT_TYPE) + .setPortfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) + .setStartLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) + .setTotalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) + .setLimitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) + .setUsedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) + .setAccVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) + .setClVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) + .setOptLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) + .setFutAsset(PortfolioInfoExParameters.FUT_ASSET) + .setFutTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) + .setFutDebt(PortfolioInfoExParameters.FUT_DEBT) + .setFutRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) + .setFutRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) + .setFutRateGo(PortfolioInfoExParameters.FUT_RATE_GO) + .setPlanedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) + .setCashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) + .setFutPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) + .setFutAccuredInt(PortfolioInfoExParameters.FUT_ACCURED_INT) + .build(); + + return qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() + .setPortfolioInfoEx(portfolioInfoEx) + .build(); + } + + @NotNull + @Override + public GetPortfolioInfoEx.Result getTargetObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .inAssets(PortfolioInfoParameters.IN_ASSETS) + .leverage(PortfolioInfoParameters.LEVERAGE) + .openLimit(PortfolioInfoParameters.OPEN_LIMIT) + .valShort(PortfolioInfoParameters.VAL_SHORT) + .valLong(PortfolioInfoParameters.VAL_LONG) + .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .assets(PortfolioInfoParameters.ASSETS) + .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .margin(PortfolioInfoParameters.MARGIN) + .limAll(PortfolioInfoParameters.LIM_ALL) + .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .lockedSell(PortfolioInfoParameters.LOCKED_SELL) + .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .allAssets(PortfolioInfoParameters.ALL_ASSETS) + .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .rateChange(PortfolioInfoParameters.RATE_CHANGE) + .limBuy(PortfolioInfoParameters.LIM_BUY) + .limSell(PortfolioInfoParameters.LIM_SELL) + .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .haircuts(PortfolioInfoParameters.HAIRCUTS) + .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .statusCoef(PortfolioInfoParameters.STATUS_COEF) + .varMargin(PortfolioInfoParameters.VAR_MARGIN) + .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .rateFutures(PortfolioInfoParameters.RATE_FUTURES) + .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .isFutures(PortfolioInfoParameters.IS_FUTURES) + .currTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return GetPortfolioInfoEx.Result.builder() + .portfolioInfo(portfolioInfo) + .initMargin(PortfolioInfoExParameters.INIT_MARGIN) + .minMargin(PortfolioInfoExParameters.MIN_MARGIN) + .correctedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) + .clientType(PortfolioInfoExParameters.CLIENT_TYPE) + .portfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) + .startLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) + .totalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) + .limitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) + .usedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) + .accVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) + .clVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) + .optLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) + .futAsset(PortfolioInfoExParameters.FUT_ASSET) + .futTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) + .futDebt(PortfolioInfoExParameters.FUT_DEBT) + .futRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) + .futRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) + .futRateGo(PortfolioInfoExParameters.FUT_RATE_GO) + .planedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) + .cashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) + .futPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) + .futAccruedInt(PortfolioInfoExParameters.FUT_ACCURED_INT) + .build(); + } + + @Test + public void shouldFailOnUninitializedPbPortfolioInfoEx() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfoEx'.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetPortfolioInfoEx.Result.class, qlua.rpc.GetPortfolioInfoEx.Result.newBuilder().build().toByteArray()); + } + + @Test + public void shouldFailOnUninitializedPbPortfolioInfo() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfo' в поле 'portfolioInfoEx'.")) + ) + ); + + final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder().build(); + final qlua.rpc.GetPortfolioInfoEx.Result pbResult = qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() + .setPortfolioInfoEx(portfolioInfoEx) + .build(); + + getSerdeModuleUnderTest().deserialize(GetPortfolioInfoEx.Result.class, pbResult.toByteArray()); + } + + private static final class PortfolioInfoParameters { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + } + + private static final class PortfolioInfoExParameters { + + private static final String INIT_MARGIN = "2"; + private static final String MIN_MARGIN = "3"; + private static final String CORRECTED_MARGIN = "4"; + private static final String CLIENT_TYPE = "5"; + private static final String PORTFOLIO_VALUE = "6"; + private static final String START_LIMIT_OPEN_POS = "7"; + private static final String TOTAL_LIMIT_OPEN_POS = "8"; + private static final String LIMIT_OPEN_POS = "9"; + private static final String USED_LIM_OPEN_POS = "10"; + private static final String ACC_VAR_MARGIN = "11"; + private static final String CL_VAR_MARGIN = "12"; + private static final String OPT_LIQUID_COST = "13"; + private static final String FUT_ASSET = "14"; + private static final String FUT_TOTAL_ASSET = "15"; + private static final String FUT_DEBT = "16"; + private static final String FUT_RATE_ASSET = "17"; + private static final String FUT_RATE_ASSET_OPEN = "18"; + private static final String FUT_RATE_GO = "19"; + private static final String PLANED_RATE_GO = "20"; + private static final String CASH_LEVERAGE = "21"; + private static final String FUT_POSITION_TYPE = "22"; + private static final String FUT_ACCURED_INT = "23"; + } +} From e3ff718234a0eb6a6679ac69e22242fa977205dc Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 19:27:37 +0300 Subject: [PATCH 302/549] Added a protobuf serde for GetQuoteLevel2. --- .../lua/rpc/api/messages/GetQuoteLevel2.java | 52 ++++++++------ .../GetQuoteLevel2RequestPbSerde.java | 59 ++++++++++++++++ .../protobuf/GetQuoteLevel2ResultPbSerde.java | 69 +++++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 3 + .../serde/protobuf/ProtobufSerdeUtils.java | 14 ++++ .../rpc/serde/protobuf/QuoteEntryPbSerde.java | 42 +++++++++++ .../GetQuoteLevel2RequestPbSerdeTest.java | 40 +++++++++++ .../GetQuoteLevel2ResultPbSerdeTest.java | 65 +++++++++++++++++ .../serde/protobuf/QuoteEntryPbSerdeTest.java | 33 +++++++++ 9 files changed, 356 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java index d932da2..e218cf3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Objects; @@ -17,8 +18,11 @@ private GetQuoteLevel2() {} @Value public static class QuoteEntry { - @NonNull String price; - @NonNull String quantity; + private static final String PRICE_FIELD = "price"; + private static final String QUANTITY_FIELD = "quantity"; + + String price; + String quantity; private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @@ -26,8 +30,8 @@ public static class QuoteEntry { @Builder @JsonCreator private QuoteEntry( - final @JsonProperty(value = "price", required = true) String price, - final @JsonProperty(value = "quantity", required = true) String quantity) { + @JsonProperty(value = PRICE_FIELD, required = true) @NonNull final String price, + @JsonProperty(value = QUANTITY_FIELD, required = true) @NonNull final String quantity) { this.price = price; this.quantity = quantity; @@ -62,8 +66,8 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("price", price) - .add("quantity", quantity) + .add(PRICE_FIELD, price) + .add(QUANTITY_FIELD, quantity) .toString(); } @@ -74,15 +78,16 @@ public String toString() { @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; + String classCode; + String secCode; @Builder - private Request(final String classCode, final String secCode) { + private Request(@NonNull final String classCode, @NonNull final String secCode) { this.classCode = classCode; this.secCode = secCode; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -95,10 +100,15 @@ public String toString() { @Value public static class Result { - @NonNull String bidCount; - @NonNull String offerCount; - @NonNull List bids; - @NonNull List offers; + private static final String BID_COUNT_FIELD = "bid_count"; + private static final String OFFER_COUNT_FIELD = "offer_count"; + private static final String BIDS_FIELD = "bids"; + private static final String OFFERS_FIELD = "offers"; + + String bidCount; + String offerCount; + List bids; + List offers; private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; private @NonFinal @Getter(AccessLevel.NONE) transient String asString; @@ -106,10 +116,10 @@ public static class Result { @Builder @JsonCreator private Result( - final @JsonProperty(value = "bid_count", required = true) String bidCount, - final @JsonProperty(value = "offer_count", required = true) String offerCount, - final @JsonProperty(value = "bids", required = true) Iterable bids, - final @JsonProperty(value = "offers", required = true) Iterable offers) { + @JsonProperty(value = BID_COUNT_FIELD, required = true) @NonNull final String bidCount, + @JsonProperty(value = OFFER_COUNT_FIELD, required = true) @NonNull final String offerCount, + @JsonProperty(value = BIDS_FIELD, required = true) @NonNull final Iterable bids, + @JsonProperty(value = OFFERS_FIELD, required = true) @NonNull final Iterable offers) { this.bidCount = bidCount; this.offerCount = offerCount; @@ -148,10 +158,10 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("bid_count", bidCount) - .add("offer_count", offerCount) - .add("bids", bids) - .add("offers", offers) + .add(BID_COUNT_FIELD, bidCount) + .add(OFFER_COUNT_FIELD, offerCount) + .add(BIDS_FIELD, bids) + .add(OFFERS_FIELD, offers) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java new file mode 100644 index 0000000..fab2f86 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetQuoteLevel2RequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_QUOTE_LEVEL2; + + @Override + public byte[] serialize(final GetQuoteLevel2.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetQuoteLevel2.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetQuoteLevel2.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetQuoteLevel2.Request convertFromPb(@NotNull final qlua.rpc.GetQuoteLevel2.Request request) { + + return GetQuoteLevel2.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .build(); + } + + @Override + public qlua.rpc.GetQuoteLevel2.Request convertToPb(@NotNull final GetQuoteLevel2.Request request) { + + return qlua.rpc.GetQuoteLevel2.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java new file mode 100644 index 0000000..e3b8a19 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.common.collect.ImmutableList; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbQuoteEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbQuoteEntry; + +enum GetQuoteLevel2ResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetQuoteLevel2.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetQuoteLevel2.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetQuoteLevel2.Result.parseFrom(data) ); + } + + @Override + public GetQuoteLevel2.Result convertFromPb(@NotNull final qlua.rpc.GetQuoteLevel2.Result result) { + + final ImmutableList.Builder bids = ImmutableList.builder(); + for (final qlua.rpc.GetQuoteLevel2.QuoteEntry bid : result.getBidsList()) { + bids.add( convertFromPbQuoteEntry(bid) ); + } + + final ImmutableList.Builder offers = ImmutableList.builder(); + for (final qlua.rpc.GetQuoteLevel2.QuoteEntry offer : result.getOffersList()) { + offers.add( convertFromPbQuoteEntry(offer) ); + } + + return GetQuoteLevel2.Result.builder() + .bidCount( result.getBidCount() ) + .offerCount( result.getOfferCount() ) + .bids( bids.build() ) + .offers( offers.build() ) + .build(); + } + + @Override + public qlua.rpc.GetQuoteLevel2.Result convertToPb(@NotNull final GetQuoteLevel2.Result result) { + + final qlua.rpc.GetQuoteLevel2.Result.Builder pbResult = qlua.rpc.GetQuoteLevel2.Result.newBuilder(); + + for (final GetQuoteLevel2.QuoteEntry bid : result.getBids()) { + pbResult.addBids( convertToPbQuoteEntry(bid) ); + } + + for (final GetQuoteLevel2.QuoteEntry offer : result.getOffers()) { + pbResult.addOffers( convertToPbQuoteEntry(offer) ); + } + + return pbResult + .setBidCount( result.getBidCount() ) + .setOfferCount( result.getOfferCount() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index af1362d..59199b2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -183,6 +183,9 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetPortfolioInfo.Result.class, GetPortfolioInfoResultPbSerde.INSTANCE); registerSerde(result, GetPortfolioInfoEx.Request.class, GetPortfolioInfoExRequestPbSerde.INSTANCE); registerSerde(result, GetPortfolioInfoEx.Result.class, GetPortfolioInfoExResultPbSerde.INSTANCE); + registerSerde(result, GetQuoteLevel2.QuoteEntry.class, QuoteEntryPbSerde.INSTANCE); + registerSerde(result, GetQuoteLevel2.Request.class, GetQuoteLevel2RequestPbSerde.INSTANCE); + registerSerde(result, GetQuoteLevel2.Result.class, GetQuoteLevel2ResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index f90daf0..e7d0f24 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.SerdeException; @@ -55,6 +56,9 @@ final class ProtobufSerdeUtils { private static final PbConverter PORTFOLIO_INFO_PB_CONVERTER = PortfolioInfoPbSerde.INSTANCE; + private static final PbConverter QUOTE_ENTRY_PB_CONVERTER = + QuoteEntryPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -200,6 +204,16 @@ static PortfolioInfo convertFromPbPortfolioInfo(@NotNull final qlua.rpc.GetPortf return PORTFOLIO_INFO_PB_CONVERTER.convertFromPb(portfolioInfo); } + @NotNull + static qlua.rpc.GetQuoteLevel2.QuoteEntry convertToPbQuoteEntry(@NotNull final GetQuoteLevel2.QuoteEntry quoteEntry) { + return QUOTE_ENTRY_PB_CONVERTER.convertToPb(quoteEntry); + } + + @NotNull + static GetQuoteLevel2.QuoteEntry convertFromPbQuoteEntry(@NotNull final qlua.rpc.GetQuoteLevel2.QuoteEntry quoteEntry) { + return QUOTE_ENTRY_PB_CONVERTER.convertFromPb(quoteEntry); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java new file mode 100644 index 0000000..d02b646 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2.QuoteEntry; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum QuoteEntryPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final QuoteEntry quoteEntry) { + return convertToPb(quoteEntry).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public QuoteEntry deserialize(final byte[] data) { + return convertFromPb(qlua.rpc.GetQuoteLevel2.QuoteEntry.parseFrom(data)); + } + + @Override + public QuoteEntry convertFromPb(@NotNull qlua.rpc.GetQuoteLevel2.QuoteEntry quoteEntry) { + + return QuoteEntry.builder() + .price( quoteEntry.getPrice() ) + .quantity( quoteEntry.getQuantity() ) + .build(); + } + + @Override + public qlua.rpc.GetQuoteLevel2.QuoteEntry convertToPb(@NotNull final QuoteEntry quoteEntry) { + + return qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder() + .setPrice( quoteEntry.getPrice() ) + .setQuantity( quoteEntry.getQuantity() ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java new file mode 100644 index 0000000..9750dd6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetQuoteLevel2RequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_QUOTE_LEVEL2; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetQuoteLevel2.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetQuoteLevel2.Request.class; + } + + @NotNull + @Override + public GetQuoteLevel2.Request getTargetObject() { + return GetQuoteLevel2.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java new file mode 100644 index 0000000..e0bd3e4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.google.common.collect.ImmutableList; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class GetQuoteLevel2ResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Override + public @NotNull Class getTargetObjectClass() { + return GetQuoteLevel2.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetQuoteLevel2.Result getTargetObjectAsPbMessage() { + + final List bids = ImmutableList.of( + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("1").setQuantity("100").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("2").setQuantity("200").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("3").setQuantity("300").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("4").setQuantity("400").build() + ); + + final List offers = ImmutableList.of( + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("5").setQuantity("500").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("6").setQuantity("600").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("7").setQuantity("700").build() + ); + + return qlua.rpc.GetQuoteLevel2.Result.newBuilder() + .addAllBids(bids) + .addAllOffers(offers) + .setBidCount("4") + .setOfferCount("3") + .build(); + } + + @NotNull + @Override + public GetQuoteLevel2.Result getTargetObject() { + + final List bids = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("1").quantity("100").build(), + GetQuoteLevel2.QuoteEntry.builder().price("2").quantity("200").build(), + GetQuoteLevel2.QuoteEntry.builder().price("3").quantity("300").build(), + GetQuoteLevel2.QuoteEntry.builder().price("4").quantity("400").build() + ); + + final List offers = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("5").quantity("500").build(), + GetQuoteLevel2.QuoteEntry.builder().price("6").quantity("600").build(), + GetQuoteLevel2.QuoteEntry.builder().price("7").quantity("700").build() + ); + + return GetQuoteLevel2.Result.builder() + .bids(bids) + .offers(offers) + .bidCount("4") + .offerCount("3") + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java new file mode 100644 index 0000000..2c540f5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import org.jetbrains.annotations.NotNull; + +public class QuoteEntryPbSerdeTest extends AbstractPbSerdeTest { + + private static final String PRICE = "1"; + private static final String QUANTITY = "2"; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetQuoteLevel2.QuoteEntry.class; + } + + @NotNull + @Override + public qlua.rpc.GetQuoteLevel2.QuoteEntry getTargetObjectAsPbMessage() { + return qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder() + .setPrice(PRICE) + .setQuantity(QUANTITY) + .build(); + } + + @NotNull + @Override + public GetQuoteLevel2.QuoteEntry getTargetObject() { + return GetQuoteLevel2.QuoteEntry.builder() + .price(PRICE) + .quantity(QUANTITY) + .build(); + } +} From e544100503ae11b0ae06a23c02c66ed42b444f7d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 20:49:00 +0300 Subject: [PATCH 303/549] Added a protobuf serde for GetScriptPath. --- .../lua/rpc/api/messages/GetScriptPath.java | 6 ++- .../protobuf/GetScriptPathRequestPbSerde.java | 42 +++++++++++++++++++ .../protobuf/GetScriptPathResultPbSerde.java | 37 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetScriptPathRequestPbSerdeTest.java | 31 ++++++++++++++ .../GetScriptPathResultPbSerdeTest.java | 28 +++++++++++++ 6 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java index 3705850..63178a9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java @@ -4,6 +4,7 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetScriptPath { @@ -14,12 +15,13 @@ public static enum Request { INSTANCE; } @Value public static class Result { - @NonNull String scriptPath; + String scriptPath; - public Result(final @JsonProperty(value = "script_path", required = true) String scriptPath) { + public Result(@JsonProperty(value = "script_path", required = true) @NonNull final String scriptPath) { this.scriptPath = scriptPath; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java new file mode 100644 index 0000000..a139053 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetScriptPathRequestPbSerde implements Serde { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_SCRIPT_PATH; + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final GetScriptPath.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetScriptPath.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return GetScriptPath.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java new file mode 100644 index 0000000..dac6b75 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetScriptPathResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetScriptPath.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetScriptPath.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetScriptPath.Result.parseFrom(data) ); + } + + @Override + public GetScriptPath.Result convertFromPb(@NotNull final qlua.rpc.GetScriptPath.Result result) { + return new GetScriptPath.Result( result.getScriptPath() ); + } + + @Override + public qlua.rpc.GetScriptPath.Result convertToPb(@NotNull final GetScriptPath.Result result) { + return qlua.rpc.GetScriptPath.Result.newBuilder() + .setScriptPath( result.getScriptPath() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 59199b2..660ae50 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -186,6 +186,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetQuoteLevel2.QuoteEntry.class, QuoteEntryPbSerde.INSTANCE); registerSerde(result, GetQuoteLevel2.Request.class, GetQuoteLevel2RequestPbSerde.INSTANCE); registerSerde(result, GetQuoteLevel2.Result.class, GetQuoteLevel2ResultPbSerde.INSTANCE); + registerSerde(result, GetScriptPath.Request.class, GetScriptPathRequestPbSerde.INSTANCE); + registerSerde(result, GetScriptPath.Result.class, GetScriptPathResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java new file mode 100644 index 0000000..f1dac73 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetScriptPathRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_SCRIPT_PATH; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return null; + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetScriptPath.Request.class; + } + + @NotNull + @Override + public GetScriptPath.Request getTargetObject() { + return GetScriptPath.Request.INSTANCE; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java new file mode 100644 index 0000000..5298357 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import org.jetbrains.annotations.NotNull; + +public class GetScriptPathResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String SCRIPT_PATH = "1"; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetScriptPath.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetScriptPath.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetScriptPath.Result.newBuilder() + .setScriptPath(SCRIPT_PATH) + .build(); + } + + @NotNull + @Override + public GetScriptPath.Result getTargetObject() { + return new GetScriptPath.Result(SCRIPT_PATH); + } +} From b00f73386feb24f972aa1580824b7508b91dfc8d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 21:15:28 +0300 Subject: [PATCH 304/549] Added a protobuf serde for Security. --- .../quik/lua/rpc/api/structures/Security.java | 61 ++++++++----- .../serde/protobuf/ProtobufSerdeModule.java | 1 + .../serde/protobuf/ProtobufSerdeUtils.java | 12 +++ .../rpc/serde/protobuf/SecurityPbSerde.java | 66 ++++++++++++++ .../serde/protobuf/SecurityPbSerdeTest.java | 89 +++++++++++++++++++ 5 files changed, 205 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java index 8dce22f..79d0b35 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java @@ -14,6 +14,19 @@ @Value public class Security { + private static final String CODE_FIELD = "code"; + private static final String NAME_FIELD = "name"; + private static final String SHORT_NAME_FIELD = "short_name"; + private static final String CLASS_CODE_FIELD = "class_code_field"; + private static final String CLASS_NAME_FIELD = "class_name_field"; + private static final String FACE_VALUE_FIELD = "face_value"; + private static final String FACE_UNIT_FIELD = "face_unit"; + private static final String SCALE_FIELD = "scale"; + private static final String MAT_DATE_FIELD = "mat_date"; + private static final String LOT_SIZE_FIELD = "lot_size"; + private static final String ISIN_CODE_FIELD = "isin_code"; + private static final String MIN_PRICE_STEP_FIELD = "min_price_step"; + String code; String name; String shortName; @@ -33,18 +46,18 @@ public class Security { @Builder @JsonCreator private Security( - final @JsonProperty("code") String code, - final @JsonProperty("name") String name, - final @JsonProperty("short_name") String shortName, - final @JsonProperty("class_code") String classCode, - final @JsonProperty("class_name") String className, - final @JsonProperty("face_value") String faceValue, - final @JsonProperty("face_unit") String faceUnit, - final @JsonProperty("scale") String scale, - final @JsonProperty("mat_date") String matDate, - final @JsonProperty("lot_size") String lotSize, - final @JsonProperty("isin_code") String isinCode, - final @JsonProperty("min_price_step") String minPriceStep) { + @JsonProperty(CODE_FIELD) final String code, + @JsonProperty(NAME_FIELD) final String name, + @JsonProperty(SHORT_NAME_FIELD) final String shortName, + @JsonProperty(CLASS_CODE_FIELD) final String classCode, + @JsonProperty(CLASS_NAME_FIELD) final String className, + @JsonProperty(FACE_VALUE_FIELD) final String faceValue, + @JsonProperty(FACE_UNIT_FIELD) final String faceUnit, + @JsonProperty(SCALE_FIELD) final String scale, + @JsonProperty(MAT_DATE_FIELD) final String matDate, + @JsonProperty(LOT_SIZE_FIELD) final String lotSize, + @JsonProperty(ISIN_CODE_FIELD) final String isinCode, + @JsonProperty(MIN_PRICE_STEP_FIELD) final String minPriceStep) { this.code = code; this.name = name; @@ -112,18 +125,18 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("code", code) - .add("name", name) - .add("short_name", shortName) - .add("class_code", classCode) - .add("class_name", className) - .add("face_value", faceValue) - .add("face_unit", faceUnit) - .add("scale", scale) - .add("mat_date", matDate) - .add("lot_size", lotSize) - .add("isin_code", isinCode) - .add("min_price_step", minPriceStep) + .add(CODE_FIELD, code) + .add(NAME_FIELD, name) + .add(SHORT_NAME_FIELD, shortName) + .add(CLASS_CODE_FIELD, classCode) + .add(CLASS_NAME_FIELD, className) + .add(FACE_VALUE_FIELD, faceValue) + .add(FACE_UNIT_FIELD, faceUnit) + .add(SCALE_FIELD, scale) + .add(MAT_DATE_FIELD, matDate) + .add(LOT_SIZE_FIELD, lotSize) + .add(ISIN_CODE_FIELD, isinCode) + .add(MIN_PRICE_STEP_FIELD, minPriceStep) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 660ae50..360c1ab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -108,6 +108,7 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, Depo.class, DepoPbSerde.INSTANCE); registerSerde(result, Money.class, MoneyPbSerde.INSTANCE); registerSerde(result, PortfolioInfo.class, PortfolioInfoPbSerde.INSTANCE); + registerSerde(result, Security.class, SecurityPbSerde.INSTANCE); registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index e7d0f24..f8c82f7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -59,6 +59,8 @@ final class ProtobufSerdeUtils { private static final PbConverter QUOTE_ENTRY_PB_CONVERTER = QuoteEntryPbSerde.INSTANCE; + private static final PbConverter SECURITY_PB_CONVERTER = SecurityPbSerde.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -214,6 +216,16 @@ static GetQuoteLevel2.QuoteEntry convertFromPbQuoteEntry(@NotNull final qlua.rpc return QUOTE_ENTRY_PB_CONVERTER.convertFromPb(quoteEntry); } + @NotNull + static QluaStructures.Security convertToPbSecurity(@NotNull final Security security) { + return SECURITY_PB_CONVERTER.convertToPb(security); + } + + @NotNull + static Security convertFromPbSecurity(@NotNull final QluaStructures.Security security) { + return SECURITY_PB_CONVERTER.convertFromPb(security); + } + static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { if (actual != expected) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java new file mode 100644 index 0000000..954186e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java @@ -0,0 +1,66 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum SecurityPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Security security) { + return convertToPb(security).toByteArray(); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Security deserialize(final byte[] data) { + return convertFromPb(QluaStructures.Security.parseFrom(data)); + } + + @Override + public Security convertFromPb(@NotNull QluaStructures.Security security) { + + return Security.builder() + .code( convertFromPbString(security.getCode()) ) + .name( convertFromPbString(security.getName()) ) + .shortName( convertFromPbString(security.getShortName()) ) + .classCode( convertFromPbString(security.getClassCode()) ) + .className( convertFromPbString(security.getClassName()) ) + .faceValue( convertFromPbString(security.getFaceValue()) ) + .faceUnit( convertFromPbString(security.getFaceUnit()) ) + .scale( convertFromPbString(security.getScale()) ) + .matDate( convertFromPbString(security.getMatDate()) ) + .lotSize( convertFromPbString(security.getLotSize()) ) + .isinCode( convertFromPbString(security.getIsinCode()) ) + .minPriceStep( convertFromPbString(security.getMinPriceStep()) ) + .build(); + } + + @Override + public QluaStructures.Security convertToPb(@NotNull final Security security) { + + return QluaStructures.Security.newBuilder() + .setCode( convertToPbString(security.getCode()) ) + .setName( convertToPbString(security.getName()) ) + .setShortName( convertToPbString(security.getShortName()) ) + .setClassCode( convertToPbString(security.getClassCode()) ) + .setClassName( convertToPbString(security.getClassName()) ) + .setFaceValue( convertToPbString(security.getFaceValue()) ) + .setFaceUnit( convertToPbString(security.getFaceUnit()) ) + .setScale( convertToPbString(security.getScale()) ) + .setMatDate( convertToPbString(security.getMatDate()) ) + .setLotSize( convertToPbString(security.getLotSize()) ) + .setIsinCode( convertToPbString(security.getIsinCode()) ) + .setMinPriceStep( convertToPbString(security.getMinPriceStep()) ) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java new file mode 100644 index 0000000..a7e3d92 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java @@ -0,0 +1,89 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; +import qlua.structs.QluaStructures; + +public class SecurityPbSerdeTest extends AbstractPbSerdeTest { + + private static final String CODE = "1"; + private static final String NAME = "2"; + private static final String SHORT_NAME = "3"; + private static final String CLASS_CODE = "4"; + private static final String CLASS_NAME = "5"; + private static final String FACE_VALUE = "6"; + private static final String FACE_UNIT = "7"; + private static final String SCALE = "8"; + private static final String MAT_DATE = "9"; + private static final String LOT_SIZE = "10"; + private static final String ISIN_CODE = "11"; + private static final String MIN_PRICE_STEP = "12"; + + @Override + public @NotNull Class getTargetObjectClass() { + return Security.class; + } + + @NotNull + @Override + public QluaStructures.Security getTargetObjectAsPbMessage() { + return QluaStructures.Security.newBuilder() + .setCode(CODE) + .setName(NAME) + .setShortName(SHORT_NAME) + .setClassCode(CLASS_CODE) + .setClassName(CLASS_NAME) + .setFaceValue(FACE_VALUE) + .setFaceUnit(FACE_UNIT) + .setScale(SCALE) + .setMatDate(MAT_DATE) + .setLotSize(LOT_SIZE) + .setIsinCode(ISIN_CODE) + .setMinPriceStep(MIN_PRICE_STEP) + .build(); + } + + @NotNull + @Override + public Security getTargetObject() { + return Security.builder() + .code(CODE) + .name(NAME) + .shortName(SHORT_NAME) + .classCode(CLASS_CODE) + .className(CLASS_NAME) + .faceValue(FACE_VALUE) + .faceUnit(FACE_UNIT) + .scale(SCALE) + .matDate(MAT_DATE) + .lotSize(LOT_SIZE) + .isinCode(ISIN_CODE) + .minPriceStep(MIN_PRICE_STEP) + .build(); + } + + @Test + @Override + public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { + super.testSerialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @Test + @Override + public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { + super.testDeserialize_WithNonEssentialFieldsInitializedByDefault(); + } + + @NotNull + @Override + public QluaStructures.Security getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + return QluaStructures.Security.newBuilder().build(); + } + + @NotNull + @Override + public Security getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + return Security.builder().build(); + } +} From 966c97c3194cd9d2337e5d85007ad0f07a699876 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 21:26:39 +0300 Subject: [PATCH 305/549] Added a protobuf serde for GetSecurityInfo. --- .../lua/rpc/api/messages/GetSecurityInfo.java | 23 ++-- .../GetSecurityInfoRequestPbSerde.java | 59 ++++++++++ .../GetSecurityInfoResultPbSerde.java | 46 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetSecurityInfoRequestPbSerdeTest.java | 40 +++++++ .../GetSecurityInfoResultPbSerdeTest.java | 102 ++++++++++++++++++ 6 files changed, 264 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java index f6829d1..c06d4d7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java @@ -7,28 +7,33 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetSecurityInfo { private GetSecurityInfo() {} + private static final String CLASS_CODE_FIELD = "class_code"; + private static final String SEC_CODE_FIELD = "sec_code"; + @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; + String classCode; + String secCode; @Builder - private Request(final String classCode, final String secCode) { + private Request(@NonNull final String classCode, @NonNull final String secCode) { this.classCode = classCode; this.secCode = secCode; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE_FIELD, classCode) + .add(SEC_CODE_FIELD, secCode) .toString(); } } @@ -36,17 +41,19 @@ public String toString() { @Value public static class Result { - @NonNull Security securityInfo; + private static final String SECURITY_INFO_FIELD = "security_info"; + + Security securityInfo; @JsonCreator - public Result(final @JsonProperty(value = "security_info", required = true) Security securityInfo) { + public Result(@JsonProperty(value = SECURITY_INFO_FIELD, required = true) @NonNull final Security securityInfo) { this.securityInfo = securityInfo; } @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("security_info", securityInfo) + .add(SECURITY_INFO_FIELD, securityInfo) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java new file mode 100644 index 0000000..a40e87c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetSecurityInfoRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_SECURITY_INFO; + + @Override + public byte[] serialize(final GetSecurityInfo.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetSecurityInfo.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetSecurityInfo.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetSecurityInfo.Request convertFromPb(@NotNull final qlua.rpc.GetSecurityInfo.Request request) { + + return GetSecurityInfo.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .build(); + } + + @Override + public qlua.rpc.GetSecurityInfo.Request convertToPb(@NotNull final GetSecurityInfo.Request request) { + + return qlua.rpc.GetSecurityInfo.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java new file mode 100644 index 0000000..98eb6a8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java @@ -0,0 +1,46 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbSecurity; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbSecurity; + +enum GetSecurityInfoResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetSecurityInfo.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetSecurityInfo.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetSecurityInfo.Result.parseFrom(data) ); + } + + @Override + public GetSecurityInfo.Result convertFromPb(@NotNull final qlua.rpc.GetSecurityInfo.Result result) { + + if (!result.hasSecurityInfo()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetSecurityInfo.Result не содержит поля 'securityInfo'."); + } + + return new GetSecurityInfo.Result( convertFromPbSecurity(result.getSecurityInfo()) ); + } + + @Override + public qlua.rpc.GetSecurityInfo.Result convertToPb(@NotNull final GetSecurityInfo.Result result) { + + return qlua.rpc.GetSecurityInfo.Result.newBuilder() + .setSecurityInfo( convertToPbSecurity(result.getSecurityInfo()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 360c1ab..cb6d266 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -189,6 +189,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetQuoteLevel2.Result.class, GetQuoteLevel2ResultPbSerde.INSTANCE); registerSerde(result, GetScriptPath.Request.class, GetScriptPathRequestPbSerde.INSTANCE); registerSerde(result, GetScriptPath.Result.class, GetScriptPathResultPbSerde.INSTANCE); + registerSerde(result, GetSecurityInfo.Request.class, GetSecurityInfoRequestPbSerde.INSTANCE); + registerSerde(result, GetSecurityInfo.Result.class, GetSecurityInfoResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java new file mode 100644 index 0000000..147c665 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetSecurityInfoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_SECURITY_INFO; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetSecurityInfo.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetSecurityInfo.Request.class; + } + + @NotNull + @Override + public GetSecurityInfo.Request getTargetObject() { + return GetSecurityInfo.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java new file mode 100644 index 0000000..34a7cbb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java @@ -0,0 +1,102 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import qlua.structs.QluaStructures; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetSecurityInfoResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetSecurityInfo.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetSecurityInfo.Result getTargetObjectAsPbMessage() { + + final QluaStructures.Security security = QluaStructures.Security.newBuilder() + .setCode(SecurityParameters.CODE) + .setName(SecurityParameters.NAME) + .setShortName(SecurityParameters.SHORT_NAME) + .setClassCode(SecurityParameters.CLASS_CODE) + .setClassName(SecurityParameters.CLASS_NAME) + .setFaceValue(SecurityParameters.FACE_VALUE) + .setFaceUnit(SecurityParameters.FACE_UNIT) + .setScale(SecurityParameters.SCALE) + .setMatDate(SecurityParameters.MAT_DATE) + .setLotSize(SecurityParameters.LOT_SIZE) + .setIsinCode(SecurityParameters.ISIN_CODE) + .setMinPriceStep(SecurityParameters.MIN_PRICE_STEP) + .build(); + + return qlua.rpc.GetSecurityInfo.Result.newBuilder() + .setSecurityInfo(security) + .build(); + } + + @NotNull + @Override + public GetSecurityInfo.Result getTargetObject() { + + final Security security = Security.builder() + .code(SecurityParameters.CODE) + .name(SecurityParameters.NAME) + .shortName(SecurityParameters.SHORT_NAME) + .classCode(SecurityParameters.CLASS_CODE) + .className(SecurityParameters.CLASS_NAME) + .faceValue(SecurityParameters.FACE_VALUE) + .faceUnit(SecurityParameters.FACE_UNIT) + .scale(SecurityParameters.SCALE) + .matDate(SecurityParameters.MAT_DATE) + .lotSize(SecurityParameters.LOT_SIZE) + .isinCode(SecurityParameters.ISIN_CODE) + .minPriceStep(SecurityParameters.MIN_PRICE_STEP) + .build(); + + return new GetSecurityInfo.Result(security); + } + + @Test + public void shouldFailOnUninitializedPbPortfolioInfo() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetSecurityInfo.Result не содержит поля 'securityInfo'.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetSecurityInfo.Result.class, qlua.rpc.GetSecurityInfo.Result.newBuilder().build().toByteArray()); + } + + private static final class SecurityParameters { + + private static final String CODE = "1"; + private static final String NAME = "2"; + private static final String SHORT_NAME = "3"; + private static final String CLASS_CODE = "4"; + private static final String CLASS_NAME = "5"; + private static final String FACE_VALUE = "6"; + private static final String FACE_UNIT = "7"; + private static final String SCALE = "8"; + private static final String MAT_DATE = "9"; + private static final String LOT_SIZE = "10"; + private static final String ISIN_CODE = "11"; + private static final String MIN_PRICE_STEP = "12"; + } +} From 1f6f606d6b41951fd0f974fb657baafe08a62688 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 22:29:42 +0300 Subject: [PATCH 306/549] Fixed typos. --- .../com/enfernuz/quik/lua/rpc/api/structures/Security.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java index 79d0b35..0388dee 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java @@ -17,8 +17,8 @@ public class Security { private static final String CODE_FIELD = "code"; private static final String NAME_FIELD = "name"; private static final String SHORT_NAME_FIELD = "short_name"; - private static final String CLASS_CODE_FIELD = "class_code_field"; - private static final String CLASS_NAME_FIELD = "class_name_field"; + private static final String CLASS_CODE_FIELD = "class_code"; + private static final String CLASS_NAME_FIELD = "class_name"; private static final String FACE_VALUE_FIELD = "face_value"; private static final String FACE_UNIT_FIELD = "face_unit"; private static final String SCALE_FIELD = "scale"; From 6d285abacbe78ebb4f592b19e4d028580e01f17b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 22:31:29 +0300 Subject: [PATCH 307/549] Renamed a bunch of abstract test methods; changed the JSON and pb serde login for SecurityInfo for handling the error case. --- .../lua/rpc/api/messages/GetSecurityInfo.java | 28 ++++++++++++- .../GetSecurityInfoResultPbSerde.java | 21 ++++++---- .../GetSecurityInfoJsonSerdeTest.java | 30 ++++++++------ .../serde/protobuf/AbstractPbSerdeTest.java | 24 +++++------ .../protobuf/GetMoneyExResultPbSerdeTest.java | 12 +++--- .../GetOrderByNumberResultPbSerdeTest.java | 12 +++--- .../GetSecurityInfoResultPbSerdeTest.java | 41 +++++++++---------- .../serde/protobuf/SecurityPbSerdeTest.java | 12 +++--- .../json/getSecurityInfo.result.error.json | 1 + 9 files changed, 108 insertions(+), 73 deletions(-) create mode 100644 src/test/resources/json/getSecurityInfo.result.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java index c06d4d7..178ef96 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java @@ -7,6 +7,7 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; public final class GetSecurityInfo { @@ -46,15 +47,40 @@ public static class Result { Security securityInfo; @JsonCreator - public Result(@JsonProperty(value = SECURITY_INFO_FIELD, required = true) @NonNull final Security securityInfo) { + public static Result getInstance(@JsonProperty(value = SECURITY_INFO_FIELD) final Security securityInfo) { + return securityInfo == null ? InstanceHolder.ERROR : new Result(securityInfo); + } + + @Contract(pure = true) + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final Security securityInfo) { this.securityInfo = securityInfo; } + @Contract(pure = true) + public boolean isError() { + return securityInfo == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) .add(SECURITY_INFO_FIELD, securityInfo) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java index 98eb6a8..0df3cdf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.api.structures.Security; import com.enfernuz.quik.lua.rpc.serde.PbConverter; import com.enfernuz.quik.lua.rpc.serde.Serde; import com.google.protobuf.InvalidProtocolBufferException; @@ -29,18 +30,22 @@ public GetSecurityInfo.Result deserialize(final byte[] data) { @Override public GetSecurityInfo.Result convertFromPb(@NotNull final qlua.rpc.GetSecurityInfo.Result result) { - if (!result.hasSecurityInfo()) { - throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetSecurityInfo.Result не содержит поля 'securityInfo'."); - } - - return new GetSecurityInfo.Result( convertFromPbSecurity(result.getSecurityInfo()) ); + return result.hasSecurityInfo() ? + GetSecurityInfo.Result.getInstance( convertFromPbSecurity(result.getSecurityInfo()) ) + : + GetSecurityInfo.Result.getInstance(null); } @Override public qlua.rpc.GetSecurityInfo.Result convertToPb(@NotNull final GetSecurityInfo.Result result) { - return qlua.rpc.GetSecurityInfo.Result.newBuilder() - .setSecurityInfo( convertToPbSecurity(result.getSecurityInfo()) ) - .build(); + final qlua.rpc.GetSecurityInfo.Result.Builder pbResult = qlua.rpc.GetSecurityInfo.Result.newBuilder(); + + final Security security = result.getSecurityInfo(); + if (security != null) { + pbResult.setSecurityInfo( convertToPbSecurity(result.getSecurityInfo()) ); + } + + return pbResult.build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java index 53153c9..7dcb7d3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java @@ -17,10 +17,14 @@ public class GetSecurityInfoJsonSerdeTest { private static ObjectMapper sut; private static GetSecurityInfo.Request requestObj; - private static GetSecurityInfo.Result resultObj; private static String requestJson; + + private static GetSecurityInfo.Result resultObj; private static String resultJson; + private static GetSecurityInfo.Result errorObj; + private static String errorJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -31,6 +35,7 @@ public static void globalSetup() throws IOException { .classCode("1") .secCode("2") .build(); + requestJson = Resources.toString(Resources.getResource("json/getSecurityInfo.request.json"), Charsets.UTF_8); final Security securityInfo = Security.builder() .code("1") @@ -47,27 +52,26 @@ public static void globalSetup() throws IOException { .minPriceStep("12") .build(); - resultObj = new GetSecurityInfo.Result(securityInfo); + resultObj = GetSecurityInfo.Result.getInstance(securityInfo); + resultJson = Resources.toString(Resources.getResource("json/getSecurityInfo.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/getSecurityInfo.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getSecurityInfo.result.json"), Charsets.UTF_8); + errorObj = GetSecurityInfo.Result.getErrorInstance(); + errorJson = + Resources.toString(Resources.getResource("json/getSecurityInfo.result.error.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetSecurityInfo.Result.class)); + } - final GetSecurityInfo.Result actualResultObj = sut.readValue(resultJson, GetSecurityInfo.Result.class); - - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserializeError() throws IOException { + assertEquals(errorObj, sut.readValue(errorJson, GetSecurityInfo.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java index fda8564..e17d32a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -39,12 +39,12 @@ public void testDeserialize() { /** * Where applicable, this method must be overridden with the @Test annotation on it. */ - public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { + public void testSerializeErrorObject() { assertTrue( Arrays.equals( - getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm(), - getSerdeModuleUnderTest().serialize(getTargetObject_WithNonEssentialFieldsInitializedByDefault()) + getErrorObject_PbSerializedForm(), + getSerdeModuleUnderTest().serialize(getErrorObject()) ) ); } @@ -52,11 +52,11 @@ public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { /** * Where applicable, this method must be overridden with the @Test annotation on it. */ - public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { + public void testDeserializeErrorObject() { assertEquals( - getTargetObject_WithNonEssentialFieldsInitializedByDefault(), - getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm()) + getErrorObject(), + getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), getErrorObject_PbSerializedForm()) ); } @@ -67,21 +67,21 @@ public SerdeModule getSerdeModuleUnderTest() { /** * This method must be overridden with a proper implementation if either of the test methods - * {@link #testSerialize_WithNonEssentialFieldsInitializedByDefault()} or {@link #testDeserialize_WithNonEssentialFieldsInitializedByDefault()} + * {@link #testSerializeErrorObject()} or {@link #testDeserializeErrorObject()} * is overridden with the @Test annotation on it. */ @NotNull - public PB_OBJECT getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + public PB_OBJECT getErrorObject_AsPbMessage() { throw new UnsupportedOperationException(); } /** * This method must be overridden with a proper implementation if either of the test methods - * {@link #testSerialize_WithNonEssentialFieldsInitializedByDefault()} or {@link #testDeserialize_WithNonEssentialFieldsInitializedByDefault()} + * {@link #testSerializeErrorObject()} or {@link #testDeserializeErrorObject()} * is overridden with the @Test annotation on it. */ @NotNull - public TARGET_OBJECT getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + public TARGET_OBJECT getErrorObject() { throw new UnsupportedOperationException(); } @@ -89,7 +89,7 @@ private byte[] getTargetObjectPbSerializedForm() { return getTargetObjectAsPbMessage().toByteArray(); } - private byte[] getTargetObject_WithNonEssentialFieldsInitializedByDefault_PbSerializedForm() { - return getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage().toByteArray(); + private byte[] getErrorObject_PbSerializedForm() { + return getErrorObject_AsPbMessage().toByteArray(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java index 899b3aa..0fcbb49 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java @@ -24,14 +24,14 @@ public class GetMoneyExResultPbSerdeTest extends AbstractResultPbSerdeTest { - @Rule - public ExpectedException thrown = ExpectedException.none(); - @Override public @NotNull Class getTargetObjectClass() { return GetSecurityInfo.Result.class; @@ -67,21 +56,31 @@ public GetSecurityInfo.Result getTargetObject() { .minPriceStep(SecurityParameters.MIN_PRICE_STEP) .build(); - return new GetSecurityInfo.Result(security); + return GetSecurityInfo.Result.getInstance(security); } @Test - public void shouldFailOnUninitializedPbPortfolioInfo() { + @Override + public void testSerializeErrorObject() { + super.testSerializeErrorObject(); + } - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetSecurityInfo.Result не содержит поля 'securityInfo'.")) - ) - ); + @Test + @Override + public void testDeserializeErrorObject() { + super.testDeserializeErrorObject(); + } - getSerdeModuleUnderTest().deserialize(GetSecurityInfo.Result.class, qlua.rpc.GetSecurityInfo.Result.newBuilder().build().toByteArray()); + @NotNull + @Override + public qlua.rpc.GetSecurityInfo.Result getErrorObject_AsPbMessage() { + return qlua.rpc.GetSecurityInfo.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetSecurityInfo.Result getErrorObject() { + return GetSecurityInfo.Result.getErrorInstance(); } private static final class SecurityParameters { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java index a7e3d92..59ac8f4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java @@ -65,25 +65,25 @@ public Security getTargetObject() { @Test @Override - public void testSerialize_WithNonEssentialFieldsInitializedByDefault() { - super.testSerialize_WithNonEssentialFieldsInitializedByDefault(); + public void testSerializeErrorObject() { + super.testSerializeErrorObject(); } @Test @Override - public void testDeserialize_WithNonEssentialFieldsInitializedByDefault() { - super.testDeserialize_WithNonEssentialFieldsInitializedByDefault(); + public void testDeserializeErrorObject() { + super.testDeserializeErrorObject(); } @NotNull @Override - public QluaStructures.Security getTargetObject_WithNonEssentialFieldsInitializedByDefault_AsPbMessage() { + public QluaStructures.Security getErrorObject_AsPbMessage() { return QluaStructures.Security.newBuilder().build(); } @NotNull @Override - public Security getTargetObject_WithNonEssentialFieldsInitializedByDefault() { + public Security getErrorObject() { return Security.builder().build(); } } diff --git a/src/test/resources/json/getSecurityInfo.result.error.json b/src/test/resources/json/getSecurityInfo.result.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/getSecurityInfo.result.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 22f67e45b31756b2c6244cf4d7fd20032e0417ce Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 15 Sep 2018 23:06:19 +0300 Subject: [PATCH 308/549] Added a protobuf serde for GetTableSize. --- .../lua/rpc/api/messages/GetTableSize.java | 73 +++++++++++++++++-- .../protobuf/GetTableSizeRequestPbSerde.java | 54 ++++++++++++++ .../protobuf/GetTableSizeResultPbSerde.java | 57 +++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + src/main/proto/qlua/rpc/GetTableSize.proto | 10 ++- .../messages/GetTableSizeJsonSerdeTest.java | 31 ++++---- .../GetTableSizeRequestPbSerdeTest.java | 35 +++++++++ .../GetTableSizeResultPbSerdeTest.java | 69 ++++++++++++++++++ .../json/GetTableSize.result.error.json | 1 + .../resources/json/GetTableSize.result.json | 6 +- 10 files changed, 315 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java create mode 100644 src/test/resources/json/GetTableSize.result.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java index 9fbeb9c..d211fd0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -4,44 +4,107 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetTableSize { private GetTableSize() {} + private static final String T_ID_FIELD = "t_id"; + @Value public static class Request { int tId; + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID_FIELD, tId) .toString(); } } @Value - public static class Result { + public static class TableSize { + + private static final String ROWS_FIELD = "rows"; + private static final String COL_FIELD = "col"; int rows; int col; @Builder @JsonCreator - private Result(final @JsonProperty("rows") int rows, final @JsonProperty("col") int col) { + private TableSize( + @JsonProperty(value = ROWS_FIELD, required = true) final int rows, + @JsonProperty(value = COL_FIELD, required = true) final int col) { + this.rows = rows; this.col = col; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("rows", rows) - .add("col", col) + .add(ROWS_FIELD, rows) + .add(COL_FIELD, col) .toString(); } } + + @Value + public static class Result { + + private static final String TABLE_SIZE_FIELD = "table_size"; + + TableSize tableSize; + + @JsonCreator + public static Result getInstance(@JsonProperty(TABLE_SIZE_FIELD) final TableSize tableSize) { + return isError(tableSize) ? InstanceHolder.ERROR : new Result(tableSize); + } + + @Contract(pure = true) + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final TableSize tableSize) { + this.tableSize = tableSize; + } + + @Contract(pure = true) + public boolean isError() { + return isError(tableSize); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final TableSize tableSize) { + return tableSize == null; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(TABLE_SIZE_FIELD, tableSize) + .toString(); + } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java new file mode 100644 index 0000000..b2bc498 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetTableSizeRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_TABLE_SIZE; + + @Override + public byte[] serialize(final GetTableSize.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTableSize.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetTableSize.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetTableSize.Request convertFromPb(@NotNull final qlua.rpc.GetTableSize.Request request) { + return new GetTableSize.Request(request.getTId()); + } + + @Override + public qlua.rpc.GetTableSize.Request convertToPb(@NotNull final GetTableSize.Request request) { + + return qlua.rpc.GetTableSize.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java new file mode 100644 index 0000000..7f5df51 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetTableSizeResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetTableSize.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTableSize.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetTableSize.Result.parseFrom(data) ); + } + + @Override + public GetTableSize.Result convertFromPb(@NotNull final qlua.rpc.GetTableSize.Result result) { + + if (result.hasTableSize()) { + final qlua.rpc.GetTableSize.TableSize pbTableSize = result.getTableSize(); + final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() + .rows( pbTableSize.getRows() ) + .col( pbTableSize.getCol() ) + .build(); + return GetTableSize.Result.getInstance(tableSize); + } + + return GetTableSize.Result.getErrorInstance(); + } + + @Override + public qlua.rpc.GetTableSize.Result convertToPb(@NotNull final GetTableSize.Result result) { + + final GetTableSize.TableSize tableSize = result.getTableSize(); + if (tableSize == null) { + return qlua.rpc.GetTableSize.Result.newBuilder().build(); + } + + final qlua.rpc.GetTableSize.TableSize pbTableSize = qlua.rpc.GetTableSize.TableSize.newBuilder() + .setRows( tableSize.getRows() ) + .setCol( tableSize.getCol() ) + .build(); + return qlua.rpc.GetTableSize.Result.newBuilder() + .setTableSize(pbTableSize) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index cb6d266..bf7bf87 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -191,6 +191,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetScriptPath.Result.class, GetScriptPathResultPbSerde.INSTANCE); registerSerde(result, GetSecurityInfo.Request.class, GetSecurityInfoRequestPbSerde.INSTANCE); registerSerde(result, GetSecurityInfo.Result.class, GetSecurityInfoResultPbSerde.INSTANCE); + registerSerde(result, GetTableSize.Request.class, GetTableSizeRequestPbSerde.INSTANCE); + registerSerde(result, GetTableSize.Result.class, GetTableSizeResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/proto/qlua/rpc/GetTableSize.proto b/src/main/proto/qlua/rpc/GetTableSize.proto index b1741ac..b3f6efe 100644 --- a/src/main/proto/qlua/rpc/GetTableSize.proto +++ b/src/main/proto/qlua/rpc/GetTableSize.proto @@ -7,12 +7,16 @@ package qlua.rpc.GetTableSize; option optimize_for = SPEED; option java_package = "qlua.rpc"; +message TableSize { + + int32 rows = 1; + int32 col = 2; +} + message Request { int32 t_id = 1; } message Result { - - int32 rows = 1; - int32 col = 2; + TableSize table_size = 1; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java index 3341d3f..9e0a088 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java @@ -16,10 +16,14 @@ public class GetTableSizeJsonSerdeTest { private static ObjectMapper sut; private static GetTableSize.Request requestObj; - private static GetTableSize.Result resultObj; private static String requestJson; + + private static GetTableSize.Result resultObj; private static String resultJson; + private static GetTableSize.Result errorObj; + private static String errorJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -27,31 +31,32 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetTableSize.Request(1); + requestJson = Resources.toString(Resources.getResource("json/GetTableSize.request.json"), Charsets.UTF_8); - resultObj = GetTableSize.Result.builder() + final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() .rows(1) .col(2) .build(); + resultObj = GetTableSize.Result.getInstance(tableSize); + resultJson = Resources.toString(Resources.getResource("json/GetTableSize.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/GetTableSize.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/GetTableSize.result.json"), Charsets.UTF_8); + errorObj = GetTableSize.Result.getErrorInstance(); + errorJson = + Resources.toString(Resources.getResource("json/GetTableSize.result.error.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetTableSize.Result.class)); + } - final GetTableSize.Result actualResultObj = sut.readValue(resultJson, GetTableSize.Result.class); - - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserializeError() throws IOException { + assertEquals(errorObj, sut.readValue(errorJson, GetTableSize.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java new file mode 100644 index 0000000..2d60198 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetTableSizeRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_TABLE_SIZE; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetTableSize.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetTableSize.Request.class; + } + + @NotNull + @Override + public GetTableSize.Request getTargetObject() { + return new GetTableSize.Request(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java new file mode 100644 index 0000000..c957d9a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java @@ -0,0 +1,69 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +public class GetTableSizeResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Override + public @NotNull Class getTargetObjectClass() { + return GetTableSize.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetTableSize.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetTableSize.TableSize tableSize = qlua.rpc.GetTableSize.TableSize.newBuilder() + .setRows(TableSizeParameters.ROWS) + .setCol(TableSizeParameters.COL) + .build(); + + return qlua.rpc.GetTableSize.Result.newBuilder() + .setTableSize(tableSize) + .build(); + } + + @NotNull + @Override + public GetTableSize.Result getTargetObject() { + + final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() + .rows(TableSizeParameters.ROWS) + .col(TableSizeParameters.COL) + .build(); + + return GetTableSize.Result.getInstance(tableSize); + } + + @Test + @Override + public void testSerializeErrorObject() { + super.testSerializeErrorObject(); + } + + @Test + @Override + public void testDeserializeErrorObject() { + super.testDeserializeErrorObject(); + } + + @NotNull + @Override + public qlua.rpc.GetTableSize.Result getErrorObject_AsPbMessage() { + return qlua.rpc.GetTableSize.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetTableSize.Result getErrorObject() { + return GetTableSize.Result.getErrorInstance(); + } + + private static final class TableSizeParameters { + + private static final int ROWS = 1; + private static final int COL = 2; + } +} diff --git a/src/test/resources/json/GetTableSize.result.error.json b/src/test/resources/json/GetTableSize.result.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/GetTableSize.result.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/GetTableSize.result.json b/src/test/resources/json/GetTableSize.result.json index d2dfba9..d116553 100644 --- a/src/test/resources/json/GetTableSize.result.json +++ b/src/test/resources/json/GetTableSize.result.json @@ -1,4 +1,6 @@ { - "rows" : 1, - "col" : 2 + "table_size" : { + "rows" : 1, + "col" : 2 + } } \ No newline at end of file From 894e553008c250be188086d8d266e0ab932cc15d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 00:15:48 +0300 Subject: [PATCH 309/549] Changed error message. --- .../quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java | 2 +- .../lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java index 1eb6f1a..5506d40 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java @@ -31,7 +31,7 @@ public GetParamEx2.Result deserialize(final byte[] data) { public GetParamEx2.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx2.Result result) { if (!result.hasParamEx()) { - throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetParamEx2.Result не содержит поля 'paramEx'."); + throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано."); } final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = result.getParamEx(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java index bd1b1b1..7fa216f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java @@ -64,7 +64,7 @@ public void shouldFailOnUninitializedPbParamEx() { thrown.expectCause( allOf( instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetParamEx2.Result не содержит поля 'paramEx'.")) + hasProperty("message", equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано.")) ) ); From 5bf6df93c2a7558a60ea835188f619bb29002c6c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 00:16:03 +0300 Subject: [PATCH 310/549] Changed error message. --- .../quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java | 2 +- .../lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java index e155cee..bf87221 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java @@ -32,7 +32,7 @@ public GetParamEx.Result deserialize(final byte[] data) { public GetParamEx.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx.Result result) { if (!result.hasParamEx()) { - throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetParamEx.Result не содержит поля 'paramEx'."); + throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано."); } final qlua.rpc.GetParamEx.ParamEx pbParamEx = result.getParamEx(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java index f2a28b1..e5ac0b2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java @@ -65,7 +65,7 @@ public void shouldFailOnUninitializedPbParamEx() { thrown.expectCause( allOf( instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetParamEx.Result не содержит поля 'paramEx'.")) + hasProperty("message", equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано.")) ) ); From 6cc2a25f7d7c2ede707f4f0a55e9d99171511326 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 00:16:23 +0300 Subject: [PATCH 311/549] Added a protobuf serde for GetTradeDate. --- .../lua/rpc/api/messages/GetTradeDate.java | 33 ++++++--- .../protobuf/GetTradeDateRequestPbSerde.java | 42 +++++++++++ .../protobuf/GetTradeDateResultPbSerde.java | 61 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetTradeDateRequestPbSerdeTest.java | 31 ++++++++ .../GetTradeDateResultPbSerdeTest.java | 73 +++++++++++++++++++ 6 files changed, 230 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java index c501c6b..4733b02 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java @@ -5,6 +5,7 @@ import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -15,7 +16,12 @@ private GetTradeDate() {} @Value public static class TradeDate { - @NonNull String date; + private static final String DATE_FIELD = "date"; + private static final String YEAR_FIELD = "year"; + private static final String MONTH_FIELD = "month"; + private static final String DAY_FIELD = "day"; + + String date; int year; int month; int day; @@ -26,10 +32,10 @@ public static class TradeDate { @Builder @JsonCreator private TradeDate( - final @JsonProperty(value = "date", required = true) String date, - final @JsonProperty(value = "year", required = true) int year, - final @JsonProperty(value = "month", required = true) int month, - final @JsonProperty(value = "day", required = true) int day) { + @JsonProperty(value = DATE_FIELD, required = true) @NonNull final String date, + @JsonProperty(value = YEAR_FIELD, required = true) final int year, + @JsonProperty(value = MONTH_FIELD, required = true) final int month, + @JsonProperty(value = DAY_FIELD, required = true) final int day) { this.date = date; this.year = year; @@ -68,10 +74,10 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("date", date) - .add("year", year) - .add("month", month) - .add("day", day) + .add(DATE_FIELD, date) + .add(YEAR_FIELD, year) + .add(MONTH_FIELD, month) + .add(DAY_FIELD, day) .toString(); } @@ -84,17 +90,20 @@ public static enum Request { INSTANCE; } @Value public static class Result { - @NonNull TradeDate tradeDate; + private static final String TRADE_DATE_FIELD = "trade_date"; + + TradeDate tradeDate; @JsonCreator - public Result(final @JsonProperty(value = "trade_date", required = true) TradeDate tradeDate) { + public Result(@JsonProperty(value = TRADE_DATE_FIELD, required = true) @NonNull final TradeDate tradeDate) { this.tradeDate = tradeDate; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("trade_date", tradeDate) + .add(TRADE_DATE_FIELD, tradeDate) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java new file mode 100644 index 0000000..d8bb8d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetTradeDateRequestPbSerde implements Serde { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_TRADE_DATE; + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final GetTradeDate.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTradeDate.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return GetTradeDate.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java new file mode 100644 index 0000000..3e94457 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetTradeDateResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetTradeDate.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTradeDate.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetTradeDate.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetTradeDate.Result convertFromPb(@NotNull final qlua.rpc.GetTradeDate.Result result) { + + if (!result.hasTradeDate()) { + throw new IllegalArgumentException("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано."); + } + + final qlua.rpc.GetTradeDate.TradeDate pbTradeDate = result.getTradeDate(); + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date( pbTradeDate.getDate() ) + .year( pbTradeDate.getYear() ) + .month( pbTradeDate.getMonth() ) + .day( pbTradeDate.getDay() ) + .build(); + + return new GetTradeDate.Result(tradeDate); + } + + @NotNull + @Override + public qlua.rpc.GetTradeDate.Result convertToPb(@NotNull final GetTradeDate.Result result) { + + final GetTradeDate.TradeDate tradeDate = result.getTradeDate(); + final qlua.rpc.GetTradeDate.TradeDate pbTradeDate = qlua.rpc.GetTradeDate.TradeDate.newBuilder() + .setDate( tradeDate.getDate() ) + .setYear( tradeDate.getYear() ) + .setMonth( tradeDate.getMonth() ) + .setDay( tradeDate.getDay() ) + .build(); + + return qlua.rpc.GetTradeDate.Result.newBuilder() + .setTradeDate(pbTradeDate) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index bf7bf87..97ae54a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -193,6 +193,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetSecurityInfo.Result.class, GetSecurityInfoResultPbSerde.INSTANCE); registerSerde(result, GetTableSize.Request.class, GetTableSizeRequestPbSerde.INSTANCE); registerSerde(result, GetTableSize.Result.class, GetTableSizeResultPbSerde.INSTANCE); + registerSerde(result, GetTradeDate.Request.class, GetTradeDateRequestPbSerde.INSTANCE); + registerSerde(result, GetTradeDate.Result.class, GetTradeDateResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java new file mode 100644 index 0000000..6ce123e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetTradeDateRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_TRADE_DATE; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return null; + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetTradeDate.Request.class; + } + + @NotNull + @Override + public GetTradeDate.Request getTargetObject() { + return GetTradeDate.Request.INSTANCE; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java new file mode 100644 index 0000000..e2443b1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; + +public class GetTradeDateResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String DATE = "1"; + private static final int YEAR = 2; + private static final int MONTH = 3; + private static final int DAY = 4; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Class getTargetObjectClass() { + return GetTradeDate.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetTradeDate.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetTradeDate.TradeDate tradeDate = qlua.rpc.GetTradeDate.TradeDate.newBuilder() + .setDate(DATE) + .setYear(YEAR) + .setMonth(MONTH) + .setDay(DAY) + .build(); + + return qlua.rpc.GetTradeDate.Result.newBuilder() + .setTradeDate(tradeDate) + .build(); + } + + @NotNull + @Override + public GetTradeDate.Result getTargetObject() { + + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date(DATE) + .year(YEAR) + .month(MONTH) + .day(DAY) + .build(); + + return new GetTradeDate.Result(tradeDate); + } + + @Test + public void shouldFailOnUninitializedPbTradeDate() { + + thrown.expect(SerdeException.class); + thrown.expectCause( + allOf( + instanceOf(IllegalArgumentException.class), + hasProperty("message", equalTo("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано.")) + ) + ); + + getSerdeModuleUnderTest().deserialize(GetTradeDate.Result.class, qlua.rpc.GetTradeDate.Result.newBuilder().build().toByteArray()); + } +} From 9ded4ad73c11667fd2dd5ab51f23ac66e3e82d6a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 00:31:53 +0300 Subject: [PATCH 312/549] Added a protobuf serde for GetWindowCaption; moderately redone the JSON serde for GetWindowCaption to make it able to deserialize the error case. --- .../rpc/api/messages/GetWindowCaption.java | 42 +++++++++++++- .../GetWindowCaptionRequestPbSerde.java | 54 ++++++++++++++++++ .../GetWindowCaptionResultPbSerde.java | 41 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetWindowCaptionJsonSerdeTest.java | 30 +++++----- .../GetWindowCaptionRequestPbSerdeTest.java | 35 ++++++++++++ .../GetWindowCaptionResultPbSerdeTest.java | 57 +++++++++++++++++++ .../json/GetWindowCaption.result.error.json | 1 + 8 files changed, 246 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java create mode 100644 src/test/resources/json/GetWindowCaption.result.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java index 3589a3a..c394d0c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java @@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetWindowCaption { @@ -12,12 +14,15 @@ private GetWindowCaption() {} @Value public static class Request { + private static final String T_ID_FIELD = "t_id"; + int tId; + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID_FIELD, tId) .toString(); } } @@ -25,18 +30,49 @@ public String toString() { @Value public static class Result { + private static final String CAPTION_FIELD = "caption"; + String caption; @JsonCreator - public Result(final @JsonProperty("caption") String caption) { + public static Result getInstance(@JsonProperty(CAPTION_FIELD) final String caption) { + return isError(caption) ? InstanceHolder.ERROR : new Result(caption); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final String caption) { this.caption = caption; } + @Contract(pure = true) + public boolean isError() { + return isError(caption); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final String caption) { + return caption == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("caption", caption) + .add(CAPTION_FIELD, caption) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java new file mode 100644 index 0000000..579325c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetWindowCaptionRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WINDOW_CAPTION; + + @Override + public byte[] serialize(final GetWindowCaption.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowCaption.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetWindowCaption.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetWindowCaption.Request convertFromPb(@NotNull final qlua.rpc.GetWindowCaption.Request request) { + return new GetWindowCaption.Request(request.getTId()); + } + + @Override + public qlua.rpc.GetWindowCaption.Request convertToPb(@NotNull final GetWindowCaption.Request request) { + + return qlua.rpc.GetWindowCaption.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java new file mode 100644 index 0000000..fd8aeee --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum GetWindowCaptionResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetWindowCaption.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowCaption.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetWindowCaption.Result.parseFrom(data) ); + } + + @Override + public GetWindowCaption.Result convertFromPb(@NotNull final qlua.rpc.GetWindowCaption.Result result) { + return GetWindowCaption.Result.getInstance( convertFromPbString(result.getCaption()) ); + } + + @Override + public qlua.rpc.GetWindowCaption.Result convertToPb(@NotNull final GetWindowCaption.Result result) { + + return qlua.rpc.GetWindowCaption.Result.newBuilder() + .setCaption( convertToPbString(result.getCaption()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 97ae54a..a4a0488 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -195,6 +195,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetTableSize.Result.class, GetTableSizeResultPbSerde.INSTANCE); registerSerde(result, GetTradeDate.Request.class, GetTradeDateRequestPbSerde.INSTANCE); registerSerde(result, GetTradeDate.Result.class, GetTradeDateResultPbSerde.INSTANCE); + registerSerde(result, GetWindowCaption.Request.class, GetWindowCaptionRequestPbSerde.INSTANCE); + registerSerde(result, GetWindowCaption.Result.class, GetWindowCaptionResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java index ba00429..c5735c7 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java @@ -16,10 +16,14 @@ public class GetWindowCaptionJsonSerdeTest { private static ObjectMapper sut; private static GetWindowCaption.Request requestObj; - private static GetWindowCaption.Result resultObj; private static String requestJson; + + private static GetWindowCaption.Result resultObj; private static String resultJson; + private static GetWindowCaption.Result errorObj; + private static String errorJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -27,28 +31,28 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetWindowCaption.Request(1); + requestJson = Resources.toString(Resources.getResource("json/GetWindowCaption.request.json"), Charsets.UTF_8); - resultObj = new GetWindowCaption.Result("1"); + resultObj = GetWindowCaption.Result.getInstance("1"); + resultJson = Resources.toString(Resources.getResource("json/GetWindowCaption.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/GetWindowCaption.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/GetWindowCaption.result.json"), Charsets.UTF_8); + errorObj = GetWindowCaption.Result.getErrorInstance(); + errorJson = + Resources.toString(Resources.getResource("json/GetWindowCaption.result.error.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetWindowCaption.Result.class)); + } - final GetWindowCaption.Result actualResultObj = sut.readValue(resultJson, GetWindowCaption.Result.class); - - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserializeError() throws IOException { + assertEquals(errorObj, sut.readValue(errorJson, GetWindowCaption.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java new file mode 100644 index 0000000..be0c8a5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetWindowCaptionRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_WINDOW_CAPTION; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetWindowCaption.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWindowCaption.Request.class; + } + + @NotNull + @Override + public GetWindowCaption.Request getTargetObject() { + return new GetWindowCaption.Request(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java new file mode 100644 index 0000000..cd522dc --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +public class GetWindowCaptionResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWindowCaption.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetWindowCaption.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetWindowCaption.Result.newBuilder() + .setCaption(WindowCaptionParameters.CAPTION) + .build(); + } + + @NotNull + @Override + public GetWindowCaption.Result getTargetObject() { + return GetWindowCaption.Result.getInstance(WindowCaptionParameters.CAPTION); + } + + @Test + @Override + public void testSerializeErrorObject() { + super.testSerializeErrorObject(); + } + + @Test + @Override + public void testDeserializeErrorObject() { + super.testDeserializeErrorObject(); + } + + @NotNull + @Override + public qlua.rpc.GetWindowCaption.Result getErrorObject_AsPbMessage() { + return qlua.rpc.GetWindowCaption.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetWindowCaption.Result getErrorObject() { + return GetWindowCaption.Result.getErrorInstance(); + } + + private static final class WindowCaptionParameters { + + private static final String CAPTION = "1"; + } +} diff --git a/src/test/resources/json/GetWindowCaption.result.error.json b/src/test/resources/json/GetWindowCaption.result.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/GetWindowCaption.result.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 57295e92c33b27e456ed8d26df1c9e5042213435 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 00:52:11 +0300 Subject: [PATCH 313/549] Added a protobuf serde for GetWindowRect; moderately redone the JSON serde for GetWindowRect to make it able to deserialize the error case. --- .../lua/rpc/api/messages/GetWindowRect.java | 82 ++++++++++++++++--- .../protobuf/GetWindowRectRequestPbSerde.java | 54 ++++++++++++ .../protobuf/GetWindowRectResultPbSerde.java | 61 ++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + src/main/proto/qlua/rpc/GetWindowRect.proto | 13 ++- .../messages/GetWindowRectJsonSerdeTest.java | 31 ++++--- .../GetWindowRectRequestPbSerdeTest.java | 35 ++++++++ .../GetWindowRectResultPbSerdeTest.java | 75 +++++++++++++++++ .../json/GetWindowRect.result.error.json | 1 + .../resources/json/GetWindowRect.result.json | 10 ++- 10 files changed, 332 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java create mode 100644 src/test/resources/json/GetWindowRect.result.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java index 163bd28..af368d0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java @@ -5,6 +5,8 @@ import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class GetWindowRect { @@ -13,18 +15,26 @@ private GetWindowRect() {} @Value public static class Request { + private static final String T_ID_FIELD = "t_id"; + int tId; + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID_FIELD, tId) .toString(); } } @Value - public static class Result { + public static class WindowRect { + + private static final String TOP_FIELD = "top"; + private static final String LEFT_FIELD = "left"; + private static final String BOTTOM_FIELD = "bottom"; + private static final String RIGHT_FIELD = "right"; int top; int left; @@ -33,11 +43,11 @@ public static class Result { @Builder @JsonCreator - private Result( - final @JsonProperty(value = "top", required = true) int top, - final @JsonProperty(value = "left", required = true) int left, - final @JsonProperty(value = "bottom", required = true) int bottom, - final @JsonProperty(value = "right", required = true) int right) { + private WindowRect( + @JsonProperty(value = TOP_FIELD, required = true) final int top, + @JsonProperty(value = LEFT_FIELD, required = true) final int left, + @JsonProperty(value = BOTTOM_FIELD, required = true) final int bottom, + @JsonProperty(value = RIGHT_FIELD, required = true) final int right) { this.top = top; this.left = left; @@ -45,14 +55,64 @@ private Result( this.right = right; } + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(TOP_FIELD, top) + .add(LEFT_FIELD, left) + .add(BOTTOM_FIELD, bottom) + .add(RIGHT_FIELD, right) + .toString(); + } + } + + @Value + public static class Result { + + private static final String WINDOW_RECT_FIELD = "window_rect"; + + WindowRect windowRect; + + @JsonCreator + public static Result getInstance(@JsonProperty(WINDOW_RECT_FIELD) final WindowRect windowRect) { + return isError(windowRect) ? InstanceHolder.ERROR : new Result(windowRect); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final WindowRect windowRect) { + this.windowRect = windowRect; + } + + @Contract(pure = true) + public boolean isError() { + return isError(windowRect); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final WindowRect windowRect) { + return windowRect == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("top", top) - .add("left", left) - .add("bottom", bottom) - .add("right", right) + .add(WINDOW_RECT_FIELD, windowRect) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java new file mode 100644 index 0000000..3570ac5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetWindowRectRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WINDOW_RECT; + + @Override + public byte[] serialize(final GetWindowRect.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowRect.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.GetWindowRect.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public GetWindowRect.Request convertFromPb(@NotNull final qlua.rpc.GetWindowRect.Request request) { + return new GetWindowRect.Request(request.getTId()); + } + + @Override + public qlua.rpc.GetWindowRect.Request convertToPb(@NotNull final GetWindowRect.Request request) { + + return qlua.rpc.GetWindowRect.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java new file mode 100644 index 0000000..a84e0d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetWindowRectResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetWindowRect.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowRect.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetWindowRect.Result.parseFrom(data) ); + } + + @Override + public GetWindowRect.Result convertFromPb(@NotNull final qlua.rpc.GetWindowRect.Result result) { + + if (result.hasWindowRect()) { + final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = result.getWindowRect(); + final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() + .top( pbWindowRect.getTop() ) + .left( pbWindowRect.getLeft() ) + .bottom( pbWindowRect.getBottom() ) + .right( pbWindowRect.getRight() ) + .build(); + return GetWindowRect.Result.getInstance(windowRect); + } + + return GetWindowRect.Result.getErrorInstance(); + } + + @Override + public qlua.rpc.GetWindowRect.Result convertToPb(@NotNull final GetWindowRect.Result result) { + + final GetWindowRect.WindowRect windowRect = result.getWindowRect(); + if (windowRect == null) { + return qlua.rpc.GetWindowRect.Result.newBuilder().build(); + } + + final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = qlua.rpc.GetWindowRect.WindowRect.newBuilder() + .setTop( windowRect.getTop() ) + .setLeft( windowRect.getLeft() ) + .setBottom( windowRect.getBottom() ) + .setRight( windowRect.getRight() ) + .build(); + return qlua.rpc.GetWindowRect.Result.newBuilder() + .setWindowRect(pbWindowRect) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index a4a0488..eb74557 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -197,6 +197,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetTradeDate.Result.class, GetTradeDateResultPbSerde.INSTANCE); registerSerde(result, GetWindowCaption.Request.class, GetWindowCaptionRequestPbSerde.INSTANCE); registerSerde(result, GetWindowCaption.Result.class, GetWindowCaptionResultPbSerde.INSTANCE); + registerSerde(result, GetWindowRect.Request.class, GetWindowRectRequestPbSerde.INSTANCE); + registerSerde(result, GetWindowRect.Result.class, GetWindowRectResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/main/proto/qlua/rpc/GetWindowRect.proto b/src/main/proto/qlua/rpc/GetWindowRect.proto index 5a6ec9f..6ef87ea 100644 --- a/src/main/proto/qlua/rpc/GetWindowRect.proto +++ b/src/main/proto/qlua/rpc/GetWindowRect.proto @@ -7,14 +7,19 @@ package qlua.rpc.GetWindowRect; option optimize_for = SPEED; option java_package = "qlua.rpc"; +message WindowRect { + + int32 top = 1; + int32 left = 2; + int32 bottom = 3; + int32 right = 4; +} + message Request { int32 t_id = 1; } message Result { - int32 top = 1; - int32 left = 2; - int32 bottom = 3; - int32 right = 4; + WindowRect window_rect = 1; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java index a0f92b8..71ac085 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java @@ -16,10 +16,14 @@ public class GetWindowRectJsonSerdeTest { private static ObjectMapper sut; private static GetWindowRect.Request requestObj; - private static GetWindowRect.Result resultObj; private static String requestJson; + + private static GetWindowRect.Result resultObj; private static String resultJson; + private static GetWindowRect.Result errorObj; + private static String errorJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -27,33 +31,34 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new GetWindowRect.Request(1); + requestJson = Resources.toString(Resources.getResource("json/GetWindowRect.request.json"), Charsets.UTF_8); - resultObj = GetWindowRect.Result.builder() + final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() .top(1) .left(2) .bottom(3) .right(4) .build(); + resultObj = GetWindowRect.Result.getInstance(windowRect); + resultJson = Resources.toString(Resources.getResource("json/GetWindowRect.result.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/GetWindowRect.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/GetWindowRect.result.json"), Charsets.UTF_8); + errorObj = GetWindowRect.Result.getErrorInstance(); + errorJson = + Resources.toString(Resources.getResource("json/GetWindowRect.result.error.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test public void testResultDeserialize() throws IOException { + assertEquals(resultObj, sut.readValue(resultJson, GetWindowRect.Result.class)); + } - final GetWindowRect.Result actualResultObj = sut.readValue(resultJson, GetWindowRect.Result.class); - - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserializeError() throws IOException { + assertEquals(errorObj, sut.readValue(errorJson, GetWindowRect.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java new file mode 100644 index 0000000..596c2d6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetWindowRectRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_WINDOW_RECT; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.GetWindowRect.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWindowRect.Request.class; + } + + @NotNull + @Override + public GetWindowRect.Request getTargetObject() { + return new GetWindowRect.Request(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java new file mode 100644 index 0000000..591c49e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java @@ -0,0 +1,75 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +public class GetWindowRectResultPbSerdeTest extends AbstractResultPbSerdeTest { + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWindowRect.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetWindowRect.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetWindowRect.WindowRect windowRect = qlua.rpc.GetWindowRect.WindowRect.newBuilder() + .setTop(WindowRectParameters.TOP) + .setLeft(WindowRectParameters.LEFT) + .setBottom(WindowRectParameters.BOTTOM) + .setRight(WindowRectParameters.RIGHT) + .build(); + + return qlua.rpc.GetWindowRect.Result.newBuilder() + .setWindowRect(windowRect) + .build(); + } + + @NotNull + @Override + public GetWindowRect.Result getTargetObject() { + + final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() + .top(WindowRectParameters.TOP) + .left(WindowRectParameters.LEFT) + .bottom(WindowRectParameters.BOTTOM) + .right(WindowRectParameters.RIGHT) + .build(); + + return GetWindowRect.Result.getInstance(windowRect); + } + + @Test + @Override + public void testSerializeErrorObject() { + super.testSerializeErrorObject(); + } + + @Test + @Override + public void testDeserializeErrorObject() { + super.testDeserializeErrorObject(); + } + + @NotNull + @Override + public qlua.rpc.GetWindowRect.Result getErrorObject_AsPbMessage() { + return qlua.rpc.GetWindowRect.Result.newBuilder().build(); + } + + @NotNull + @Override + public GetWindowRect.Result getErrorObject() { + return GetWindowRect.Result.getErrorInstance(); + } + + private static final class WindowRectParameters { + + private static final int TOP = 1; + private static final int LEFT = 2; + private static final int BOTTOM = 3; + private static final int RIGHT = 4; + } +} diff --git a/src/test/resources/json/GetWindowRect.result.error.json b/src/test/resources/json/GetWindowRect.result.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/GetWindowRect.result.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowRect.result.json b/src/test/resources/json/GetWindowRect.result.json index 85becef..add9b1b 100644 --- a/src/test/resources/json/GetWindowRect.result.json +++ b/src/test/resources/json/GetWindowRect.result.json @@ -1,6 +1,8 @@ { - "top" : 1, - "left" : 2, - "bottom" : 3, - "right" : 4 + "window_rect" : { + "top" : 1, + "left" : 2, + "bottom" : 3, + "right" : 4 + } } \ No newline at end of file From 61634bddc1407f6572c874d47b36d15674e60c5e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 01:15:09 +0300 Subject: [PATCH 314/549] Added a protobuf serde for GetWorkingFolder. --- .../rpc/api/messages/GetWorkingFolder.java | 12 ++++-- .../GetWorkingFolderRequestPbSerde.java | 42 +++++++++++++++++++ .../GetWorkingFolderResultPbSerde.java | 37 ++++++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../GetWorkingFolderRequestPbSerdeTest.java | 31 ++++++++++++++ .../GetWorkingFolderResultPbSerdeTest.java | 28 +++++++++++++ 6 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java index 2043a7f..a943f7c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java @@ -4,26 +4,30 @@ import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class GetWorkingFolder { private GetWorkingFolder() {} - public static enum Request { INSTANCE; } + public enum Request { INSTANCE; } @Value public static class Result { - @NonNull String workingFolder; + private static final String WORKING_FOLDER_FIELD = "working_folder"; - public Result(final @JsonProperty(value = "working_folder", required = true) String workingFolder) { + String workingFolder; + + public Result(@JsonProperty(value = WORKING_FOLDER_FIELD, required = true) @NonNull final String workingFolder) { this.workingFolder = workingFolder; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("working_folder", workingFolder) + .add(WORKING_FOLDER_FIELD, workingFolder) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java new file mode 100644 index 0000000..e00b766 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum GetWorkingFolderRequestPbSerde implements Serde { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WORKING_FOLDER; + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final GetWorkingFolder.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWorkingFolder.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return GetWorkingFolder.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java new file mode 100644 index 0000000..fe8c9fa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetWorkingFolderResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final GetWorkingFolder.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWorkingFolder.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.GetWorkingFolder.Result.parseFrom(data) ); + } + + @Override + public GetWorkingFolder.Result convertFromPb(@NotNull final qlua.rpc.GetWorkingFolder.Result result) { + return new GetWorkingFolder.Result( result.getWorkingFolder() ); + } + + @Override + public qlua.rpc.GetWorkingFolder.Result convertToPb(@NotNull final GetWorkingFolder.Result result) { + return qlua.rpc.GetWorkingFolder.Result.newBuilder() + .setWorkingFolder( result.getWorkingFolder() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index eb74557..6aff6e1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -199,6 +199,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetWindowCaption.Result.class, GetWindowCaptionResultPbSerde.INSTANCE); registerSerde(result, GetWindowRect.Request.class, GetWindowRectRequestPbSerde.INSTANCE); registerSerde(result, GetWindowRect.Result.class, GetWindowRectResultPbSerde.INSTANCE); + registerSerde(result, GetWorkingFolder.Request.class, GetWorkingFolderRequestPbSerde.INSTANCE); + registerSerde(result, GetWorkingFolder.Result.class, GetWorkingFolderResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java new file mode 100644 index 0000000..4347882 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class GetWorkingFolderRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.GET_WORKING_FOLDER; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return null; + } + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWorkingFolder.Request.class; + } + + @NotNull + @Override + public GetWorkingFolder.Request getTargetObject() { + return GetWorkingFolder.Request.INSTANCE; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java new file mode 100644 index 0000000..378d67f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import org.jetbrains.annotations.NotNull; + +public class GetWorkingFolderResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final String WORKING_FOLDER = "1"; + + @Override + public @NotNull Class getTargetObjectClass() { + return GetWorkingFolder.Result.class; + } + + @NotNull + @Override + public qlua.rpc.GetWorkingFolder.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetWorkingFolder.Result.newBuilder() + .setWorkingFolder(WORKING_FOLDER) + .build(); + } + + @NotNull + @Override + public GetWorkingFolder.Result getTargetObject() { + return new GetWorkingFolder.Result(WORKING_FOLDER); + } +} From a0e81452a5e464b15476a77d7414700adc1dc959 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 01:45:54 +0300 Subject: [PATCH 315/549] Added a protobuf serde for Highlight; moderately redone the JSON serde for Highlight for testing the corner cases. --- .../quik/lua/rpc/api/messages/Highlight.java | 44 +++++++++--- .../protobuf/HighlightRequestPbSerde.java | 67 +++++++++++++++++++ .../protobuf/HighlightResultPbSerde.java | 37 ++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../api/messages/HighlightJsonSerdeTest.java | 35 +++++----- .../protobuf/HighlightRequestPbSerdeTest.java | 52 ++++++++++++++ .../protobuf/HighlightResultPbSerdeTest.java | 51 ++++++++++++++ .../json/Highlight.result.false.json | 3 + ...result.json => Highlight.result.true.json} | 0 9 files changed, 267 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java create mode 100644 src/test/resources/json/Highlight.result.false.json rename src/test/resources/json/{Highlight.result.json => Highlight.result.true.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java index 4ee27e7..39792b9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java @@ -5,11 +5,19 @@ import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class Highlight { private Highlight() {} + private static final String T_ID_FIELD = "t_id"; + private static final String ROW_FIELD = "row"; + private static final String COL_FIELD = "col"; + private static final String B_COLOR_FIELD = "b_color"; + private static final String F_COLOR_FIELD = "f_color"; + private static final String TIMEOUT_FIELD = "timeout"; + @Value public static class Request { @@ -37,15 +45,16 @@ private Request( this.timeout = timeout; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("row", row) - .add("col", col) - .add("b_color", bColor) - .add("f_color", fColor) - .add("timeout", timeout) + .add(T_ID_FIELD, tId) + .add(ROW_FIELD, row) + .add(COL_FIELD, col) + .add(B_COLOR_FIELD, bColor) + .add(F_COLOR_FIELD, fColor) + .add(TIMEOUT_FIELD, timeout) .toString(); } } @@ -53,18 +62,37 @@ public String toString() { @Value public static class Result { + private static final String RESULT_FIELD = "result"; + boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT_FIELD, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java new file mode 100644 index 0000000..1715a6c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum HighlightRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.HIGHLIGHT; + + @Override + public byte[] serialize(final Highlight.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Highlight.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.Highlight.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public Highlight.Request convertFromPb(@NotNull final qlua.rpc.Highlight.Request request) { + + return Highlight.Request.builder() + .tId( request.getTId() ) + .row( request.getRow() ) + .col( request.getCol() ) + .bColor( request.getBColor() ) + .fColor( request.getFColor() ) + .timeout( request.getTimeout() ) + .build(); + } + + @Override + public qlua.rpc.Highlight.Request convertToPb(@NotNull final Highlight.Request request) { + + return qlua.rpc.Highlight.Request.newBuilder() + .setTId( request.getTId() ) + .setRow( request.getRow() ) + .setCol( request.getCol() ) + .setBColor( request.getBColor() ) + .setFColor( request.getFColor() ) + .setTimeout( request.getTimeout() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java new file mode 100644 index 0000000..e3de7db --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum HighlightResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final Highlight.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Highlight.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.Highlight.Result.parseFrom(data) ); + } + + @Override + public Highlight.Result convertFromPb(@NotNull final qlua.rpc.Highlight.Result result) { + return Highlight.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.Highlight.Result convertToPb(@NotNull final Highlight.Result result) { + return qlua.rpc.Highlight.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 6aff6e1..6a1194d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -201,6 +201,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetWindowRect.Result.class, GetWindowRectResultPbSerde.INSTANCE); registerSerde(result, GetWorkingFolder.Request.class, GetWorkingFolderRequestPbSerde.INSTANCE); registerSerde(result, GetWorkingFolder.Result.class, GetWorkingFolderResultPbSerde.INSTANCE); + registerSerde(result, Highlight.Request.class, HighlightRequestPbSerde.INSTANCE); + registerSerde(result, Highlight.Result.class, HighlightResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java index 100614c..ac23f8f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java @@ -16,9 +16,13 @@ public class HighlightJsonSerdeTest { private static ObjectMapper sut; private static Highlight.Request requestObj; - private static Highlight.Result resultObj; private static String requestJson; - private static String resultJson; + + private static Highlight.Result trueObj; + private static String trueJson; + + private static Highlight.Result falseObj; + private static String falseJson; @BeforeClass public static void globalSetup() throws IOException { @@ -34,28 +38,27 @@ public static void globalSetup() throws IOException { .fColor(5) .timeout(6) .build(); + requestJson = Resources.toString(Resources.getResource("json/Highlight.request.json"), Charsets.UTF_8); - resultObj = new Highlight.Result(true); + trueObj = Highlight.Result.getInstance(true); + trueJson = Resources.toString(Resources.getResource("json/Highlight.result.true.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/Highlight.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/Highlight.result.json"), Charsets.UTF_8); + falseObj = Highlight.Result.getInstance(false); + falseJson = Resources.toString(Resources.getResource("json/Highlight.result.false.json"), Charsets.UTF_8); } @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + public void testSerialize_Request() throws IOException { + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test - public void testResultDeserialize() throws IOException { - - final Highlight.Result actualResultObj = sut.readValue(resultJson, Highlight.Result.class); + public void testDeserialize_TrueResult() throws IOException { + assertEquals(trueObj, sut.readValue(trueJson, Highlight.Result.class)); + } - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserialize_FalseResult() throws IOException { + assertEquals(falseObj, sut.readValue(falseJson, Highlight.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java new file mode 100644 index 0000000..4955929 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java @@ -0,0 +1,52 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class HighlightRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + private static final int ROW = 2; + private static final int COL = 3; + private static final int B_COLOR = 4; + private static final int F_COLOR = 5; + private static final int TIMEOUT = 6; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.HIGHLIGHT; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.Highlight.Request.newBuilder() + .setTId(T_ID) + .setRow(ROW) + .setCol(COL) + .setBColor(B_COLOR) + .setFColor(F_COLOR) + .setTimeout(TIMEOUT) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return Highlight.Request.class; + } + + @NotNull + @Override + public Highlight.Request getTargetObject() { + return Highlight.Request.builder() + .tId(T_ID) + .row(ROW) + .col(COL) + .bColor(B_COLOR) + .fColor(F_COLOR) + .timeout(TIMEOUT) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java new file mode 100644 index 0000000..2ba1950 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class HighlightResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final Highlight.Result TRUE_RESULT = Highlight.Result.getInstance(true); + private static final qlua.rpc.Highlight.Result TRUE_PB_RESUlT = + qlua.rpc.Highlight.Result.newBuilder().setResult(true).build(); + + private static final Highlight.Result FALSE_RESULT = Highlight.Result.getInstance(false); + private static final qlua.rpc.Highlight.Result FALSE_PB_RESUlT = + qlua.rpc.Highlight.Result.newBuilder().setResult(false).build(); + + @Override + public @NotNull Class getTargetObjectClass() { + return Highlight.Result.class; + } + + @NotNull + @Override + public qlua.rpc.Highlight.Result getTargetObjectAsPbMessage() { + return TRUE_PB_RESUlT; + } + + @NotNull + @Override + public Highlight.Result getTargetObject() { + return TRUE_RESULT; + } + + @Test + public void testSerialize_FalseResult() { + + assertTrue( + Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) + ); + } + + @Test + public void testDeserialize_FalseResult() { + assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); + } +} diff --git a/src/test/resources/json/Highlight.result.false.json b/src/test/resources/json/Highlight.result.false.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/Highlight.result.false.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/Highlight.result.json b/src/test/resources/json/Highlight.result.true.json similarity index 100% rename from src/test/resources/json/Highlight.result.json rename to src/test/resources/json/Highlight.result.true.json From 0cd484a6cf77e139c89c3a2ee5a5768e5cd98632 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 03:33:10 +0300 Subject: [PATCH 316/549] Added a protobuf serde for InsertRow. --- .../quik/lua/rpc/api/messages/InsertRow.java | 16 +++-- .../protobuf/InsertRowRequestPbSerde.java | 59 +++++++++++++++++++ .../protobuf/InsertRowResultPbSerde.java | 37 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../protobuf/InsertRowRequestPbSerdeTest.java | 40 +++++++++++++ .../protobuf/InsertRowResultPbSerdeTest.java | 28 +++++++++ 6 files changed, 178 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java index 7ab9579..87b8c6c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java @@ -5,6 +5,7 @@ import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class InsertRow { @@ -13,6 +14,9 @@ private InsertRow() {} @Value public static class Request { + private static final String T_ID_FIELD = "t_id"; + private static final String KEY_FIELD = "key"; + int tId; int key; @@ -23,11 +27,12 @@ private Request(final int tId, final int key) { this.key = key; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("key", key) + .add(T_ID_FIELD, tId) + .add(KEY_FIELD, key) .toString(); } } @@ -35,17 +40,20 @@ public String toString() { @Value public static class Result { + private static final String RESULT_FIELD = "result"; + int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(final @JsonProperty(value = RESULT_FIELD, required = true) int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT_FIELD, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java new file mode 100644 index 0000000..75a04c0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum InsertRowRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.INSERT_ROW; + + @Override + public byte[] serialize(final InsertRow.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public InsertRow.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.InsertRow.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public InsertRow.Request convertFromPb(@NotNull final qlua.rpc.InsertRow.Request request) { + + return InsertRow.Request.builder() + .tId( request.getTId() ) + .key( request.getKey() ) + .build(); + } + + @Override + public qlua.rpc.InsertRow.Request convertToPb(@NotNull final InsertRow.Request request) { + + return qlua.rpc.InsertRow.Request.newBuilder() + .setTId( request.getTId() ) + .setKey( request.getKey() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java new file mode 100644 index 0000000..522d81f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum InsertRowResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final InsertRow.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public InsertRow.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.InsertRow.Result.parseFrom(data) ); + } + + @Override + public InsertRow.Result convertFromPb(@NotNull final qlua.rpc.InsertRow.Result result) { + return new InsertRow.Result( result.getResult() ); + } + + @Override + public qlua.rpc.InsertRow.Result convertToPb(@NotNull final InsertRow.Result result) { + return qlua.rpc.InsertRow.Result.newBuilder() + .setResult( result.getResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 6a1194d..56f929e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -203,6 +203,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, GetWorkingFolder.Result.class, GetWorkingFolderResultPbSerde.INSTANCE); registerSerde(result, Highlight.Request.class, HighlightRequestPbSerde.INSTANCE); registerSerde(result, Highlight.Result.class, HighlightResultPbSerde.INSTANCE); + registerSerde(result, InsertRow.Request.class, InsertRowRequestPbSerde.INSTANCE); + registerSerde(result, InsertRow.Result.class, InsertRowResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java new file mode 100644 index 0000000..c4b96a2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class InsertRowRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + private static final int KEY = 2; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.INSERT_ROW; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.InsertRow.Request.newBuilder() + .setTId(T_ID) + .setKey(KEY) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return InsertRow.Request.class; + } + + @NotNull + @Override + public InsertRow.Request getTargetObject() { + return InsertRow.Request.builder() + .tId(T_ID) + .key(KEY) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java new file mode 100644 index 0000000..8081955 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import org.jetbrains.annotations.NotNull; + +public class InsertRowResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Class getTargetObjectClass() { + return InsertRow.Result.class; + } + + @NotNull + @Override + public qlua.rpc.InsertRow.Result getTargetObjectAsPbMessage() { + return qlua.rpc.InsertRow.Result.newBuilder() + .setResult(RESULT) + .build(); + } + + @NotNull + @Override + public InsertRow.Result getTargetObject() { + return new InsertRow.Result(RESULT); + } +} From 2b6b2952024ec9ee90ed96654a9af50f09252830 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 14:56:10 +0300 Subject: [PATCH 317/549] Added a protobuf serde for IsConnected; changed the names of some test methods on more BDD'ish ones. --- .../lua/rpc/api/messages/IsConnected.java | 34 +++++- .../protobuf/IsConnectedRequestPbSerde.java | 42 ++++++++ .../protobuf/IsConnectedResultPbSerde.java | 37 +++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../messages/IsConnectedJsonSerdeTest.java | 102 ++++++++++++++---- .../serde/protobuf/AbstractPbSerdeTest.java | 12 +-- .../protobuf/GetMoneyExResultPbSerdeTest.java | 8 +- .../GetOrderByNumberResultPbSerdeTest.java | 8 +- .../GetSecurityInfoResultPbSerdeTest.java | 8 +- .../GetTableSizeResultPbSerdeTest.java | 8 +- .../GetWindowCaptionResultPbSerdeTest.java | 8 +- .../GetWindowRectResultPbSerdeTest.java | 8 +- .../IsConnectedRequestPbSerdeTest.java | 31 ++++++ .../IsConnectedResultPbSerdeTest.java | 51 +++++++++ .../serde/protobuf/SecurityPbSerdeTest.java | 8 +- .../request.json} | 0 .../json/isConnected/result.false.json | 3 + .../json/isConnected/result.garbage.json | 3 + .../result.missing.is_connected.json | 1 + .../result.true.json} | 0 20 files changed, 315 insertions(+), 59 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java rename src/test/resources/json/{isConnected.request.json => isConnected/request.json} (100%) create mode 100644 src/test/resources/json/isConnected/result.false.json create mode 100644 src/test/resources/json/isConnected/result.garbage.json create mode 100644 src/test/resources/json/isConnected/result.missing.is_connected.json rename src/test/resources/json/{isConnected.result.json => isConnected/result.true.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java index ed2dea8..c8e070b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java @@ -4,28 +4,56 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class IsConnected { private IsConnected() {} - public static enum Request { INSTANCE; } + public enum Request { INSTANCE; } @Value public static class Result { + private static final String IS_CONNECTED_FIELD = "is_connected"; + int isConnected; @JsonCreator - public Result(final @JsonProperty(value = "is_connected", required = true) int isConnected) { + public static Result getInstance(@JsonProperty(value = IS_CONNECTED_FIELD, required = true) final int isConnected) { + + switch (isConnected) { + case 0: + return InstanceHolder.FALSE; + case 1: + return InstanceHolder.TRUE; + default: + return new Result(isConnected); + } + } + + private Result(final int isConnected) { this.isConnected = isConnected; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("is_connected", isConnected) + .add(IS_CONNECTED_FIELD, isConnected) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(1); + private static final Result FALSE = new Result(0); + + // sanity check + static { + assert TRUE.isConnected == 1; + assert FALSE.isConnected == 0; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java new file mode 100644 index 0000000..291cb17 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum IsConnectedRequestPbSerde implements Serde { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_CONNECTED; + private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); + + @Override + public byte[] serialize(final IsConnected.Request request) { + return PB_SERIALIZED_FORM.clone(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsConnected.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return IsConnected.Request.INSTANCE; + } + + private static byte[] createPbSerializedForm() { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .build() + .toByteArray(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java new file mode 100644 index 0000000..feda0ce --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum IsConnectedResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final IsConnected.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsConnected.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.IsConnected.Result.parseFrom(data) ); + } + + @Override + public IsConnected.Result convertFromPb(@NotNull final qlua.rpc.IsConnected.Result result) { + return IsConnected.Result.getInstance( result.getIsConnected() ); + } + + @Override + public qlua.rpc.IsConnected.Result convertToPb(@NotNull final IsConnected.Result result) { + return qlua.rpc.IsConnected.Result.newBuilder() + .setIsConnected( result.getIsConnected() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 56f929e..a76ee21 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -205,6 +205,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, Highlight.Result.class, HighlightResultPbSerde.INSTANCE); registerSerde(result, InsertRow.Request.class, InsertRowRequestPbSerde.INSTANCE); registerSerde(result, InsertRow.Result.class, InsertRowResultPbSerde.INSTANCE); + registerSerde(result, IsConnected.Request.class, IsConnectedRequestPbSerde.INSTANCE); + registerSerde(result, IsConnected.Result.class, IsConnectedResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java index c572eb2..1bfd4c3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java @@ -2,10 +2,14 @@ import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.exc.MismatchedInputException; import com.google.common.base.Charsets; import com.google.common.io.Resources; -import org.junit.BeforeClass; +import lombok.SneakyThrows; +import org.hamcrest.Matchers; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import java.io.IOException; @@ -13,42 +17,96 @@ public class IsConnectedJsonSerdeTest { - private static ObjectMapper sut; + private static final ObjectMapper SUT = getSUT(); - private static IsConnected.Request requestObj; - private static IsConnected.Result resultObj; - private static String requestJson; - private static String resultJson; + private static final IsConnected.Request OBJ_REQUEST = IsConnected.Request.INSTANCE; + private static final String JSON_REQUEST = getJsonOfRequest(); - @BeforeClass - public static void globalSetup() throws IOException { + private static final IsConnected.Result OBJ_TRUE_RESULT = getObjOfTrueResult(); + private static final String JSON_TRUE_RESULT = getJsonOfTrueResult(); - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); + private static final IsConnected.Result OBJ_FALSE_RESULT = getObjOfFalseResult(); + private static final String JSON_FALSE_RESULT = getJsonOfFalseResult(); - requestObj = IsConnected.Request.INSTANCE; + private static final IsConnected.Result OBJ_GARBAGE_RESULT = getObjOfGarbageResult(); + private static final String JSON_GARBAGE_RESULT = getJsonOfGarbageResult(); - resultObj = new IsConnected.Result(1); + private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJsonOfResultWithMissingFieldIsConnected(); - requestJson = - Resources.toString(Resources.getResource("json/isConnected.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/isConnected.result.json"), Charsets.UTF_8); + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void shouldSerialize_ObjectOf_Request_To_JsonOf_Request() throws IOException { + assertEquals(JSON_REQUEST, SUT.writerWithDefaultPrettyPrinter().writeValueAsString(OBJ_REQUEST)); } @Test - public void testRequestSerialize() throws IOException { + public void shouldDeserialize_JsonOf_TrueResult_To_ObjectOf_TrueResult() throws IOException { + assertEquals(OBJ_TRUE_RESULT, SUT.readValue(JSON_TRUE_RESULT, IsConnected.Result.class)); + } - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + @Test + public void shouldDeserialize_JsonOf_FalseResult_To_ObjectOf_FalseResult() throws IOException { + assertEquals(OBJ_FALSE_RESULT, SUT.readValue(JSON_FALSE_RESULT, IsConnected.Result.class)); + } - assertEquals(requestJson, actualRequestJson); + @Test + public void shouldDeserialize_JsonOf_GarbageResult_To_ObjectOf_GarbageResult() throws IOException { + assertEquals(OBJ_GARBAGE_RESULT, SUT.readValue(JSON_GARBAGE_RESULT, IsConnected.Result.class)); } @Test - public void testResultDeserialize() throws IOException { + public void shouldFailOn_deserializationOf_JsonOf_Result_WithMissingField_IsConnected() throws IOException { + + thrown.expect(MismatchedInputException.class); + thrown.expectMessage(Matchers.containsString("Missing required creator property 'is_connected'")); + + SUT.readValue(JSON_RESULT_MISSING_FIELD_IS_CONNECTED, IsConnected.Result.class); + } + + @SneakyThrows(IOException.class) + private static String getJsonOfResultWithMissingFieldIsConnected() { + return Resources.toString(Resources.getResource("json/isConnected/result.missing.is_connected.json"), Charsets.UTF_8); + } + + private static ObjectMapper getSUT() { + + final ObjectMapper result = new ObjectMapper(); + result.registerModule(new QluaJsonModule()); - final IsConnected.Result actualResultObj = sut.readValue(resultJson, IsConnected.Result.class); + return result; + } + + private static IsConnected.Result getObjOfGarbageResult() { + return IsConnected.Result.getInstance(123); + } + + private static IsConnected.Result getObjOfFalseResult() { + return IsConnected.Result.getInstance(0); + } + + private static IsConnected.Result getObjOfTrueResult() { + return IsConnected.Result.getInstance(1); + } + + @SneakyThrows(IOException.class) + private static String getJsonOfGarbageResult() { + return Resources.toString(Resources.getResource("json/isConnected/result.garbage.json"), Charsets.UTF_8); + } + + @SneakyThrows(IOException.class) + private static String getJsonOfFalseResult() { + return Resources.toString(Resources.getResource("json/isConnected/result.false.json"), Charsets.UTF_8); + } + + @SneakyThrows(IOException.class) + private static String getJsonOfTrueResult() { + return Resources.toString(Resources.getResource("json/isConnected/result.true.json"), Charsets.UTF_8); + } - assertEquals(resultObj, actualResultObj); + @SneakyThrows(IOException.class) + private static String getJsonOfRequest() { + return Resources.toString(Resources.getResource("json/isConnected/request.json"), Charsets.UTF_8); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java index e17d32a..4f5096e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerdeTest.java @@ -24,7 +24,7 @@ public abstract class AbstractPbSerdeTest { + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.IS_CONNECTED; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return null; + } + + @Override + public @NotNull Class getTargetObjectClass() { + return IsConnected.Request.class; + } + + @NotNull + @Override + public IsConnected.Request getTargetObject() { + return IsConnected.Request.INSTANCE; + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java new file mode 100644 index 0000000..f0699fa --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class IsConnectedResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final IsConnected.Result TRUE_RESULT = IsConnected.Result.getInstance(1); + private static final qlua.rpc.IsConnected.Result TRUE_PB_RESUlT = + qlua.rpc.IsConnected.Result.newBuilder().setIsConnected(1).build(); + + private static final IsConnected.Result FALSE_RESULT = IsConnected.Result.getInstance(0); + private static final qlua.rpc.IsConnected.Result FALSE_PB_RESUlT = + qlua.rpc.IsConnected.Result.newBuilder().setIsConnected(0).build(); + + @Override + public @NotNull Class getTargetObjectClass() { + return IsConnected.Result.class; + } + + @NotNull + @Override + public qlua.rpc.IsConnected.Result getTargetObjectAsPbMessage() { + return TRUE_PB_RESUlT; + } + + @NotNull + @Override + public IsConnected.Result getTargetObject() { + return TRUE_RESULT; + } + + @Test + public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { + + assertTrue( + Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) + ); + } + + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { + assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java index 59ac8f4..5bef0d4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java @@ -65,14 +65,14 @@ public Security getTargetObject() { @Test @Override - public void testSerializeErrorObject() { - super.testSerializeErrorObject(); + public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { + super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); } @Test @Override - public void testDeserializeErrorObject() { - super.testDeserializeErrorObject(); + public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { + super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); } @NotNull diff --git a/src/test/resources/json/isConnected.request.json b/src/test/resources/json/isConnected/request.json similarity index 100% rename from src/test/resources/json/isConnected.request.json rename to src/test/resources/json/isConnected/request.json diff --git a/src/test/resources/json/isConnected/result.false.json b/src/test/resources/json/isConnected/result.false.json new file mode 100644 index 0000000..4826568 --- /dev/null +++ b/src/test/resources/json/isConnected/result.false.json @@ -0,0 +1,3 @@ +{ + "is_connected" : 0 +} \ No newline at end of file diff --git a/src/test/resources/json/isConnected/result.garbage.json b/src/test/resources/json/isConnected/result.garbage.json new file mode 100644 index 0000000..c2f314b --- /dev/null +++ b/src/test/resources/json/isConnected/result.garbage.json @@ -0,0 +1,3 @@ +{ + "is_connected" : 123 +} \ No newline at end of file diff --git a/src/test/resources/json/isConnected/result.missing.is_connected.json b/src/test/resources/json/isConnected/result.missing.is_connected.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/isConnected/result.missing.is_connected.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/isConnected.result.json b/src/test/resources/json/isConnected/result.true.json similarity index 100% rename from src/test/resources/json/isConnected.result.json rename to src/test/resources/json/isConnected/result.true.json From 29cc953c1ee7129298b2df5fcb94d0e5d999ed9b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 15:20:47 +0300 Subject: [PATCH 318/549] Added a protobuf serde for IsSubscribedLevel2Quotes; moderately redone the JSON serde for IsSubscribedLevel2Quotes for testing the corner cases. --- .../messages/IsSubscribedLevel2Quotes.java | 38 +++++++++--- ...sSubscribedLevel2QuotesRequestPbSerde.java | 59 +++++++++++++++++++ ...IsSubscribedLevel2QuotesResultPbSerde.java | 37 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + ...IsSubscribedLevel2QuotesJsonSerdeTest.java | 33 ++++++----- ...scribedLevel2QuotesRequestPbSerdeTest.java | 40 +++++++++++++ ...bscribedLevel2QuotesResultPbSerdeTest.java | 51 ++++++++++++++++ ...bscribed_Level_II_Quotes.result.false.json | 3 + ...bscribed_Level_II_Quotes.result.true.json} | 0 9 files changed, 241 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java create mode 100644 src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json rename src/test/resources/json/{IsSubscribed_Level_II_Quotes.result.json => IsSubscribed_Level_II_Quotes.result.true.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java index ec71be7..319a4e4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java @@ -6,6 +6,7 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class IsSubscribedLevel2Quotes { @@ -14,21 +15,25 @@ private IsSubscribedLevel2Quotes() {} @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; + private static final String CLASS_CODE_FIELD = "class_code"; + private static final String SEC_CODE_FIELD = "sec_code"; + + String classCode; + String secCode; @Builder - private Request(final String classCode, final String secCode) { + private Request(final @NonNull String classCode, final @NonNull String secCode) { this.classCode = classCode; this.secCode = secCode; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE_FIELD, classCode) + .add(SEC_CODE_FIELD, secCode) .toString(); } } @@ -36,18 +41,37 @@ public String toString() { @Value public static class Result { + private static final String RESULT_FIELD = "result"; + boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT_FIELD, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java new file mode 100644 index 0000000..b662f35 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java @@ -0,0 +1,59 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum IsSubscribedLevel2QuotesRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES; + + @Override + public byte[] serialize(final IsSubscribedLevel2Quotes.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsSubscribedLevel2Quotes.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.IsSubscribedLevelIIQuotes.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public IsSubscribedLevel2Quotes.Request convertFromPb(@NotNull final qlua.rpc.IsSubscribedLevelIIQuotes.Request request) { + + return IsSubscribedLevel2Quotes.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .build(); + } + + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Request convertToPb(@NotNull final IsSubscribedLevel2Quotes.Request request) { + + return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java new file mode 100644 index 0000000..b2416ff --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum IsSubscribedLevel2QuotesResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final IsSubscribedLevel2Quotes.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsSubscribedLevel2Quotes.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.IsSubscribedLevelIIQuotes.Result.parseFrom(data) ); + } + + @Override + public IsSubscribedLevel2Quotes.Result convertFromPb(@NotNull final qlua.rpc.IsSubscribedLevelIIQuotes.Result result) { + return IsSubscribedLevel2Quotes.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Result convertToPb(@NotNull final IsSubscribedLevel2Quotes.Result result) { + return qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index a76ee21..5bbf75d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -207,6 +207,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, InsertRow.Result.class, InsertRowResultPbSerde.INSTANCE); registerSerde(result, IsConnected.Request.class, IsConnectedRequestPbSerde.INSTANCE); registerSerde(result, IsConnected.Result.class, IsConnectedResultPbSerde.INSTANCE); + registerSerde(result, IsSubscribedLevel2Quotes.Request.class, IsSubscribedLevel2QuotesRequestPbSerde.INSTANCE); + registerSerde(result, IsSubscribedLevel2Quotes.Result.class, IsSubscribedLevel2QuotesResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java index d6b9249..5e44adf 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java @@ -16,9 +16,13 @@ public class IsSubscribedLevel2QuotesJsonSerdeTest { private static ObjectMapper sut; private static IsSubscribedLevel2Quotes.Request requestObj; - private static IsSubscribedLevel2Quotes.Result resultObj; private static String requestJson; - private static String resultJson; + + private static IsSubscribedLevel2Quotes.Result trueResultObj; + private static String trueResultJson; + + private static IsSubscribedLevel2Quotes.Result falseResultObj; + private static String falseResultJson; @BeforeClass public static void globalSetup() throws IOException { @@ -30,28 +34,27 @@ public static void globalSetup() throws IOException { .classCode("1") .secCode("2") .build(); + requestJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.request.json"), Charsets.UTF_8); - resultObj = new IsSubscribedLevel2Quotes.Result(true); + trueResultObj = IsSubscribedLevel2Quotes.Result.getInstance(true); + trueResultJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.true.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.json"), Charsets.UTF_8); + falseResultObj = IsSubscribedLevel2Quotes.Result.getInstance(false); + falseResultJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.false.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test - public void testResultDeserialize() throws IOException { - - final IsSubscribedLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, IsSubscribedLevel2Quotes.Result.class); + public void testTrueResultDeserialize() throws IOException { + assertEquals(trueResultObj, sut.readValue(trueResultJson, IsSubscribedLevel2Quotes.Result.class)); + } - assertEquals(resultObj, actualResultObj); + @Test + public void testFalseResultDeserialize() throws IOException { + assertEquals(falseResultObj, sut.readValue(falseResultJson, IsSubscribedLevel2Quotes.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java new file mode 100644 index 0000000..6c55d51 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class IsSubscribedLevel2QuotesRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return IsSubscribedLevel2Quotes.Request.class; + } + + @NotNull + @Override + public IsSubscribedLevel2Quotes.Request getTargetObject() { + return IsSubscribedLevel2Quotes.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java new file mode 100644 index 0000000..c72ad1a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class IsSubscribedLevel2QuotesResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final IsSubscribedLevel2Quotes.Result TRUE_RESULT = IsSubscribedLevel2Quotes.Result.getInstance(true); + private static final qlua.rpc.IsSubscribedLevelIIQuotes.Result TRUE_PB_RESUlT = + qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder().setResult(true).build(); + + private static final IsSubscribedLevel2Quotes.Result FALSE_RESULT = IsSubscribedLevel2Quotes.Result.getInstance(false); + private static final qlua.rpc.IsSubscribedLevelIIQuotes.Result FALSE_PB_RESUlT = + qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder().setResult(false).build(); + + @Override + public @NotNull Class getTargetObjectClass() { + return IsSubscribedLevel2Quotes.Result.class; + } + + @NotNull + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Result getTargetObjectAsPbMessage() { + return TRUE_PB_RESUlT; + } + + @NotNull + @Override + public IsSubscribedLevel2Quotes.Result getTargetObject() { + return TRUE_RESULT; + } + + @Test + public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { + + assertTrue( + Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) + ); + } + + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { + assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); + } +} diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.true.json similarity index 100% rename from src/test/resources/json/IsSubscribed_Level_II_Quotes.result.json rename to src/test/resources/json/IsSubscribed_Level_II_Quotes.result.true.json From 70a7fe2fa74710692ed0c4e311d4e4e8f8a14916 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 15:31:53 +0300 Subject: [PATCH 319/549] Added a protobuf serde for IsWindowClosed; Rewritten the JSON serde for IsWindowClosed to test the Result's corner cases. --- .../lua/rpc/api/messages/IsWindowClosed.java | 31 +++++++++-- .../IsWindowClosedRequestPbSerde.java | 54 +++++++++++++++++++ .../protobuf/IsWindowClosedResultPbSerde.java | 37 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../messages/IsWindowClosedJsonSerdeTest.java | 33 ++++++------ .../IsWindowClosedRequestPbSerdeTest.java | 35 ++++++++++++ .../IsWindowClosedResultPbSerdeTest.java | 51 ++++++++++++++++++ .../json/IsWindowClosed.result.false.json | 3 ++ ...t.json => IsWindowClosed.result.true.json} | 0 9 files changed, 228 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java create mode 100644 src/test/resources/json/IsWindowClosed.result.false.json rename src/test/resources/json/{IsWindowClosed.result.json => IsWindowClosed.result.true.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java index 8fda40a..cd817ec 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java @@ -1,8 +1,10 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class IsWindowClosed { @@ -11,12 +13,15 @@ private IsWindowClosed() {} @Value public static class Request { + private static final String T_ID_FIELD = "t_id"; + int tId; + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID_FIELD, tId) .toString(); } } @@ -24,17 +29,37 @@ public String toString() { @Value public static class Result { + private static final String RESULT_FIELD = "result"; + boolean result; - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT_FIELD, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java new file mode 100644 index 0000000..06f355e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java @@ -0,0 +1,54 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum IsWindowClosedRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_WINDOW_CLOSED; + + @Override + public byte[] serialize(final IsWindowClosed.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsWindowClosed.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.IsWindowClosed.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public IsWindowClosed.Request convertFromPb(@NotNull final qlua.rpc.IsWindowClosed.Request request) { + return new IsWindowClosed.Request(request.getTId()); + } + + @Override + public qlua.rpc.IsWindowClosed.Request convertToPb(@NotNull final IsWindowClosed.Request request) { + + return qlua.rpc.IsWindowClosed.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java new file mode 100644 index 0000000..fbde2eb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum IsWindowClosedResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final IsWindowClosed.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsWindowClosed.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.IsWindowClosed.Result.parseFrom(data) ); + } + + @Override + public IsWindowClosed.Result convertFromPb(@NotNull final qlua.rpc.IsWindowClosed.Result result) { + return IsWindowClosed.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.IsWindowClosed.Result convertToPb(@NotNull final IsWindowClosed.Result result) { + return qlua.rpc.IsWindowClosed.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 5bbf75d..e55110b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -209,6 +209,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, IsConnected.Result.class, IsConnectedResultPbSerde.INSTANCE); registerSerde(result, IsSubscribedLevel2Quotes.Request.class, IsSubscribedLevel2QuotesRequestPbSerde.INSTANCE); registerSerde(result, IsSubscribedLevel2Quotes.Result.class, IsSubscribedLevel2QuotesResultPbSerde.INSTANCE); + registerSerde(result, IsWindowClosed.Request.class, IsWindowClosedRequestPbSerde.INSTANCE); + registerSerde(result, IsWindowClosed.Result.class, IsWindowClosedResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java index 0e176ca..88d939b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java @@ -16,9 +16,13 @@ public class IsWindowClosedJsonSerdeTest { private static ObjectMapper sut; private static IsWindowClosed.Request requestObj; - private static IsWindowClosed.Result resultObj; private static String requestJson; - private static String resultJson; + + private static IsWindowClosed.Result trueResultObj; + private static String trueResultJson; + + private static IsWindowClosed.Result falseResultObj; + private static String falseResultJson; @BeforeClass public static void globalSetup() throws IOException { @@ -27,28 +31,27 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); requestObj = new IsWindowClosed.Request(1); + requestJson = Resources.toString(Resources.getResource("json/IsWindowClosed.request.json"), Charsets.UTF_8); - resultObj = new IsWindowClosed.Result(true); + trueResultObj = IsWindowClosed.Result.getInstance(true); + trueResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.true.json"), Charsets.UTF_8); - requestJson = - Resources.toString(Resources.getResource("json/IsWindowClosed.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/IsWindowClosed.result.json"), Charsets.UTF_8); + falseResultObj = IsWindowClosed.Result.getInstance(false); + falseResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.false.json"), Charsets.UTF_8); } @Test public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); + assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); } @Test - public void testResultDeserialize() throws IOException { - - final IsWindowClosed.Result actualResultObj = sut.readValue(resultJson, IsWindowClosed.Result.class); + public void testTrueResultDeserialize() throws IOException { + assertEquals(trueResultObj, sut.readValue(trueResultJson, IsWindowClosed.Result.class)); + } - assertEquals(resultObj, actualResultObj); + @Test + public void testFalseResultDeserialize() throws IOException { + assertEquals(falseResultObj, sut.readValue(falseResultJson, IsWindowClosed.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java new file mode 100644 index 0000000..3f59fb4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class IsWindowClosedRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final int T_ID = 1; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.IS_WINDOW_CLOSED; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + return qlua.rpc.IsWindowClosed.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return IsWindowClosed.Request.class; + } + + @NotNull + @Override + public IsWindowClosed.Request getTargetObject() { + return new IsWindowClosed.Request(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java new file mode 100644 index 0000000..0a23b43 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class IsWindowClosedResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final IsWindowClosed.Result TRUE_RESULT = IsWindowClosed.Result.getInstance(true); + private static final qlua.rpc.IsWindowClosed.Result TRUE_PB_RESUlT = + qlua.rpc.IsWindowClosed.Result.newBuilder().setResult(true).build(); + + private static final IsWindowClosed.Result FALSE_RESULT = IsWindowClosed.Result.getInstance(false); + private static final qlua.rpc.IsWindowClosed.Result FALSE_PB_RESUlT = + qlua.rpc.IsWindowClosed.Result.newBuilder().setResult(false).build(); + + @Override + public @NotNull Class getTargetObjectClass() { + return IsWindowClosed.Result.class; + } + + @NotNull + @Override + public qlua.rpc.IsWindowClosed.Result getTargetObjectAsPbMessage() { + return TRUE_PB_RESUlT; + } + + @NotNull + @Override + public IsWindowClosed.Result getTargetObject() { + return TRUE_RESULT; + } + + @Test + public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { + + assertTrue( + Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) + ); + } + + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { + assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); + } +} diff --git a/src/test/resources/json/IsWindowClosed.result.false.json b/src/test/resources/json/IsWindowClosed.result.false.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/IsWindowClosed.result.false.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.json b/src/test/resources/json/IsWindowClosed.result.true.json similarity index 100% rename from src/test/resources/json/IsWindowClosed.result.json rename to src/test/resources/json/IsWindowClosed.result.true.json From dc7ed817775447e4e64b52d3452cf3f1950a8242 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 16:03:47 +0300 Subject: [PATCH 320/549] Changed IsWindowClosed.Result to accomodate the return of nil from the target QLua function. --- .../lua/rpc/api/messages/IsWindowClosed.java | 69 +++++++++++++++++-- .../protobuf/IsWindowClosedResultPbSerde.java | 24 +++++-- src/main/proto/qlua/rpc/IsWindowClosed.proto | 7 +- .../messages/IsWindowClosedJsonSerdeTest.java | 15 +++- .../IsWindowClosedResultPbSerdeTest.java | 29 ++++++-- .../json/IsWindowClosed.result.error.json | 1 + .../json/IsWindowClosed.result.false.json | 4 +- .../json/IsWindowClosed.result.true.json | 4 +- 8 files changed, 133 insertions(+), 20 deletions(-) create mode 100644 src/test/resources/json/IsWindowClosed.result.error.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java index cd817ec..f62cd9b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; public final class IsWindowClosed { @@ -27,18 +28,18 @@ public String toString() { } @Value - public static class Result { + public static class WindowClosed { private static final String RESULT_FIELD = "result"; boolean result; @JsonCreator - public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + public static WindowClosed getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } - private Result(final boolean result) { + private WindowClosed(final boolean result) { this.result = result; } @@ -52,8 +53,8 @@ public String toString() { private static final class InstanceHolder { - private static final Result TRUE = new Result(true); - private static final Result FALSE = new Result(false); + private static final WindowClosed TRUE = new WindowClosed(true); + private static final WindowClosed FALSE = new WindowClosed(false); // sanity check static { @@ -62,4 +63,62 @@ private static final class InstanceHolder { } } } + + @Value + public static class Result { + + private static final String WINDOW_CLOSED_FIELD = "window_closed"; + + WindowClosed windowClosed; + + @JsonCreator + public static Result getInstance(@JsonProperty(value = WINDOW_CLOSED_FIELD) final WindowClosed windowClosed) { + + if (isError(windowClosed)) { + return InstanceHolder.ERROR; + } + + return windowClosed.result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final WindowClosed windowClosed) { + this.windowClosed = windowClosed; + } + + @Contract(pure = true) + public boolean isError() { + return isError(windowClosed); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final WindowClosed windowClosed) { + return windowClosed == null; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(WINDOW_CLOSED_FIELD, windowClosed) + .toString(); + } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(WindowClosed.getInstance(true)); + private static final Result FALSE = new Result(WindowClosed.getInstance(false)); + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert !TRUE.isError() && TRUE.windowClosed.result; + assert !FALSE.isError() && !FALSE.windowClosed.result; + assert ERROR.isError(); + } + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java index fbde2eb..75ef5a8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java @@ -25,13 +25,29 @@ public IsWindowClosed.Result deserialize(final byte[] data) { @Override public IsWindowClosed.Result convertFromPb(@NotNull final qlua.rpc.IsWindowClosed.Result result) { - return IsWindowClosed.Result.getInstance( result.getResult() ); + + if (result.hasWindowClosed()) { + final IsWindowClosed.WindowClosed windowClosed = + IsWindowClosed.WindowClosed.getInstance( result.getWindowClosed().getResult() ); + return IsWindowClosed.Result.getInstance(windowClosed); + } + + return IsWindowClosed.Result.getInstance(null); } @Override public qlua.rpc.IsWindowClosed.Result convertToPb(@NotNull final IsWindowClosed.Result result) { - return qlua.rpc.IsWindowClosed.Result.newBuilder() - .setResult( result.isResult() ) - .build(); + + final qlua.rpc.IsWindowClosed.Result.Builder pbResult = qlua.rpc.IsWindowClosed.Result.newBuilder(); + + final IsWindowClosed.WindowClosed windowClosed = result.getWindowClosed(); + if (windowClosed != null) { + final qlua.rpc.IsWindowClosed.WindowClosed pbWindowClosed = qlua.rpc.IsWindowClosed.WindowClosed.newBuilder() + .setResult( windowClosed.isResult() ) + .build(); + pbResult.setWindowClosed(pbWindowClosed); + } + + return pbResult.build(); } } diff --git a/src/main/proto/qlua/rpc/IsWindowClosed.proto b/src/main/proto/qlua/rpc/IsWindowClosed.proto index 1819f9f..cec95d1 100644 --- a/src/main/proto/qlua/rpc/IsWindowClosed.proto +++ b/src/main/proto/qlua/rpc/IsWindowClosed.proto @@ -7,10 +7,15 @@ package qlua.rpc.IsWindowClosed; option optimize_for = SPEED; option java_package = "qlua.rpc"; +message WindowClosed { + bool result = 1; +} + message Request { int32 t_id = 1; } message Result { - bool result = 1; + + WindowClosed window_closed = 1; } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java index 88d939b..fae7b84 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java @@ -24,6 +24,9 @@ public class IsWindowClosedJsonSerdeTest { private static IsWindowClosed.Result falseResultObj; private static String falseResultJson; + private static IsWindowClosed.Result errorResultObj; + private static String errorResultJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -33,11 +36,14 @@ public static void globalSetup() throws IOException { requestObj = new IsWindowClosed.Request(1); requestJson = Resources.toString(Resources.getResource("json/IsWindowClosed.request.json"), Charsets.UTF_8); - trueResultObj = IsWindowClosed.Result.getInstance(true); + trueResultObj = IsWindowClosed.Result.getInstance( IsWindowClosed.WindowClosed.getInstance(true) ); trueResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.true.json"), Charsets.UTF_8); - falseResultObj = IsWindowClosed.Result.getInstance(false); + falseResultObj = IsWindowClosed.Result.getInstance( IsWindowClosed.WindowClosed.getInstance(false) ); falseResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.false.json"), Charsets.UTF_8); + + errorResultObj = IsWindowClosed.Result.getErrorInstance(); + errorResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.error.json"), Charsets.UTF_8); } @Test @@ -54,4 +60,9 @@ public void testTrueResultDeserialize() throws IOException { public void testFalseResultDeserialize() throws IOException { assertEquals(falseResultObj, sut.readValue(falseResultJson, IsWindowClosed.Result.class)); } + + @Test + public void testErrorResultDeserialize() throws IOException { + assertEquals(errorResultObj, sut.readValue(errorResultJson, IsWindowClosed.Result.class)); + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java index 0a23b43..f1272b8 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java @@ -11,13 +11,15 @@ public class IsWindowClosedResultPbSerdeTest extends AbstractResultPbSerdeTest { - private static final IsWindowClosed.Result TRUE_RESULT = IsWindowClosed.Result.getInstance(true); - private static final qlua.rpc.IsWindowClosed.Result TRUE_PB_RESUlT = - qlua.rpc.IsWindowClosed.Result.newBuilder().setResult(true).build(); + private static final IsWindowClosed.Result TRUE_RESULT = getResult(true); + private static final qlua.rpc.IsWindowClosed.Result TRUE_PB_RESUlT = getPbResult(true); + + private static final IsWindowClosed.Result FALSE_RESULT = getResult(false); + private static final qlua.rpc.IsWindowClosed.Result FALSE_PB_RESUlT = getPbResult(false); + + private static final IsWindowClosed.Result ERROR_RESULT = IsWindowClosed.Result.getErrorInstance(); + private static final qlua.rpc.IsWindowClosed.Result ERROR_PB_RESULT = qlua.rpc.IsWindowClosed.Result.getDefaultInstance(); - private static final IsWindowClosed.Result FALSE_RESULT = IsWindowClosed.Result.getInstance(false); - private static final qlua.rpc.IsWindowClosed.Result FALSE_PB_RESUlT = - qlua.rpc.IsWindowClosed.Result.newBuilder().setResult(false).build(); @Override public @NotNull Class getTargetObjectClass() { @@ -48,4 +50,19 @@ public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_False public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); } + + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_ErrorResult_To_ObjectOf_ErrorResult() { + assertEquals(ERROR_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), ERROR_PB_RESULT.toByteArray())); + } + + private static IsWindowClosed.Result getResult(final boolean result) { + return IsWindowClosed.Result.getInstance(IsWindowClosed.WindowClosed.getInstance(result)); + } + + private static qlua.rpc.IsWindowClosed.Result getPbResult(boolean result) { + return qlua.rpc.IsWindowClosed.Result.newBuilder() + .setWindowClosed(qlua.rpc.IsWindowClosed.WindowClosed.newBuilder().setResult(result).build()) + .build(); + } } diff --git a/src/test/resources/json/IsWindowClosed.result.error.json b/src/test/resources/json/IsWindowClosed.result.error.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/IsWindowClosed.result.error.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.false.json b/src/test/resources/json/IsWindowClosed.result.false.json index 663b79d..4985bab 100644 --- a/src/test/resources/json/IsWindowClosed.result.false.json +++ b/src/test/resources/json/IsWindowClosed.result.false.json @@ -1,3 +1,5 @@ { - "result" : false + "window_closed" : { + "result" : false + } } \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.true.json b/src/test/resources/json/IsWindowClosed.result.true.json index 5abe178..f7292ea 100644 --- a/src/test/resources/json/IsWindowClosed.result.true.json +++ b/src/test/resources/json/IsWindowClosed.result.true.json @@ -1,3 +1,5 @@ { - "result" : true + "window_closed" : { + "result" : true + } } \ No newline at end of file From 4e54b3368cdecbac12d36d9d2e4b18ded94387cd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 18:01:10 +0300 Subject: [PATCH 321/549] Changed serde of Message to accomodate the return of nil from the target QLua function; made "window_closed" a mandatory field in the IsWindowClosed.Result JSON format. --- .../lua/rpc/api/messages/IsWindowClosed.java | 2 +- .../quik/lua/rpc/api/messages/Message.java | 102 +++++++++++++++++- .../application/RpcExampleApplication.java | 8 +- .../serde/protobuf/MessageResultPbSerde.java | 21 +++- src/main/proto/qlua/rpc/message.proto | 6 +- .../api/messages/MessageJsonSerdeTest.java | 55 ++++++---- .../protobuf/MessageResultPbSerdeTest.java | 63 +++++++---- .../json/IsWindowClosed.result.error.json | 4 +- .../resources/json/message.result.error.json | 3 + src/test/resources/json/message.result.json | 3 - .../resources/json/message.result.not_ok.json | 5 + .../resources/json/message.result.ok.json | 5 + 12 files changed, 221 insertions(+), 56 deletions(-) create mode 100644 src/test/resources/json/message.result.error.json delete mode 100644 src/test/resources/json/message.result.json create mode 100644 src/test/resources/json/message.result.not_ok.json create mode 100644 src/test/resources/json/message.result.ok.json diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java index f62cd9b..1c23f7b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java @@ -72,7 +72,7 @@ public static class Result { WindowClosed windowClosed; @JsonCreator - public static Result getInstance(@JsonProperty(value = WINDOW_CLOSED_FIELD) final WindowClosed windowClosed) { + public static Result getInstance(@JsonProperty(value = WINDOW_CLOSED_FIELD, required = true) final WindowClosed windowClosed) { if (isError(windowClosed)) { return InstanceHolder.ERROR; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java index de50457..779bea2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java @@ -2,9 +2,12 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; public final class Message { @@ -35,24 +38,115 @@ public String toString() { } @Value - public static class Result { + public static class MessageResult { + + private static final String RESULT_FIELD = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public static MessageResult getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final int result) { + return isOk(result) ? InstanceHolder.OK : new MessageResult(result); + } + + public static MessageResult getOkInstance() { + return InstanceHolder.OK; + } + + @Contract(pure = true) + public boolean isOk() { + return isOk(result); + } + + @Contract(pure = true) + private static boolean isOk(final int result) { + return result == 1; + } + + private MessageResult(final int result) { this.result = result; } + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(RESULT_FIELD, result) + .toString(); + } + + private static final class InstanceHolder { + + private static final MessageResult OK = new MessageResult(1); + + // sanity check + static { + assert OK.isOk(); + } + } + } + + @Value + public static class Result { + + private static final String MESSAGE_RESULT_FIELD = "message_result"; + + MessageResult messageResult; + + @JsonCreator + public static Result getInstance(@JsonProperty(value = MESSAGE_RESULT_FIELD, required = true) final MessageResult messageResult) { + + if (isError(messageResult)) { + return InstanceHolder.ERROR; + } + + if (messageResult.isOk()) { + return InstanceHolder.OK; + } + + return new Result(messageResult); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final MessageResult messageResult) { + this.messageResult = messageResult; + } + + @Contract(pure = true) + public boolean isError() { + return isError(messageResult); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final MessageResult messageResult) { + return messageResult == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(MESSAGE_RESULT_FIELD, messageResult) .toString(); } + + private static final class InstanceHolder { + + private static final Result OK = new Result(MessageResult.getOkInstance()); + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert !OK.isError() && OK.messageResult.isOk(); + assert ERROR.isError(); + } + } } - public static enum IconType { + public enum IconType { INFO(1), WARNING(2), diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index db1493a..201a34d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -47,7 +47,13 @@ public static void main(final String[] args) { log.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); final Message.Result result = rpcClient.qlua_message(request); - log.info("Результат выполнения удалённой процедуры 'message': {}.", result.getResult()); + final Message.MessageResult messageResult = result.getMessageResult(); + if (messageResult == null) { + log.error("Удалённая процедура 'message' выполнилась с ошибкой."); + } else { + log.info("Результат выполнения удалённой процедуры 'message': {}.", result.getMessageResult().getResult()); + } + log.info("Выход из программы..."); } catch (final Exception ex) { log.error("Не удалось выполнить удалённый вызов процедуры.", ex); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java index 14d5df9..b8bd9d4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java @@ -28,13 +28,26 @@ public Message.Result deserialize(final byte[] data) { @Override public Message.Result convertFromPb(@NotNull final qlua.rpc.Message.Result result) { - return new Message.Result( result.getResult() ); + + if (result.getNullResult()) { + return Message.Result.getInstance(null); + } + + return Message.Result.getInstance( Message.MessageResult.getInstance(result.getValueResult()) ); } @Override public qlua.rpc.Message.Result convertToPb(@NotNull final Message.Result result) { - return qlua.rpc.Message.Result.newBuilder() - .setResult( result.getResult() ) - .build(); + + final qlua.rpc.Message.Result.Builder pbResult = qlua.rpc.Message.Result.newBuilder(); + + final Message.MessageResult messageResult = result.getMessageResult(); + if (messageResult == null) { + pbResult.setNullResult(true); + } else { + pbResult.setValueResult( messageResult.getResult() ); + } + + return pbResult.build(); } } diff --git a/src/main/proto/qlua/rpc/message.proto b/src/main/proto/qlua/rpc/message.proto index 7f75b7e..16a509b 100644 --- a/src/main/proto/qlua/rpc/message.proto +++ b/src/main/proto/qlua/rpc/message.proto @@ -22,5 +22,9 @@ message Request { } message Result { - int32 result = 1; + + oneof message_result { + bool null_result = 1; + int32 value_result = 2; + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java index a04c24d..1af1b8a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java @@ -16,11 +16,20 @@ public class MessageJsonSerdeTest { private static ObjectMapper sut; private static Message.Request fullArgsRequestObject; - private static Message.Request requiredArgsRequestObject; - private static Message.Result resultObj; private static String fullArgsRequestJson; + + private static Message.Request requiredArgsRequestObject; private static String requiredArgsRequestJson; - private static String resultJson; + + private static Message.Result okResultObj; + private static String okResultJson; + + private static Message.Result notOkResultObj; + private static String notOkResultJson; + + private static Message.Result errorResultObj; + private static String errorResultJson; + @BeforeClass public static void globalSetup() throws IOException { @@ -29,39 +38,43 @@ public static void globalSetup() throws IOException { sut.registerModule(new QluaJsonModule()); fullArgsRequestObject = new Message.Request("1", Message.IconType.WARNING); + fullArgsRequestJson = Resources.toString(Resources.getResource("json/message.request_full_args.json"), Charsets.UTF_8); + requiredArgsRequestObject = new Message.Request("1"); + requiredArgsRequestJson = Resources.toString(Resources.getResource("json/message.request_required_args.json"), Charsets.UTF_8); + + okResultObj = Message.Result.getInstance( Message.MessageResult.getOkInstance() ); + okResultJson = Resources.toString(Resources.getResource("json/message.result.ok.json"), Charsets.UTF_8); - resultObj = new Message.Result(1); + notOkResultObj = Message.Result.getInstance( Message.MessageResult.getInstance(789) ); + notOkResultJson = Resources.toString(Resources.getResource("json/message.result.not_ok.json"), Charsets.UTF_8); - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/message.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/message.request_required_args.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/message.result.json"), Charsets.UTF_8); + errorResultObj = Message.Result.getErrorInstance(); + errorResultJson = Resources.toString(Resources.getResource("json/message.result.error.json"), Charsets.UTF_8); } @Test public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); + assertEquals(fullArgsRequestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject)); } @Test public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); + assertEquals(requiredArgsRequestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject)); } @Test - public void testResultDeserialize() throws IOException { + public void testDeserializeOkResult() throws IOException { + assertEquals(okResultObj, sut.readValue(okResultJson, Message.Result.class)); + } - final Message.Result actualResultObj = sut.readValue(resultJson, Message.Result.class); + @Test + public void testDeserializeNotOkResult() throws IOException { + assertEquals(notOkResultObj, sut.readValue(notOkResultJson, Message.Result.class)); + } - assertEquals(resultObj, actualResultObj); + @Test + public void testDeserializeErrorResult() throws IOException { + assertEquals(errorResultObj, sut.readValue(errorResultJson, Message.Result.class)); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java index b6e4b0e..3c713e5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java @@ -1,8 +1,7 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; +import org.jetbrains.annotations.NotNull; import org.junit.Test; import java.util.Arrays; @@ -10,38 +9,62 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -public class MessageResultPbSerdeTest { +public class MessageResultPbSerdeTest extends AbstractResultPbSerdeTest { - private static SerdeModule sut; + private static final Message.Result OK_RESULT = getResult(1); + private static final qlua.rpc.Message.Result OK_PB_RESUlT = getPbResult(1); - private static Message.Result expectedObject; - private static byte[] expectedPbInput; + private static final Message.Result NOT_OK_RESULT = getResult(42); + private static final qlua.rpc.Message.Result NOT_OK_PB_RESUlT = getPbResult(42); - @BeforeClass - public static void globalSetup() { + private static final Message.Result ERROR_RESULT = Message.Result.getErrorInstance(); + private static final qlua.rpc.Message.Result ERROR_PB_RESULT = qlua.rpc.Message.Result.newBuilder() + .setNullResult(true) + .build(); - sut = ProtobufSerdeModule.INSTANCE; - expectedObject = new Message.Result(1); - expectedPbInput = qlua.rpc.Message.Result.newBuilder() - .setResult(1) - .build() - .toByteArray(); + @Override + public @NotNull Class getTargetObjectClass() { + return Message.Result.class; + } + + @NotNull + @Override + public qlua.rpc.Message.Result getTargetObjectAsPbMessage() { + return OK_PB_RESUlT; + } + + @NotNull + @Override + public Message.Result getTargetObject() { + return OK_RESULT; } @Test - public void testSerialize() { + public void shouldSerialize_ObjectOf_NotOkResult_To_ByteArrayOf_PbObjectOf_NotOkResult() { - final byte[] actual = sut.serialize(expectedObject); + assertTrue( + Arrays.equals(NOT_OK_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(NOT_OK_RESULT)) + ); + } - assertTrue( Arrays.equals(expectedPbInput, actual) ); + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_NotOkResult_To_ObjectOf_NotOkResult() { + assertEquals(NOT_OK_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), NOT_OK_PB_RESUlT.toByteArray())); } @Test - public void testDeserialize() { + public void shouldDeserialize_ByteArrayOf_PbObjectOf_ErrorResult_To_ObjectOf_ErrorResult() { + assertEquals(ERROR_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), ERROR_PB_RESULT.toByteArray())); + } - final Message.Result actualObject = sut.deserialize(Message.Result.class, expectedPbInput); + private static Message.Result getResult(final int result) { + return Message.Result.getInstance(Message.MessageResult.getInstance(result)); + } - assertEquals(actualObject, expectedObject); + private static qlua.rpc.Message.Result getPbResult(int result) { + return qlua.rpc.Message.Result.newBuilder() + .setValueResult(result) + .build(); } } diff --git a/src/test/resources/json/IsWindowClosed.result.error.json b/src/test/resources/json/IsWindowClosed.result.error.json index 9e26dfe..b2ee98c 100644 --- a/src/test/resources/json/IsWindowClosed.result.error.json +++ b/src/test/resources/json/IsWindowClosed.result.error.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "window_closed": null +} \ No newline at end of file diff --git a/src/test/resources/json/message.result.error.json b/src/test/resources/json/message.result.error.json new file mode 100644 index 0000000..1d32867 --- /dev/null +++ b/src/test/resources/json/message.result.error.json @@ -0,0 +1,3 @@ +{ + "message_result" : null +} \ No newline at end of file diff --git a/src/test/resources/json/message.result.json b/src/test/resources/json/message.result.json deleted file mode 100644 index b59898c..0000000 --- a/src/test/resources/json/message.result.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "result" : 1 -} \ No newline at end of file diff --git a/src/test/resources/json/message.result.not_ok.json b/src/test/resources/json/message.result.not_ok.json new file mode 100644 index 0000000..0e264ee --- /dev/null +++ b/src/test/resources/json/message.result.not_ok.json @@ -0,0 +1,5 @@ +{ + "message_result" : { + "result" : 789 + } +} \ No newline at end of file diff --git a/src/test/resources/json/message.result.ok.json b/src/test/resources/json/message.result.ok.json new file mode 100644 index 0000000..e5705fd --- /dev/null +++ b/src/test/resources/json/message.result.ok.json @@ -0,0 +1,5 @@ +{ + "message_result" : { + "result" : 1 + } +} \ No newline at end of file From a99f80c403769711637d5c61e2efd8e01246f312 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 16 Sep 2018 18:04:43 +0300 Subject: [PATCH 322/549] Updated .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4e63c73..7d5aa69 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.iml /.idea/ +*.class From c6c7a0d3a980409506e9c1f4f969ad42b536c720 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 18 Sep 2018 02:02:38 +0300 Subject: [PATCH 323/549] Refactored the test a little. --- .../messages/IsConnectedJsonSerdeTest.java | 34 ++++--------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java index 1bfd4c3..bdd7f30 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java @@ -20,18 +20,18 @@ public class IsConnectedJsonSerdeTest { private static final ObjectMapper SUT = getSUT(); private static final IsConnected.Request OBJ_REQUEST = IsConnected.Request.INSTANCE; - private static final String JSON_REQUEST = getJsonOfRequest(); + private static final String JSON_REQUEST = getJson("json/isConnected/request.json"); private static final IsConnected.Result OBJ_TRUE_RESULT = getObjOfTrueResult(); - private static final String JSON_TRUE_RESULT = getJsonOfTrueResult(); + private static final String JSON_TRUE_RESULT = getJson("json/isConnected/result.true.json"); private static final IsConnected.Result OBJ_FALSE_RESULT = getObjOfFalseResult(); - private static final String JSON_FALSE_RESULT = getJsonOfFalseResult(); + private static final String JSON_FALSE_RESULT = getJson("json/isConnected/result.false.json"); private static final IsConnected.Result OBJ_GARBAGE_RESULT = getObjOfGarbageResult(); - private static final String JSON_GARBAGE_RESULT = getJsonOfGarbageResult(); + private static final String JSON_GARBAGE_RESULT = getJson("json/isConnected/result.garbage.json"); - private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJsonOfResultWithMissingFieldIsConnected(); + private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJson("json/isConnected/result.missing.is_connected.json"); @Rule public ExpectedException thrown = ExpectedException.none(); @@ -65,11 +65,6 @@ public void shouldFailOn_deserializationOf_JsonOf_Result_WithMissingField_IsConn SUT.readValue(JSON_RESULT_MISSING_FIELD_IS_CONNECTED, IsConnected.Result.class); } - @SneakyThrows(IOException.class) - private static String getJsonOfResultWithMissingFieldIsConnected() { - return Resources.toString(Resources.getResource("json/isConnected/result.missing.is_connected.json"), Charsets.UTF_8); - } - private static ObjectMapper getSUT() { final ObjectMapper result = new ObjectMapper(); @@ -91,22 +86,7 @@ private static IsConnected.Result getObjOfTrueResult() { } @SneakyThrows(IOException.class) - private static String getJsonOfGarbageResult() { - return Resources.toString(Resources.getResource("json/isConnected/result.garbage.json"), Charsets.UTF_8); - } - - @SneakyThrows(IOException.class) - private static String getJsonOfFalseResult() { - return Resources.toString(Resources.getResource("json/isConnected/result.false.json"), Charsets.UTF_8); - } - - @SneakyThrows(IOException.class) - private static String getJsonOfTrueResult() { - return Resources.toString(Resources.getResource("json/isConnected/result.true.json"), Charsets.UTF_8); - } - - @SneakyThrows(IOException.class) - private static String getJsonOfRequest() { - return Resources.toString(Resources.getResource("json/isConnected/request.json"), Charsets.UTF_8); + private static final String getJson(final String resourcePath) { + return Resources.toString(Resources.getResource(resourcePath), Charsets.UTF_8); } } From a4a29b12b55b206eec1db9087664bccf4be4371f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 18 Sep 2018 02:03:25 +0300 Subject: [PATCH 324/549] Added a protobuf serde for ParamRequest; Rewritten the JSON serde for ParamRequest to test the Result's corner cases. --- .../lua/rpc/api/messages/ParamRequest.java | 42 +++++++-- .../protobuf/ParamRequestRequestPbSerde.java | 61 +++++++++++++ .../protobuf/ParamRequestResultPbSerde.java | 37 ++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 2 + .../messages/ParamRequestJsonSerdeTest.java | 87 +++++++++++++------ .../ParamRequestRequestPbSerdeTest.java | 45 ++++++++++ .../ParamRequestResultPbSerdeTest.java | 51 +++++++++++ .../request.json} | 0 .../json/ParamRequest/result.false.json | 3 + .../ParamRequest/result.missing.result.json | 1 + .../result.true.json} | 0 11 files changed, 293 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java rename src/test/resources/json/{ParamRequest.request.json => ParamRequest/request.json} (100%) create mode 100644 src/test/resources/json/ParamRequest/result.false.json create mode 100644 src/test/resources/json/ParamRequest/result.missing.result.json rename src/test/resources/json/{ParamRequest.result.json => ParamRequest/result.true.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java index cb4e1d2..de3018d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java @@ -6,18 +6,23 @@ import lombok.Builder; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; public final class ParamRequest { @Value public static class Request { - @NonNull String classCode; - @NonNull String secCode; - @NonNull String dbName; + private static final String CLASS_CODE_FIELD = "class_code"; + private static final String SEC_CODE_FIELD = "sec_code"; + private static final String DB_NAME_FIELD = "db_name"; + + String classCode; + String secCode; + String dbName; @Builder - private Request(final String classCode, final String secCode, final String dbName) { + private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String dbName) { this.classCode = classCode; this.secCode = secCode; this.dbName = dbName; @@ -26,9 +31,9 @@ private Request(final String classCode, final String secCode, final String dbNam @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("db_name", dbName) + .add(CLASS_CODE_FIELD, classCode) + .add(SEC_CODE_FIELD, secCode) + .add(DB_NAME_FIELD, dbName) .toString(); } } @@ -36,18 +41,37 @@ public String toString() { @Value public static class Result { + private static final String RESULT_FIELD = "result"; + boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT_FIELD, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java new file mode 100644 index 0000000..b369aa2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java @@ -0,0 +1,61 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; + +enum ParamRequestRequestPbSerde implements Serde, PbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.PARAM_REQUEST; + + @Override + public byte[] serialize(final ParamRequest.Request request) { + + return RPC.Request.newBuilder() + .setTypeValue( PROCEDURE_TYPE.getNumber() ) + .setArgs( convertToPb(request).toByteString() ) + .build() + .toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ParamRequest.Request deserialize(final byte[] data) { + + final RPC.Request request = RPC.Request.parseFrom(data); + assertEquals(request.getType(), PROCEDURE_TYPE); + + return convertFromPb( + qlua.rpc.ParamRequest.Request.parseFrom( request.getArgs() ) + ); + } + + @Override + public ParamRequest.Request convertFromPb(@NotNull final qlua.rpc.ParamRequest.Request request) { + + return ParamRequest.Request.builder() + .classCode( request.getClassCode() ) + .secCode( request.getSecCode() ) + .dbName( request.getDbName() ) + .build(); + } + + @Override + public qlua.rpc.ParamRequest.Request convertToPb(@NotNull final ParamRequest.Request request) { + + return qlua.rpc.ParamRequest.Request.newBuilder() + .setClassCode( request.getClassCode() ) + .setSecCode( request.getSecCode() ) + .setDbName( request.getDbName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java new file mode 100644 index 0000000..52c9170 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.enfernuz.quik.lua.rpc.serde.PbConverter; +import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum ParamRequestResultPbSerde implements Serde, PbConverter { + + INSTANCE; + + @Override + public byte[] serialize(final ParamRequest.Result result) { + return convertToPb(result).toByteArray(); + } + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ParamRequest.Result deserialize(final byte[] data) { + return convertFromPb( qlua.rpc.ParamRequest.Result.parseFrom(data) ); + } + + @Override + public ParamRequest.Result convertFromPb(@NotNull final qlua.rpc.ParamRequest.Result result) { + return ParamRequest.Result.getInstance( result.getResult() ); + } + + @Override + public qlua.rpc.ParamRequest.Result convertToPb(@NotNull final ParamRequest.Result result) { + return qlua.rpc.ParamRequest.Result.newBuilder() + .setResult( result.isResult() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index e55110b..d8bdc43 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -211,6 +211,8 @@ private static Map, Serde> createClassToSerdeMap() { registerSerde(result, IsSubscribedLevel2Quotes.Result.class, IsSubscribedLevel2QuotesResultPbSerde.INSTANCE); registerSerde(result, IsWindowClosed.Request.class, IsWindowClosedRequestPbSerde.INSTANCE); registerSerde(result, IsWindowClosed.Result.class, IsWindowClosedResultPbSerde.INSTANCE); + registerSerde(result, ParamRequest.Request.class, ParamRequestRequestPbSerde.INSTANCE); + registerSerde(result, ParamRequest.Result.class, ParamRequestResultPbSerde.INSTANCE); registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java index 7663dca..211e194 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java @@ -2,10 +2,14 @@ import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.exc.MismatchedInputException; import com.google.common.base.Charsets; import com.google.common.io.Resources; -import org.junit.BeforeClass; +import lombok.SneakyThrows; +import org.hamcrest.Matchers; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import java.io.IOException; @@ -13,46 +17,75 @@ public class ParamRequestJsonSerdeTest { - private static ObjectMapper sut; + private static final ObjectMapper SUT = getSUT(); - private static ParamRequest.Request requestObj; - private static ParamRequest.Result resultObj; - private static String requestJson; - private static String resultJson; + private static final ParamRequest.Request OBJ_REQUEST = getObjOfRequest(); + private static final String JSON_REQUEST = getJson("json/ParamRequest/request.json"); - @BeforeClass - public static void globalSetup() throws IOException { + private static final ParamRequest.Result OBJ_TRUE_RESULT = getObjOfTrueResult(); + private static final String JSON_TRUE_RESULT = getJson("json/ParamRequest/result.true.json"); - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); + private static final ParamRequest.Result OBJ_FALSE_RESULT = getObjOfFalseResult(); + private static final String JSON_FALSE_RESULT = getJson("json/ParamRequest/result.false.json"); - requestObj = ParamRequest.Request.builder() - .classCode("1") - .secCode("2") - .dbName("3") - .build(); + private static final Class RESULT_CLASS = ParamRequest.Result.class; - resultObj = new ParamRequest.Result(true); + private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJson("json/ParamRequest/result.missing.result.json"); - requestJson = - Resources.toString(Resources.getResource("json/ParamRequest.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/ParamRequest.result.json"), Charsets.UTF_8); - } + @Rule + public ExpectedException thrown = ExpectedException.none(); @Test - public void testRequestSerialize() throws IOException { + public void shouldSerialize_ObjectOf_Request_To_JsonOf_Request() throws IOException { + assertEquals(JSON_REQUEST, SUT.writerWithDefaultPrettyPrinter().writeValueAsString(OBJ_REQUEST)); + } - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); + @Test + public void shouldDeserialize_JsonOf_TrueResult_To_ObjectOf_TrueResult() throws IOException { + assertEquals(OBJ_TRUE_RESULT, SUT.readValue(JSON_TRUE_RESULT, RESULT_CLASS)); + } - assertEquals(requestJson, actualRequestJson); + @Test + public void shouldDeserialize_JsonOf_FalseResult_To_ObjectOf_FalseResult() throws IOException { + assertEquals(OBJ_FALSE_RESULT, SUT.readValue(JSON_FALSE_RESULT, RESULT_CLASS)); } @Test - public void testResultDeserialize() throws IOException { + public void shouldFailOn_deserializationOf_JsonOf_Result_WithMissingField_IsConnected() throws IOException { + + thrown.expect(MismatchedInputException.class); + thrown.expectMessage(Matchers.containsString("Missing required creator property 'result'")); + + SUT.readValue(JSON_RESULT_MISSING_FIELD_IS_CONNECTED, RESULT_CLASS); + } + + private static ObjectMapper getSUT() { - final ParamRequest.Result actualResultObj = sut.readValue(resultJson, ParamRequest.Result.class); + final ObjectMapper result = new ObjectMapper(); + result.registerModule(new QluaJsonModule()); + + return result; + } + + private static ParamRequest.Request getObjOfRequest() { + + return ParamRequest.Request.builder() + .classCode("1") + .secCode("2") + .dbName("3") + .build(); + } + + private static ParamRequest.Result getObjOfFalseResult() { + return ParamRequest.Result.getInstance(false); + } + + private static ParamRequest.Result getObjOfTrueResult() { + return ParamRequest.Result.getInstance(true); + } - assertEquals(resultObj, actualResultObj); + @SneakyThrows(IOException.class) + private static final String getJson(final String resourcePath) { + return Resources.toString(Resources.getResource(resourcePath), Charsets.UTF_8); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java new file mode 100644 index 0000000..0853f5f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import qlua.rpc.RPC; + +public class ParamRequestRequestPbSerdeTest extends AbstractRequestPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String DB_NAME = "3"; + + @Override + public RPC.@NotNull ProcedureType getProcedureType() { + return RPC.ProcedureType.PARAM_REQUEST; + } + + @Override + public @Nullable MessageLite getPbRequestArgs() { + + return qlua.rpc.ParamRequest.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setDbName(DB_NAME) + .build(); + } + + @Override + public @NotNull Class getTargetObjectClass() { + return ParamRequest.Request.class; + } + + @NotNull + @Override + public ParamRequest.Request getTargetObject() { + + return ParamRequest.Request.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .dbName(DB_NAME) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java new file mode 100644 index 0000000..dcfe261 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class ParamRequestResultPbSerdeTest extends AbstractResultPbSerdeTest { + + private static final ParamRequest.Result TRUE_RESULT = ParamRequest.Result.getInstance(true); + private static final qlua.rpc.ParamRequest.Result TRUE_PB_RESUlT = + qlua.rpc.ParamRequest.Result.newBuilder().setResult(true).build(); + + private static final ParamRequest.Result FALSE_RESULT = ParamRequest.Result.getInstance(false); + private static final qlua.rpc.ParamRequest.Result FALSE_PB_RESUlT = + qlua.rpc.ParamRequest.Result.newBuilder().setResult(false).build(); + + @Override + public @NotNull Class getTargetObjectClass() { + return ParamRequest.Result.class; + } + + @NotNull + @Override + public qlua.rpc.ParamRequest.Result getTargetObjectAsPbMessage() { + return TRUE_PB_RESUlT; + } + + @NotNull + @Override + public ParamRequest.Result getTargetObject() { + return TRUE_RESULT; + } + + @Test + public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { + + assertTrue( + Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) + ); + } + + @Test + public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { + assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); + } +} diff --git a/src/test/resources/json/ParamRequest.request.json b/src/test/resources/json/ParamRequest/request.json similarity index 100% rename from src/test/resources/json/ParamRequest.request.json rename to src/test/resources/json/ParamRequest/request.json diff --git a/src/test/resources/json/ParamRequest/result.false.json b/src/test/resources/json/ParamRequest/result.false.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/ParamRequest/result.false.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/result.missing.result.json b/src/test/resources/json/ParamRequest/result.missing.result.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src/test/resources/json/ParamRequest/result.missing.result.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest.result.json b/src/test/resources/json/ParamRequest/result.true.json similarity index 100% rename from src/test/resources/json/ParamRequest.result.json rename to src/test/resources/json/ParamRequest/result.true.json From c6df87ba02a7a2aa8fdf8517f139af20885d39d4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 28 Oct 2018 22:07:02 +0300 Subject: [PATCH 325/549] Done the JSON serde (with tests). WIP: protobuf serde. --- .../quik/lua/rpc/api/QluaRpcClient.java | 710 ++++-------------- .../quik/lua/rpc/api/RemoteProcedure.java | 3 + .../lua/rpc/api/RemoteProcedureCaller.java | 10 + .../enfernuz/quik/lua/rpc/api/RpcArgs.java | 3 + .../quik/lua/rpc/api/RpcException.java | 10 +- .../enfernuz/quik/lua/rpc/api/RpcResult.java | 3 + .../quik/lua/rpc/api/messages/AddColumn.java | 98 ++- .../quik/lua/rpc/api/messages/AddLabel.java | 52 +- .../quik/lua/rpc/api/messages/AllocTable.java | 16 +- .../lua/rpc/api/messages/CalcBuySell.java | 137 +++- .../rpc/api/messages/CancelParamRequest.java | 68 +- .../quik/lua/rpc/api/messages/Clear.java | 47 +- .../lua/rpc/api/messages/CreateWindow.java | 45 +- .../lua/rpc/api/messages/DelAllLabels.java | 48 +- .../quik/lua/rpc/api/messages/DelLabel.java | 59 +- .../quik/lua/rpc/api/messages/DeleteRow.java | 65 +- .../lua/rpc/api/messages/DestroyTable.java | 45 +- .../lua/rpc/api/messages/GetBuySellInfo.java | 219 ++++-- .../rpc/api/messages/GetBuySellInfoEx.java | 171 +++-- .../rpc/api/messages/GetCandlesByIndex.java | 88 ++- .../quik/lua/rpc/api/messages/GetCell.java | 64 +- .../lua/rpc/api/messages/GetClassInfo.java | 36 +- .../rpc/api/messages/GetClassSecurities.java | 41 +- .../lua/rpc/api/messages/GetClassesList.java | 20 +- .../quik/lua/rpc/api/messages/GetDepo.java | 85 ++- .../quik/lua/rpc/api/messages/GetDepoEx.java | 95 ++- .../rpc/api/messages/GetFuturesHolding.java | 77 +- .../lua/rpc/api/messages/GetFuturesLimit.java | 74 +- .../lua/rpc/api/messages/GetInfoParam.java | 36 +- .../quik/lua/rpc/api/messages/GetItem.java | 52 +- .../lua/rpc/api/messages/GetLabelParams.java | 53 +- .../lua/rpc/api/messages/GetLinesCount.java | 33 +- .../quik/lua/rpc/api/messages/GetMoney.java | 82 +- .../quik/lua/rpc/api/messages/GetMoneyEx.java | 92 ++- .../lua/rpc/api/messages/GetNumCandles.java | 33 +- .../lua/rpc/api/messages/GetNumberOf.java | 33 +- .../rpc/api/messages/GetOrderByNumber.java | 64 +- .../quik/lua/rpc/api/messages/GetParamEx.java | 114 ++- .../lua/rpc/api/messages/GetParamEx2.java | 114 ++- .../rpc/api/messages/GetPortfolioInfo.java | 47 +- .../rpc/api/messages/GetPortfolioInfoEx.java | 178 +++-- .../lua/rpc/api/messages/GetQuoteLevel2.java | 183 +++-- .../lua/rpc/api/messages/GetScriptPath.java | 15 +- .../lua/rpc/api/messages/GetSecurityInfo.java | 52 +- .../lua/rpc/api/messages/GetTableSize.java | 88 ++- .../lua/rpc/api/messages/GetTradeDate.java | 83 +- .../rpc/api/messages/GetWindowCaption.java | 36 +- .../lua/rpc/api/messages/GetWindowRect.java | 106 +-- .../rpc/api/messages/GetWorkingFolder.java | 14 +- .../quik/lua/rpc/api/messages/Highlight.java | 100 ++- .../quik/lua/rpc/api/messages/InsertRow.java | 48 +- .../lua/rpc/api/messages/IsConnected.java | 14 +- .../messages/IsSubscribedLevel2Quotes.java | 48 +- .../lua/rpc/api/messages/IsWindowClosed.java | 81 +- .../quik/lua/rpc/api/messages/Message.java | 137 ++-- .../lua/rpc/api/messages/ParamRequest.java | 65 +- .../lua/rpc/api/messages/PrintDbgStr.java | 30 +- .../quik/lua/rpc/api/messages/RGB.java | 63 +- .../lua/rpc/api/messages/SearchItems.java | 129 +++- .../lua/rpc/api/messages/SendTransaction.java | 54 +- .../quik/lua/rpc/api/messages/SetCell.java | 108 ++- .../quik/lua/rpc/api/messages/SetColor.java | 204 ++++- .../lua/rpc/api/messages/SetLabelParams.java | 81 +- .../lua/rpc/api/messages/SetSelectedRow.java | 121 ++- .../SetTableNotificationCallback.java | 98 ++- .../rpc/api/messages/SetWindowCaption.java | 67 +- .../lua/rpc/api/messages/SetWindowPos.java | 102 ++- .../quik/lua/rpc/api/messages/Sleep.java | 71 +- .../api/messages/SubscribeLevel2Quotes.java | 66 +- .../api/messages/UnsubscribeLevel2Quotes.java | 67 +- .../quik/lua/rpc/api/messages/bit/BAnd.java | 64 +- .../quik/lua/rpc/api/messages/bit/BNot.java | 38 +- .../quik/lua/rpc/api/messages/bit/BOr.java | 62 +- .../quik/lua/rpc/api/messages/bit/BXor.java | 62 +- .../quik/lua/rpc/api/messages/bit/Test.java | 66 +- .../quik/lua/rpc/api/messages/bit/ToHex.java | 54 +- .../lua/rpc/api/messages/datasource/C.java | 103 ++- .../rpc/api/messages/datasource/Close.java | 54 +- .../messages/datasource/CreateDataSource.java | 97 ++- .../lua/rpc/api/messages/datasource/H.java | 99 +-- .../lua/rpc/api/messages/datasource/L.java | 99 +-- .../lua/rpc/api/messages/datasource/O.java | 99 +-- .../messages/datasource/SetEmptyCallback.java | 54 +- .../datasource/SetUpdateCallback.java | 65 +- .../lua/rpc/api/messages/datasource/Size.java | 39 +- .../lua/rpc/api/messages/datasource/T.java | 143 +++- .../lua/rpc/api/messages/datasource/V.java | 99 +-- .../quik/lua/rpc/api/messages/os/SysDate.java | 18 +- .../rpc/api/structures/AccountBalance.java | 177 ++--- .../rpc/api/structures/AccountPosition.java | 226 ++---- .../quik/lua/rpc/api/structures/AllTrade.java | 212 +++--- .../lua/rpc/api/structures/CandleEntry.java | 50 +- .../lua/rpc/api/structures/ClassInfo.java | 34 +- .../api/structures/ConnectedEventInfo.java | 26 +- .../lua/rpc/api/structures/DateTimeEntry.java | 79 +- .../quik/lua/rpc/api/structures/Depo.java | 93 +-- .../lua/rpc/api/structures/DepoLimit.java | 138 ++-- .../rpc/api/structures/DepoLimitDelete.java | 65 +- .../quik/lua/rpc/api/structures/Firm.java | 61 +- .../api/structures/FuturesClientHolding.java | 211 ++---- .../lua/rpc/api/structures/FuturesLimit.java | 197 ++--- .../api/structures/FuturesLimitDelete.java | 45 +- .../quik/lua/rpc/api/structures/Money.java | 61 +- .../lua/rpc/api/structures/MoneyLimit.java | 147 ++-- .../rpc/api/structures/MoneyLimitDelete.java | 63 +- .../quik/lua/rpc/api/structures/NegDeal.java | 437 ++++++----- .../quik/lua/rpc/api/structures/NegTrade.java | 468 +++++------- .../quik/lua/rpc/api/structures/Order.java | 436 +++++++---- .../rpc/api/structures/ParamEventInfo.java | 31 +- .../lua/rpc/api/structures/PortfolioInfo.java | 294 ++++---- .../rpc/api/structures/QuoteEventInfo.java | 31 +- .../rpc/api/structures/RequestEnvelope.java | 42 ++ .../rpc/api/structures/ResponseEnvelope.java | 3 + .../quik/lua/rpc/api/structures/Security.java | 83 +- .../lua/rpc/api/structures/StopEventInfo.java | 50 +- .../lua/rpc/api/structures/StopOrder.java | 218 ++++-- .../quik/lua/rpc/api/structures/Trade.java | 484 ++++++------ .../lua/rpc/api/structures/TransReply.java | 182 ++--- .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 372 ++++----- .../application/RpcExampleApplication.java | 9 +- .../quik/lua/rpc/serde/SerdeModule.java | 6 +- .../quik/lua/rpc/serde/SerdeUtils.java | 4 - .../serde/json/JsonQluaEventTypeSerde.java | 4 +- .../lua/rpc/serde/json/JsonSerdeModule.java | 14 +- .../AddColumnRequestJsonSerializer.java | 29 - .../AddLabelRequestJsonSerializer.java | 27 - .../AllocTableRequestJsonSerializer.java | 18 - .../jackson/BitBAndRequestJsonSerializer.java | 25 - .../jackson/BitBNotRequestJsonSerializer.java | 19 - .../jackson/BitBOrRequestJsonSerializer.java | 25 - .../jackson/BitBXorRequestJsonSerializer.java | 25 - .../jackson/BitTestRequestJsonSerializer.java | 20 - .../BitToHexRequestJsonSerializer.java | 20 - .../BuySellInfoExJsonDeserializer.java | 39 - .../jackson/BuySellInfoJsonDeserializer.java | 45 -- .../CalcBuySellRequestJsonSerializer.java | 30 - .../CalcBuySellResultJsonDeserializer.java | 19 - ...ncelParamRequestRequestJsonSerializer.java | 26 - ...celParamRequestResultJsonDeserializer.java | 19 - .../jackson/CandleEntryJsonDeserializer.java | 34 - .../jackson/ClassInfoJsonDeserializer.java | 28 - .../jackson/ClearRequestJsonSerializer.java | 24 - .../jackson/ClearResultJsonDeserializer.java | 19 - .../CreateWindowRequestJsonSerializer.java | 24 - .../CreateWindowResultJsonDeserializer.java | 19 - .../DatasourceCRequestJsonSerializer.java | 20 - .../DatasourceCloseRequestJsonSerializer.java | 19 - ...CreateDatasourceRequestJsonSerializer.java | 26 - .../DatasourceHRequestJsonSerializer.java | 20 - .../DatasourceLRequestJsonSerializer.java | 20 - .../DatasourceORequestJsonSerializer.java | 20 - ...SetEmptyCallbackRequestJsonSerializer.java | 19 - ...etUpdateCallbackRequestJsonSerializer.java | 20 - .../DatasourceSizeRequestJsonSerializer.java | 19 - .../DatasourceTRequestJsonSerializer.java | 20 - .../DatasourceVRequestJsonSerializer.java | 20 - .../DelAllLabelsRequestJsonSerializer.java | 24 - .../DelAllLabelsResultJsonDeserializer.java | 19 - .../DelLabelRequestJsonSerializer.java | 22 - .../DelLabelResultJsonDeserializer.java | 19 - .../DeleteRowRequestJsonSerializer.java | 25 - .../DeleteRowResultJsonDeserializer.java | 19 - .../json/jackson/DepoJsonDeserializer.java | 31 - .../DepoLimitDeleteJsonDeserializer.java | 28 - .../jackson/DepoLimitJsonDeserializer.java | 37 - .../DestroyTableRequestJsonSerializer.java | 21 - .../DestroyTableResultJsonDeserializer.java | 20 - .../FuturesLimitDeleteJsonDeserializer.java | 25 - ...GetBuySellInfoExRequestJsonSerializer.java | 25 - ...etBuySellInfoExResultJsonDeserializer.java | 25 - .../GetBuySellInfoRequestJsonSerializer.java | 25 - .../GetBuySellInfoResultJsonDeserializer.java | 25 - ...etCandlesByIndexRequestJsonSerializer.java | 24 - ...tCandlesByIndexResultJsonDeserializer.java | 40 - .../jackson/GetCellRequestJsonSerializer.java | 23 - .../GetCellResultJsonDeserializer.java | 23 - .../GetClassInfoRequestJsonSerializer.java | 21 - ...tClassSecuritiesRequestJsonSerializer.java | 21 - ...ClassSecuritiesResultJsonDeserializer.java | 19 - .../GetClassesListRequestJsonSerializer.java | 18 - .../GetClassesListResultJsonDeserializer.java | 19 - .../GetDepoExRequestJsonSerializer.java | 25 - .../jackson/GetDepoRequestJsonSerializer.java | 24 - .../GetDepoResultJsonDeserializer.java | 23 - ...etFuturesHoldingRequestJsonSerializer.java | 24 - .../GetFuturesLimitRequestJsonSerializer.java | 24 - .../GetInfoParamRequestJsonSerializer.java | 21 - .../jackson/GetItemRequestJsonSerializer.java | 22 - .../GetLabelParamsRequestJsonSerializer.java | 22 - .../GetLinesCountRequestJsonSerializer.java | 21 - .../GetMoneyExRequestJsonSerializer.java | 25 - .../GetMoneyRequestJsonSerializer.java | 24 - .../GetNumCandlesRequestJsonSerializer.java | 21 - .../GetNumberOfRequestJsonSerializer.java | 21 - ...GetOrderByNumberRequestJsonSerializer.java | 22 - .../GetParamEx2RequestJsonSerializer.java | 21 - .../GetParamExRequestJsonSerializer.java | 21 - ...tPortfolioInfoExRequestJsonSerializer.java | 23 - ...GetPortfolioInfoRequestJsonSerializer.java | 22 - .../GetQuoteLevel2RequestJsonSerializer.java | 22 - .../GetScriptPathRequestJsonSerializer.java | 18 - .../GetSecurityInfoRequestJsonSerializer.java | 20 - .../GetTableSizeRequestJsonSerializer.java | 19 - .../GetTradeDateRequestJsonSerializer.java | 18 - ...GetWindowCaptionRequestJsonSerializer.java | 19 - .../GetWindowRectRequestJsonSerializer.java | 19 - ...GetWorkingFolderRequestJsonSerializer.java | 18 - .../HighlightRequestJsonSerializer.java | 24 - .../InsertRowRequestJsonSerializer.java | 20 - .../IsConnectedRequestJsonSerializer.java | 18 - ...ibedLevel2QuotesRequestJsonSerializer.java | 20 - .../IsWindowClosedRequestJsonSerializer.java | 19 - .../jackson/MessageRequestJsonSerializer.java | 22 - .../MoneyLimitDeleteJsonDeserializer.java | 28 - .../jackson/MoneyLimitJsonDeserializer.java | 38 - .../json/jackson/NegDealJsonDeserializer.java | 74 -- .../jackson/NegTradeJsonDeserializer.java | 84 --- .../json/jackson/OrderJsonDeserializer.java | 69 -- .../ParamEventInfoJsonDeserializer.java | 25 - .../ParamRequestRequestJsonSerializer.java | 21 - .../PrintDbgStrRequestJsonSerializer.java | 18 - .../jackson/QluaJsonJacksonDeserializers.java | 51 -- .../jackson/QluaJsonJacksonSerializers.java | 99 --- .../json/jackson/QluaJsonJacksonUtils.java | 34 - .../serde/json/jackson/QluaJsonModule.java | 15 - .../QuoteEventInfoJsonDeserializer.java | 25 - .../jackson/RGBRequestJsonSerializer.java | 21 - .../RemoteProcedureClassJsonSerde.java | 136 ++++ .../ResponseEnvelopeJsonDeserializer.java | 4 +- .../SearchItemsRequestJsonSerializer.java | 27 - .../SendTransactionRequestJsonSerializer.java | 24 - .../jackson/SetCellRequestJsonSerializer.java | 23 - .../SetColorRequestJsonSerializer.java | 25 - .../SetLabelParamsRequestJsonSerializer.java | 26 - .../SetSelectedRowRequestJsonSerializer.java | 20 - ...ficationCallbackRequestJsonSerializer.java | 20 - ...SetWindowCaptionRequestJsonSerializer.java | 20 - .../SetWindowPosRequestJsonSerializer.java | 23 - .../jackson/SleepRequestJsonSerializer.java | 19 - .../StopEventInfoJsonDeserializer.java | 19 - .../jackson/StopOrderJsonDeserializer.java | 62 -- ...ribeLevel2QuotesRequestJsonSerializer.java | 20 - .../jackson/SysDateRequestJsonSerializer.java | 18 - .../json/jackson/TradeJsonDeserializer.java | 75 -- .../jackson/TransReplyJsonDeserializer.java | 44 -- ...ribeLevel2QuotesRequestJsonSerializer.java | 20 - .../AccountBalancePbDeserializer.java | 44 ++ .../serde/protobuf/AccountBalancePbSerde.java | 73 -- .../AccountPositionPbDeserializer.java | 47 ++ .../protobuf/AccountPositionPbSerde.java | 79 -- .../protobuf/AddColumnArgsPbSerializer.java | 58 ++ .../protobuf/AddColumnRequestPbSerde.java | 123 --- .../AddColumnResultPbDeserializer.java | 24 + .../protobuf/AddColumnResultPbSerde.java | 37 - .../protobuf/AddLabelArgsPbSerializer.java | 24 + .../protobuf/AddLabelRequestPbSerde.java | 57 -- .../AddLabelResultPbDeserializer.java | 24 + .../serde/protobuf/AddLabelResultPbSerde.java | 37 - .../protobuf/AllTradePbDeserializer.java | 47 ++ .../rpc/serde/protobuf/AllTradePbSerde.java | 79 -- .../protobuf/AllocTableRequestPbSerde.java | 41 - .../AllocTableResultPbDeserializer.java | 24 + .../protobuf/AllocTableResultPbSerde.java | 37 - .../protobuf/BuySellInfoExPbDeserializer.java | 38 + .../serde/protobuf/BuySellInfoExPbSerde.java | 58 -- .../protobuf/BuySellInfoPbDeserializer.java | 49 ++ .../serde/protobuf/BuySellInfoPbSerde.java | 82 -- .../protobuf/CalcBuySellArgsPbSerializer.java | 29 + .../protobuf/CalcBuySellRequestPbSerde.java | 69 -- .../CalcBuySellResultPbDeserializer.java | 24 + .../protobuf/CalcBuySellResultPbSerde.java | 38 - .../CancelParamRequestArgsPbSerializer.java | 25 + .../CancelParamRequestRequestPbSerde.java | 61 -- ...ancelParamRequestResultPbDeserializer.java | 24 + .../CancelParamRequestResultPbSerde.java | 37 - .../protobuf/CandleEntryPbDeserializer.java | 40 + .../serde/protobuf/CandleEntryPbSerde.java | 65 -- .../protobuf/ClassInfoPbDeserializer.java | 33 + .../rpc/serde/protobuf/ClassInfoPbSerde.java | 52 -- .../serde/protobuf/ClearArgsPbSerializer.java | 23 + .../serde/protobuf/ClearRequestPbSerde.java | 54 -- .../protobuf/ClearResultPbDeserializer.java | 24 + .../serde/protobuf/ClearResultPbSerde.java | 37 - .../ConnectedEventInfoPbDeserializer.java | 24 + .../protobuf/ConnectedEventInfoPbSerde.java | 38 - .../CreateWindowArgsPbSerializer.java | 23 + .../protobuf/CreateWindowRequestPbSerde.java | 54 -- .../CreateWindowResultPbDeserializer.java | 24 + .../protobuf/CreateWindowResultPbSerde.java | 37 - .../protobuf/DateTimeEntryPbDeserializer.java | 36 + .../serde/protobuf/DateTimeEntryPbSerde.java | 58 -- .../DelAllLabelsArgsPbSerializer.java | 23 + .../protobuf/DelAllLabelsRequestPbSerde.java | 54 -- .../DelAllLabelsResultPbDeserializer.java | 24 + .../protobuf/DelAllLabelsResultPbSerde.java | 37 - .../protobuf/DelLabelArgsPbSerializer.java | 24 + .../protobuf/DelLabelRequestPbSerde.java | 55 -- .../DelLabelResultPbDeserializer.java | 24 + .../serde/protobuf/DelLabelResultPbSerde.java | 37 - .../protobuf/DeleteRowArgsPbSerializer.java | 24 + .../protobuf/DeleteRowRequestPbSerde.java | 55 -- .../DeleteRowResultPbDeserializer.java | 24 + .../protobuf/DeleteRowResultPbSerde.java | 37 - .../DepoLimitDeletePbDeserializer.java | 33 + .../protobuf/DepoLimitDeletePbSerde.java | 52 -- .../protobuf/DepoLimitPbDeserializer.java | 42 ++ .../rpc/serde/protobuf/DepoLimitPbSerde.java | 70 -- .../serde/protobuf/DepoPbDeserializer.java | 37 + .../lua/rpc/serde/protobuf/DepoPbSerde.java | 58 -- .../DestroyTableArgsPbSerializer.java | 23 + .../protobuf/DestroyTableRequestPbSerde.java | 54 -- .../DestroyTableResultPbDeserializer.java | 24 + .../protobuf/DestroyTableResultPbSerde.java | 37 - .../serde/protobuf/FirmPbDeserializer.java | 33 + .../lua/rpc/serde/protobuf/FirmPbSerde.java | 51 -- .../FromPbConverter.java} | 16 +- .../FuturesClientHoldingPbDeserializer.java | 47 ++ .../protobuf/FuturesClientHoldingPbSerde.java | 80 -- .../FuturesLimitDeletePbDeserializer.java | 30 + .../protobuf/FuturesLimitDeletePbSerde.java | 46 -- .../protobuf/FuturesLimitPbDeserializer.java | 45 ++ .../serde/protobuf/FuturesLimitPbSerde.java | 76 -- .../GetBuySellInfoArgsPbSerializer.java | 27 + .../GetBuySellInfoExArgsPbSerializer.java | 27 + .../GetBuySellInfoExRequestPbSerde.java | 66 -- .../GetBuySellInfoExResultPbDeserializer.java | 26 + .../GetBuySellInfoExResultPbSerde.java | 40 - .../GetBuySellInfoRequestPbSerde.java | 66 -- .../GetBuySellInfoResultPbDeserializer.java | 26 + .../protobuf/GetBuySellInfoResultPbSerde.java | 40 - .../GetCandlesByIndexArgsPbSerializer.java | 26 + .../GetCandlesByIndexRequestPbSerde.java | 63 -- ...GetCandlesByIndexResultPbDeserializer.java | 39 + .../GetCandlesByIndexResultPbSerde.java | 61 -- .../protobuf/GetCellArgsPbSerializer.java | 25 + .../serde/protobuf/GetCellRequestPbSerde.java | 61 -- .../protobuf/GetCellResultPbDeserializer.java | 27 + .../serde/protobuf/GetCellResultPbSerde.java | 41 - .../GetClassInfoArgsPbSerializer.java | 23 + .../protobuf/GetClassInfoRequestPbSerde.java | 54 -- .../GetClassInfoResultPbDeserializer.java | 34 + .../protobuf/GetClassInfoResultPbSerde.java | 53 -- .../GetClassSecuritiesArgsPbSerializer.java | 23 + .../GetClassSecuritiesRequestPbSerde.java | 54 -- ...etClassSecuritiesResultPbDeserializer.java | 26 + .../GetClassSecuritiesResultPbSerde.java | 40 - .../GetClassesListRequestPbSerde.java | 42 -- .../GetClassesListResultPbDeserializer.java | 26 + .../protobuf/GetClassesListResultPbSerde.java | 40 - .../protobuf/GetDepoArgsPbSerializer.java | 26 + .../protobuf/GetDepoExArgsPbSerializer.java | 30 + .../protobuf/GetDepoExRequestPbSerde.java | 64 -- .../GetDepoExResultPbDeserializer.java | 30 + .../protobuf/GetDepoExResultPbSerde.java | 49 -- .../serde/protobuf/GetDepoRequestPbSerde.java | 63 -- .../protobuf/GetDepoResultPbDeserializer.java | 26 + .../serde/protobuf/GetDepoResultPbSerde.java | 40 - .../GetFuturesHoldingArgsPbSerializer.java | 26 + .../GetFuturesHoldingRequestPbSerde.java | 62 -- ...GetFuturesHoldingResultPbDeserializer.java | 30 + .../GetFuturesHoldingResultPbSerde.java | 50 -- .../GetFuturesLimitArgsPbSerializer.java | 26 + .../GetFuturesLimitRequestPbSerde.java | 62 -- .../GetFuturesLimitResultPbDeserializer.java | 30 + .../GetFuturesLimitResultPbSerde.java | 49 -- .../GetInfoParamArgsPbSerializer.java | 23 + .../protobuf/GetInfoParamRequestPbSerde.java | 54 -- .../GetInfoParamResultPbDeserializer.java | 24 + .../protobuf/GetInfoParamResultPbSerde.java | 37 - .../protobuf/GetItemArgsPbSerializer.java | 24 + .../serde/protobuf/GetItemRequestPbSerde.java | 55 -- .../protobuf/GetItemResultPbDeserializer.java | 25 + .../serde/protobuf/GetItemResultPbSerde.java | 46 -- .../GetLabelParamsArgsPbSerializer.java | 24 + .../GetLabelParamsRequestPbSerde.java | 55 -- .../GetLabelParamsResultPbDeserializer.java | 25 + .../protobuf/GetLabelParamsResultPbSerde.java | 46 -- .../GetLinesCountArgsPbSerializer.java | 23 + .../protobuf/GetLinesCountRequestPbSerde.java | 54 -- .../GetLinesCountResultPbDeserializer.java | 24 + .../protobuf/GetLinesCountResultPbSerde.java | 37 - .../protobuf/GetMoneyArgsPbSerializer.java | 26 + .../protobuf/GetMoneyExArgsPbSerializer.java | 27 + .../protobuf/GetMoneyExRequestPbSerde.java | 65 -- .../GetMoneyExResultPbDeserializer.java | 30 + .../protobuf/GetMoneyExResultPbSerde.java | 50 -- .../protobuf/GetMoneyRequestPbSerde.java | 63 -- .../GetMoneyResultPbDeserializer.java | 26 + .../serde/protobuf/GetMoneyResultPbSerde.java | 41 - .../GetNumCandlesArgsPbSerializer.java | 23 + .../protobuf/GetNumCandlesRequestPbSerde.java | 54 -- .../GetNumCandlesResultPbDeserializer.java | 24 + .../protobuf/GetNumCandlesResultPbSerde.java | 37 - .../protobuf/GetNumberOfArgsPbSerializer.java | 23 + .../protobuf/GetNumberOfRequestPbSerde.java | 54 -- .../GetNumberOfResultPbDeserializer.java | 24 + .../protobuf/GetNumberOfResultPbSerde.java | 37 - .../GetOrderByNumberArgsPbSerializer.java | 24 + .../GetOrderByNumberRequestPbSerde.java | 55 -- .../GetOrderByNumberResultPbDeserializer.java | 31 + .../GetOrderByNumberResultPbSerde.java | 50 -- .../protobuf/GetParamEx2ArgsPbSerializer.java | 25 + .../protobuf/GetParamEx2RequestPbSerde.java | 61 -- .../GetParamEx2ResultPbDeserializer.java | 40 + .../protobuf/GetParamEx2ResultPbSerde.java | 64 -- .../protobuf/GetParamExArgsPbSerializer.java | 25 + .../protobuf/GetParamExRequestPbSerde.java | 61 -- .../GetParamExResultPbDeserializer.java | 40 + .../protobuf/GetParamExResultPbSerde.java | 65 -- .../GetPortfolioInfoArgsPbSerializer.java | 24 + .../GetPortfolioInfoExArgsPbSerializer.java | 25 + .../GetPortfolioInfoExRequestPbSerde.java | 61 -- ...tPortfolioInfoExResultPbDeserializer.java} | 52 +- .../GetPortfolioInfoRequestPbSerde.java | 59 -- .../GetPortfolioInfoResultPbDeserializer.java | 32 + .../GetPortfolioInfoResultPbSerde.java | 47 -- .../GetQuoteLevel2ArgsPbSerializer.java | 24 + .../GetQuoteLevel2RequestPbSerde.java | 59 -- .../GetQuoteLevel2ResultPbDeserializer.java | 43 ++ .../protobuf/GetQuoteLevel2ResultPbSerde.java | 69 -- .../protobuf/GetScriptPathRequestPbSerde.java | 42 -- .../GetScriptPathResultPbDeserializer.java | 24 + .../protobuf/GetScriptPathResultPbSerde.java | 37 - .../GetSecurityInfoArgsPbSerializer.java | 24 + .../GetSecurityInfoRequestPbSerde.java | 59 -- .../GetSecurityInfoResultPbDeserializer.java | 30 + .../GetSecurityInfoResultPbSerde.java | 51 -- .../GetTableSizeArgsPbSerializer.java | 23 + .../protobuf/GetTableSizeRequestPbSerde.java | 54 -- .../GetTableSizeResultPbDeserializer.java | 34 + .../protobuf/GetTableSizeResultPbSerde.java | 57 -- .../protobuf/GetTradeDateRequestPbSerde.java | 42 -- .../GetTradeDateResultPbDeserializer.java | 38 + .../protobuf/GetTradeDateResultPbSerde.java | 61 -- .../GetWindowCaptionArgsPbSerializer.java | 23 + .../GetWindowCaptionRequestPbSerde.java | 54 -- .../GetWindowCaptionResultPbDeserializer.java | 26 + .../GetWindowCaptionResultPbSerde.java | 41 - .../GetWindowRectArgsPbSerializer.java | 23 + .../protobuf/GetWindowRectRequestPbSerde.java | 54 -- .../GetWindowRectResultPbDeserializer.java | 36 + .../protobuf/GetWindowRectResultPbSerde.java | 61 -- .../GetWorkingFolderRequestPbSerde.java | 42 -- .../GetWorkingFolderResultPbDeserializer.java | 24 + .../GetWorkingFolderResultPbSerde.java | 37 - .../protobuf/HighlightArgsPbSerializer.java | 28 + .../protobuf/HighlightRequestPbSerde.java | 67 -- .../HighlightResultPbDeserializer.java | 24 + .../protobuf/HighlightResultPbSerde.java | 37 - .../protobuf/InsertRowArgsPbSerializer.java | 24 + .../protobuf/InsertRowRequestPbSerde.java | 59 -- .../InsertRowResultPbDeserializer.java | 24 + .../protobuf/InsertRowResultPbSerde.java | 37 - .../protobuf/IsConnectedRequestPbSerde.java | 42 -- .../IsConnectedResultPbDeserializer.java | 24 + .../protobuf/IsConnectedResultPbSerde.java | 37 - ...ubscribedLevel2QuotesArgsPbSerializer.java | 25 + ...sSubscribedLevel2QuotesRequestPbSerde.java | 59 -- ...ribedLevel2QuotesResultPbDeserializer.java | 25 + ...IsSubscribedLevel2QuotesResultPbSerde.java | 37 - .../IsWindowClosedArgsPbSerializer.java | 23 + .../IsWindowClosedRequestPbSerde.java | 54 -- .../IsWindowClosedResultPbDeserializer.java | 26 + .../protobuf/IsWindowClosedResultPbSerde.java | 53 -- .../protobuf/MessageArgsPbSerializer.java | 44 ++ .../serde/protobuf/MessageRequestPbSerde.java | 93 --- .../protobuf/MessageResultPbDeserializer.java | 29 + .../serde/protobuf/MessageResultPbSerde.java | 53 -- .../MoneyLimitDeletePbDeserializer.java | 33 + .../protobuf/MoneyLimitDeletePbSerde.java | 52 -- .../protobuf/MoneyLimitPbDeserializer.java | 42 ++ .../rpc/serde/protobuf/MoneyLimitPbSerde.java | 69 -- .../serde/protobuf/MoneyPbDeserializer.java | 35 + .../lua/rpc/serde/protobuf/MoneyPbSerde.java | 55 -- .../serde/protobuf/NegDealPbDeserializer.java | 87 +++ .../rpc/serde/protobuf/NegDealPbSerde.java | 161 ---- .../protobuf/NegTradePbDeserializer.java | 89 +++ .../rpc/serde/protobuf/NegTradePbSerde.java | 164 ---- .../serde/protobuf/OrderPbDeserializer.java | 78 ++ .../lua/rpc/serde/protobuf/OrderPbSerde.java | 144 ---- .../ParamEventInfoPbDeserializer.java | 30 + .../serde/protobuf/ParamEventInfoPbSerde.java | 47 -- .../ParamRequestArgsPbSerializer.java | 25 + .../protobuf/ParamRequestRequestPbSerde.java | 61 -- .../ParamRequestResultPbDeserializer.java | 25 + .../protobuf/ParamRequestResultPbSerde.java | 37 - .../protobuf/PortfolioInfoPbDeserializer.java | 68 ++ .../serde/protobuf/PortfolioInfoPbSerde.java | 121 --- .../protobuf/PrintDbgStrArgsPbSerializer.java | 23 + ...=> ProtobufQluaEventTypeDeserializer.java} | 60 +- .../serde/protobuf/ProtobufSerdeModule.java | 361 +++++---- .../serde/protobuf/ProtobufSerdeUtils.java | 170 ++--- .../protobuf/QuoteEntryPbDeserializer.java | 28 + .../rpc/serde/protobuf/QuoteEntryPbSerde.java | 42 -- .../QuoteEventInfoPbDeserializer.java | 30 + .../serde/protobuf/QuoteEventInfoPbSerde.java | 46 -- .../serde/protobuf/RGBArgsPbSerializer.java | 25 + .../protobuf/RGBResultPbDeserializer.java | 24 + .../protobuf/RequestEnvelopePbSerializer.java | 154 ++++ .../ResponseEnvelopePbDeserializer.java | 36 + .../protobuf/ResponseEnvelopePbSerde.java | 66 -- .../protobuf/SearchItemsArgsPbSerializer.java | 39 + .../SearchItemsResultPbDeserializer.java | 30 + .../protobuf/SecurityPbDeserializer.java | 40 + .../rpc/serde/protobuf/SecurityPbSerde.java | 66 -- .../SendTransactionArgsPbSerializer.java | 25 + .../SendTransactionResultPbDeserializer.java | 25 + .../protobuf/ServiceErrorPbDeserializer.java | 26 + .../serde/protobuf/ServiceErrorPbSerde.java | 40 - .../protobuf/SetCellArgsPbSerializer.java | 35 + .../protobuf/SetCellResultPbDeserializer.java | 25 + .../protobuf/SetColorArgsPbSerializer.java | 31 + .../SetColorResultPbDeserializer.java | 25 + .../SetLabelParamsArgsPbSerializer.java | 27 + .../SetLabelParamsResultPbDeserializer.java | 25 + .../SetSelectedRowArgsPbSerializer.java | 26 + .../SetSelectedRowResultPbDeserializer.java | 25 + ...eNotificationCallbackArgsPbSerializer.java | 26 + ...ificationCallbackResultPbDeserializer.java | 25 + .../SetWindowCaptionArgsPbSerializer.java | 26 + .../SetWindowCaptionResultPbDeserializer.java | 24 + .../SetWindowPosArgsPbSerializer.java | 29 + .../SetWindowPosResultPbDeserializer.java | 25 + .../serde/protobuf/SleepArgsPbSerializer.java | 25 + .../protobuf/SleepResultPbDeserializer.java | 29 + .../protobuf/StopEventInfoPbDeserializer.java | 24 + .../serde/protobuf/StopEventInfoPbSerde.java | 38 - .../protobuf/StopOrderPbDeserializer.java | 72 ++ .../rpc/serde/protobuf/StopOrderPbSerde.java | 130 ---- ...SubscribeLevel2QuotesArgsPbSerializer.java | 27 + ...cribeLevel2QuotesResultPbDeserializer.java | 26 + .../lua/rpc/serde/protobuf/ToPbConverter.java | 21 + .../serde/protobuf/TradePbDeserializer.java | 84 +++ .../lua/rpc/serde/protobuf/TradePbSerde.java | 156 ---- .../protobuf/TransReplyPbDeserializer.java | 51 ++ .../rpc/serde/protobuf/TransReplyPbSerde.java | 87 --- ...subscribeLevel2QuotesArgsPbSerializer.java | 27 + ...cribeLevel2QuotesResultPbDeserializer.java | 26 + src/main/proto/qlua/rpc/AddLabel.proto | 6 +- src/main/proto/qlua/rpc/GetLabelParams.proto | 6 +- src/main/proto/qlua/rpc/IsWindowClosed.proto | 9 +- src/main/proto/qlua/rpc/SearchItems.proto | 29 +- .../rpc/datasource/CreateDataSource.proto | 9 +- src/main/proto/qlua/rpc/getInfoParam.proto | 2 - src/main/proto/qlua/rpc/getItem.proto | 4 +- .../proto/qlua/rpc/getOrderByNumber.proto | 5 +- src/main/proto/qlua/rpc/qlua_structures.proto | 114 ++- src/main/proto/qlua/rpc/sleep.proto | 6 +- .../api/messages/AddColumnJsonSerdeTest.java | 61 -- .../api/messages/AddLabelJsonSerdeTest.java | 4 +- .../api/messages/AllocTableJsonSerdeTest.java | 20 +- .../messages/GetClassInfoJsonSerdeTest.java | 4 +- .../GetFuturesHoldingJsonSerdeTest.java | 4 +- .../GetFuturesLimitJsonSerdeTest.java | 4 +- .../messages/PrintDbgStrJsonSerdeTest.java | 8 +- .../protobuf/GetCellRequestPbSerdeTest.java | 6 +- .../wip/AbstractJsonDeserializationTest.java | 27 + .../AbstractJsonRpcArgsSerializationTest.java | 29 + .../java/wip/AbstractJsonSerdeModuleTest.java | 11 + ...tractRpcResultJsonDeserializationTest.java | 27 + .../java/wip/AddColumnJsonSerdeTests.java | 43 ++ src/test/java/wip/AddLabelJsonSerdeTests.java | 45 ++ .../java/wip/AllocTableJsonSerdeTests.java | 22 + src/test/java/wip/BitBAndJsonSerdeTests.java | 57 ++ src/test/java/wip/BitBNotJsonSerdeTests.java | 33 + src/test/java/wip/BitBOrJsonSerdeTests.java | 57 ++ src/test/java/wip/BitBXorJsonSerdeTests.java | 57 ++ src/test/java/wip/BitTestJsonSerdeTests.java | 52 ++ src/test/java/wip/BitToHexJsonSerdeTests.java | 55 ++ .../java/wip/CalcBuySellJsonSerdeTests.java | 44 ++ .../wip/CancelParamRequestJsonSerdeTests.java | 40 + src/test/java/wip/ClearJsonSerdeTests.java | 48 ++ .../java/wip/CreateWindowJsonSerdeTests.java | 35 + .../java/wip/DatasourceCJsonSerdeTests.java | 35 + .../wip/DatasourceCloseJsonSerdeTests.java | 48 ++ ...asourceCreateDataSourceJsonSerdeTests.java | 80 ++ .../java/wip/DatasourceHJsonSerdeTests.java | 35 + .../java/wip/DatasourceLJsonSerdeTests.java | 35 + .../java/wip/DatasourceOJsonSerdeTests.java | 35 + ...asourceSetEmptyCallbackJsonSerdeTests.java | 48 ++ ...sourceSetUpdateCallbackJsonSerdeTests.java | 52 ++ .../wip/DatasourceSizeJsonSerdeTests.java | 35 + .../java/wip/DatasourceTJsonSerdeTests.java | 46 ++ .../java/wip/DatasourceVJsonSerdeTests.java | 35 + .../java/wip/DelAllLabelsJsonSerdeTests.java | 35 + src/test/java/wip/DelLabelJsonSerdeTests.java | 35 + .../java/wip/DeleteRowJsonSerdeTests.java | 39 + .../java/wip/DestroyTableJsonSerdeTests.java | 35 + .../wip/GetBuySellInfoExJsonSerdeTests.java | 79 ++ .../wip/GetBuySellInfoJsonSerdeTests.java | 67 ++ .../wip/GetCandlesByIndexJsonSerdeTests.java | 95 +++ src/test/java/wip/GetCellJsonSerdeTests.java | 44 ++ .../java/wip/GetClassInfoJsonSerdeTests.java | 45 ++ .../wip/GetClassSecuritiesJsonSerdeTests.java | 35 + .../wip/GetClassesListJsonSerdeTests.java | 22 + .../java/wip/GetDepoExJsonSerdeTests.java | 62 ++ src/test/java/wip/GetDepoJsonSerdeTests.java | 55 ++ .../wip/GetFuturesHoldingJsonSerdeTests.java | 66 ++ .../wip/GetFuturesLimitJsonSerdeTests.java | 64 ++ .../java/wip/GetInfoParamJsonSerdeTests.java | 35 + src/test/java/wip/GetItemJsonSerdeTests.java | 48 ++ .../wip/GetLabelParamsJsonSerdeTests.java | 48 ++ .../java/wip/GetLinesCountJsonSerdeTests.java | 35 + .../java/wip/GetMoneyExJsonSerdeTests.java | 61 ++ src/test/java/wip/GetMoneyJsonSerdeTests.java | 54 ++ .../java/wip/GetNumCandlesJsonSerdeTests.java | 35 + .../java/wip/GetNumberOfJsonSerdeTests.java | 35 + .../wip/GetOrderByNumberJsonSerdeTests.java | 181 +++++ .../java/wip/GetParamEx2JsonSerdeTests.java | 48 ++ .../java/wip/GetParamExJsonSerdeTests.java | 48 ++ .../wip/GetPortfolioInfoExJsonSerdeTests.java | 179 +++++ .../wip/GetPortfolioInfoJsonSerdeTests.java | 128 ++++ .../wip/GetQuoteLevel2JsonSerdeTests.java | 61 ++ .../java/wip/GetScriptPathJsonSerdeTests.java | 22 + .../wip/GetSecurityInfoJsonSerdeTests.java | 86 +++ .../java/wip/GetTableSizeJsonSerdeTests.java | 54 ++ .../java/wip/GetTradeDateJsonSerdeTests.java | 30 + .../wip/GetWindowCaptionJsonSerdeTests.java | 48 ++ .../java/wip/GetWindowRectJsonSerdeTests.java | 56 ++ .../wip/GetWorkingFolderJsonSerdeTests.java | 22 + .../java/wip/HighlightJsonSerdeTests.java | 56 ++ .../java/wip/InsertRowJsonSerdeTests.java | 39 + .../java/wip/IsConnectedJsonSerdeTests.java | 48 ++ ...sSubscribedLevel2QuotesJsonSerdeTests.java | 52 ++ .../wip/IsWindowClosedJsonSerdeTests.java | 61 ++ src/test/java/wip/MessageJsonSerdeTests.java | 74 ++ .../java/wip/ParamRequestJsonSerdeTests.java | 53 ++ .../java/wip/PrintDbgStrJsonSerdeTests.java | 22 + src/test/java/wip/RGBJsonSerdeTests.java | 40 + .../java/wip/SearchItemsJsonSerdeTests.java | 106 +++ .../wip/SendTransactionJsonSerdeTests.java | 43 ++ src/test/java/wip/SetCellJsonSerdeTests.java | 74 ++ src/test/java/wip/SetColorJsonSerdeTests.java | 73 ++ .../wip/SetLabelParamsJsonSerdeTests.java | 58 ++ .../wip/SetSelectedRowJsonSerdeTests.java | 68 ++ ...bleNotificationCallbackJsonSerdeTests.java | 61 ++ .../wip/SetWindowCaptionJsonSerdeTests.java | 48 ++ .../java/wip/SetWindowPosJsonSerdeTests.java | 55 ++ src/test/java/wip/SleepJsonSerdeTests.java | 48 ++ .../SubscribeLevel2QuotesJsonSerdeTests.java | 52 ++ src/test/java/wip/SysdateJsonSerdeTests.java | 36 + ...UnsubscribeLevel2QuotesJsonSerdeTests.java | 52 ++ .../AccountBalanceJsonSerdeTests.java | 40 + .../AccountPositionJsonSerdeTests.java | 43 ++ .../structures/AllTradeJsonSerdeTests.java | 57 ++ .../ConnectedEventInfoSerdeTests.java | 36 + .../DepoLimitDeleteJsonSerdeTests.java | 30 + .../structures/DepoLimitJsonSerdeTests.java | 39 + .../wip/structures/FirmJsonSerdeTests.java | 29 + .../FuturesClientHoldingJsonSerdeTests.java | 44 ++ .../FuturesLimitDeleteJsonSerdeTests.java | 27 + .../FuturesLimitJsonSerdeTests.java | 42 ++ .../MoneyLimitDeleteJsonSerdeTests.java | 30 + .../structures/MoneyLimitJsonSerdeTests.java | 41 + .../wip/structures/NegDealJsonSerdeTests.java | 121 +++ .../structures/NegTradeJsonSerdeTests.java | 87 +++ .../wip/structures/OrderJsonSerdeTests.java | 107 +++ .../ParamEventInfoJsonSerdeTests.java | 27 + .../QuoteEventInfoJsonSerdeTests.java | 27 + .../StopEventInfoJsonSerdeTests.java | 49 ++ .../structures/StopOrderJsonSerdeTests.java | 97 +++ .../wip/structures/TradeJsonSerdeTests.java | 116 +++ .../structures/TransReplyJsonSerdeTests.java | 70 ++ .../resources/json/AddColumn.request.json | 11 - src/test/resources/json/AddColumn/args.json | 1 + .../result.json} | 0 src/test/resources/json/AddLabel.request.json | 11 - src/test/resources/json/AddLabel/args.json | 1 + .../result.json} | 0 .../resources/json/AllocTable.request.json | 4 - .../result.json} | 0 src/test/resources/json/CalcBuySell/args.json | 1 + .../resources/json/CalcBuySell/result.json | 4 + .../json/CancelParamRequest/args.json | 1 + .../result.json} | 0 src/test/resources/json/Clear/args.json | 1 + .../false.result.json} | 0 .../true.result.json} | 0 .../resources/json/CreateWindow/args.json | 1 + .../result.json} | 0 .../resources/json/DelAllLabels/args.json | 1 + .../result.json} | 0 src/test/resources/json/DelLabel/args.json | 1 + .../result.json} | 0 src/test/resources/json/DeleteRow/args.json | 1 + .../result.json} | 0 .../resources/json/DestroyTable/args.json | 1 + .../result.json} | 0 src/test/resources/json/GetCell/args.json | 1 + src/test/resources/json/GetCell/result.json | 4 + .../json/GetLabelParams.request.json | 7 - .../resources/json/GetTableSize.request.json | 6 - .../resources/json/GetTableSize/args.json | 1 + .../error.result.json} | 0 .../result.json} | 0 .../json/GetWindowCaption.request.json | 6 - .../resources/json/GetWindowCaption/args.json | 1 + .../error.result.json} | 0 .../result.json} | 0 .../resources/json/GetWindowRect.request.json | 6 - .../resources/json/GetWindowRect/args.json | 1 + .../error.result.json} | 0 .../result.json} | 0 .../resources/json/Highlight.request.json | 11 - src/test/resources/json/Highlight/args.json | 1 + .../false.result.json} | 0 .../true.result.json} | 0 .../resources/json/InsertRow.request.json | 7 - src/test/resources/json/InsertRow/args.json | 1 + .../result.json} | 0 .../IsSubscribed_Level_II_Quotes.request.json | 7 - .../IsSubscribed_Level_II_Quotes/args.json | 1 + .../false.result.json} | 0 .../true.result.json} | 0 .../json/IsWindowClosed.request.json | 6 - .../json/IsWindowClosed.result.error.json | 3 - .../json/IsWindowClosed.result.false.json | 5 - .../json/IsWindowClosed.result.true.json | 5 - .../resources/json/IsWindowClosed/args.json | 1 + .../error.result.json} | 0 .../json/IsWindowClosed/false.result.json | 3 + .../json/IsWindowClosed/true.result.json | 3 + .../resources/json/ParamRequest/args.json | 1 + .../json/ParamRequest/false.result.json | 3 + .../resources/json/ParamRequest/request.json | 8 - .../true.result.json} | 0 .../resources/json/PrintDbgStr.request.json | 4 - .../resources/json/PrintDbgStr.result.json | 3 - src/test/resources/json/PrintDbgStr/args.json | 1 + src/test/resources/json/RGB.request.json | 8 - src/test/resources/json/RGB/args.json | 1 + .../result.json} | 0 .../json/SearchItems.request_full_args.json | 10 - .../SearchItems.request_required_args.json | 9 - .../json/SearchItems/empty.result.json | 3 + .../resources/json/SearchItems/full.args.json | 1 + .../json/SearchItems/null.result.json | 3 + .../result.json} | 0 .../SearchItems/without_end_index.args.json | 1 + .../json/SearchItems/without_params.args.json | 1 + src/test/resources/json/SetCell.request.json | 10 - .../resources/json/SetCell/false.result.json | 3 + .../resources/json/SetCell/full.args.json | 1 + .../true.result.json} | 0 .../json/SetCell/without_value.args.json | 1 + src/test/resources/json/SetColor.request.json | 12 - src/test/resources/json/SetColor/args.json | 1 + .../resources/json/SetColor/default.args.json | 1 + .../resources/json/SetColor/false.result.json | 3 + .../true.result.json} | 0 .../json/SetLabelParams.request.json | 12 - .../resources/json/SetLabelParams/args.json | 1 + .../json/SetLabelParams/false.result.json | 3 + .../true.result.json} | 0 .../json/SetSelectedRow.request.json | 7 - .../resources/json/SetSelectedRow/args.json | 1 + .../json/SetSelectedRow/default_row.args.json | 1 + .../json/SetSelectedRow/error.result.json | 3 + .../ok.result.json} | 0 .../SetTableNotificationCallback.request.json | 7 - .../SetTableNotificationCallback/args.json | 1 + .../error.result.json | 3 + .../ok.result.json} | 0 .../other.result.json | 3 + .../json/SetWindowCaption.request.json | 7 - .../resources/json/SetWindowCaption/args.json | 1 + .../json/SetWindowCaption/false.result.json | 3 + .../true.result.json} | 0 .../resources/json/SetWindowPos.request.json | 10 - .../resources/json/SetWindowPos/args.json | 1 + .../json/SetWindowPos/false.result.json | 3 + .../true.result.json} | 0 .../Subscribe_Level_II_Quotes.request.json | 7 - .../json/Subscribe_Level_II_Quotes/args.json | 1 + .../false.result.json | 3 + .../true.result.json | 3 + .../Unsubscribe_Level_II_Quotes.request.json | 7 - .../Unsubscribe_Level_II_Quotes/args.json | 1 + .../false.result.json | 3 + .../true.result.json | 3 + .../json/bit.band.request_full_args.json | 8 - .../json/bit.band.request_required_args.json | 7 - src/test/resources/json/bit.bnot.request.json | 6 - .../json/bit.bor.request_full_args.json | 8 - .../json/bit.bor.request_required_args.json | 7 - .../json/bit.bxor.request_full_args.json | 8 - .../json/bit.bxor.request_required_args.json | 7 - src/test/resources/json/bit.test.request.json | 7 - .../resources/json/bit.tohex.request.json | 7 - .../resources/json/bit/band/full.args.json | 1 + .../band/result.json} | 0 .../json/bit/band/without_xi.args.json | 1 + src/test/resources/json/bit/bnot/args.json | 1 + .../bnot/result.json} | 0 .../resources/json/bit/bor/full.args.json | 1 + .../bor/result.json} | 0 .../json/bit/bor/without_xi.args.json | 1 + .../resources/json/bit/bxor/full.args.json | 1 + .../bxor/result.json} | 0 .../json/bit/bxor/without_xi.args.json | 1 + src/test/resources/json/bit/test/args.json | 1 + .../resources/json/bit/test/false.result.json | 3 + .../resources/json/bit/test/true.result.json | 3 + .../resources/json/bit/tohex/full.args.json | 1 + .../tohex/result.json} | 0 .../json/bit/tohex/without_n.args.json | 1 + .../resources/json/datasource.C.request.json | 7 - ...ce.CreateDataSource.request_full_args.json | 9 - ...reateDataSource.request_required_args.json | 8 - .../resources/json/datasource.H.request.json | 7 - .../resources/json/datasource.L.request.json | 7 - .../resources/json/datasource.O.request.json | 7 - .../datasource.SetEmptyCallback.request.json | 6 - .../datasource.SetUpdateCallback.request.json | 7 - .../json/datasource.Size.request.json | 6 - .../resources/json/datasource.T.request.json | 7 - .../resources/json/datasource.V.request.json | 7 - .../resources/json/datasource/C/args.json | 1 + .../C/result.json} | 0 .../resources/json/datasource/Close/args.json | 1 + .../json/datasource/Close/false.result.json | 3 + .../json/datasource/Close/true.result.json | 3 + .../CreateDataSource/error.result.json} | 0 .../CreateDataSource/full.args.json | 1 + .../CreateDataSource/result.json} | 0 .../CreateDataSource/without_param.args.json | 1 + .../resources/json/datasource/H/args.json | 1 + .../H/result.json} | 0 .../resources/json/datasource/L/args.json | 1 + .../L/result.json} | 0 .../resources/json/datasource/O/args.json | 1 + .../O/result.json} | 0 .../datasource/SetEmptyCallback/args.json | 1 + .../SetEmptyCallback/false.result.json | 3 + .../SetEmptyCallback/true.result.json | 3 + .../datasource/SetUpdateCallback/args.json | 1 + .../SetUpdateCallback/false.result.json | 3 + .../SetUpdateCallback/true.result.json | 3 + .../resources/json/datasource/Size/args.json | 1 + .../Size/result.json} | 0 .../resources/json/datasource/T/args.json | 1 + .../T/result.json} | 0 .../resources/json/datasource/V/args.json | 1 + .../V/result.json} | 0 .../resources/json/getBuySellInfo/args.json | 1 + .../resources/json/getBuySellInfo/result.json | 25 + .../resources/json/getBuySellInfoEx/args.json | 1 + .../json/getBuySellInfoEx/result.json | 36 + .../json/getCandlesByIndex/args.json | 1 + .../json/getCandlesByIndex/result.json | 44 ++ .../resources/json/getClassInfo.request.json | 6 - .../resources/json/getClassInfo/args.json | 1 + .../result.json} | 0 .../json/getClassSecurities/args.json | 1 + .../json/getClassSecurities/result.json | 3 + .../resources/json/getClassesList/result.json | 3 + src/test/resources/json/getDepo/args.json | 1 + src/test/resources/json/getDepo/result.json | 12 + .../resources/json/getDepoEx.request.json | 10 - src/test/resources/json/getDepoEx/args.json | 1 + .../result.json} | 2 +- .../json/getFuturesHolding.request.json | 9 - ...esHolding.result.only_required_fields.json | 1 - .../json/getFuturesHolding/args.json | 1 + .../result.json} | 0 .../json/getFuturesLimit.request.json | 9 - ...uresLimit.result.only_required_fields.json | 1 - .../resources/json/getFuturesLimit/args.json | 1 + .../result.json} | 0 .../resources/json/getInfoParam.request.json | 6 - .../resources/json/getInfoParam/args.json | 1 + .../result.json} | 0 src/test/resources/json/getItem.request.json | 7 - .../getItem.result.only_required_fields.json | 1 - src/test/resources/json/getItem/args.json | 1 + .../result.json} | 0 .../resources/json/getLabelParams/args.json | 1 + .../result.json} | 0 .../resources/json/getLinesCount.request.json | 6 - .../resources/json/getLinesCount/args.json | 1 + .../result.json} | 0 src/test/resources/json/getMoney.request.json | 9 - src/test/resources/json/getMoney/args.json | 1 + .../result.json} | 0 .../resources/json/getMoneyEx.request.json | 10 - ...etMoneyEx.result.only_required_fields.json | 1 - src/test/resources/json/getMoneyEx/args.json | 1 + .../result.json} | 0 .../resources/json/getNumCandles.request.json | 6 - .../resources/json/getNumCandles/args.json | 1 + .../result.json} | 0 .../resources/json/getNumberOf.request.json | 6 - src/test/resources/json/getNumberOf/args.json | 1 + .../result.json} | 0 .../json/getOrderByNumber.error.json | 1 - .../json/getOrderByNumber.request.json | 7 - .../resources/json/getOrderByNumber/args.json | 1 + .../result.json} | 34 +- .../resources/json/getParamEx.request.json | 8 - src/test/resources/json/getParamEx/args.json | 1 + .../result.json} | 0 .../resources/json/getParamEx2.request.json | 8 - src/test/resources/json/getParamEx2/args.json | 1 + .../result.json} | 0 .../json/getPortfolioInfo.request.json | 7 - .../resources/json/getPortfolioInfo/args.json | 1 + .../result.json} | 0 .../json/getPortfolioInfoEx.request.json | 8 - .../json/getPortfolioInfoEx/args.json | 1 + .../result.json} | 0 .../json/getQuoteLevel2.request.json | 7 - .../resources/json/getQuoteLevel2.result.json | 28 - .../resources/json/getQuoteLevel2/args.json | 1 + .../resources/json/getQuoteLevel2/result.json | 36 + .../resources/json/getScriptPath.request.json | 4 - .../result.json} | 0 .../json/getSecurityInfo.request.json | 7 - .../json/getSecurityInfo.result.error.json | 1 - .../resources/json/getSecurityInfo/args.json | 1 + .../error.result.json} | 0 .../result.json} | 0 .../resources/json/getTradeDate.request.json | 4 - .../result.json} | 0 .../json/getWorkingFolder.request.json | 4 - .../result.json} | 0 .../{result.false.json => 0.result.json} | 0 .../{result.true.json => 1.result.json} | 0 ...{result.garbage.json => other.result.json} | 0 .../resources/json/isConnected/request.json | 4 - .../result.missing.is_connected.json | 1 - .../json/message.request_full_args.json | 7 - .../json/message.request_required_args.json | 6 - .../resources/json/message.result.error.json | 3 - .../resources/json/message.result.not_ok.json | 5 - .../resources/json/message.result.ok.json | 5 - .../error.result.json} | 0 .../resources/json/message/full.args.json | 1 + .../resources/json/message/ok.result.json | 3 + .../resources/json/message/other.result.json | 3 + .../json/message/without_icon_type.args.json | 1 + .../resources/json/os.sysdate.request.json | 4 - .../json/sendTransaction.request.json | 10 - .../resources/json/sendTransaction/args.json | 1 + .../result.json} | 0 src/test/resources/json/sleep.request.json | 6 - src/test/resources/json/sleep/args.json | 1 + .../error.result.json} | 0 src/test/resources/json/sleep/result.json | 3 + .../resources/json/structures/AllTrade.json | 3 +- .../ConnectedEventInfo/false.flag.json | 3 + .../true.flag.json} | 0 .../resources/json/structures/DepoLimit.json | 16 + .../json/structures/DepoLimitDelete.json | 7 + src/test/resources/json/structures/Firm.json | 2 +- .../json/structures/FuturesLimitDelete.json | 4 + .../resources/json/structures/MoneyLimit.json | 18 + .../json/structures/MoneyLimitDelete.json | 7 + .../resources/json/structures/NegDeal.json | 93 +++ .../resources/json/structures/NegTrade.json | 64 ++ src/test/resources/json/structures/Order.json | 80 ++ .../json/structures/ParamEventInfo.json | 4 + .../json/structures/QuoteEventInfo.json | 4 + .../StopEventInfo/from_dialog_window.json | 3 + .../StopEventInfo/from_terminal_closure.json | 3 + .../json/structures/StopEventInfo/other.json | 3 + .../resources/json/structures/StopOrder.json | 69 ++ src/test/resources/json/structures/Trade.json | 92 +++ .../resources/json/structures/TransReply.json | 44 ++ .../result.json} | 0 969 files changed, 19132 insertions(+), 16707 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedure.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RpcArgs.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/RpcResult.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/RequestEnvelope.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RemoteProcedureClassJsonSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java rename src/main/java/com/enfernuz/quik/lua/rpc/serde/{PbConverter.java => protobuf/FromPbConverter.java} (60%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java rename src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetPortfolioInfoExResultPbSerde.java => GetPortfolioInfoExResultPbDeserializer.java} (52%) delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java rename src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{ProtobufQluaEventTypeSerde.java => ProtobufQluaEventTypeDeserializer.java} (51%) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ToPbConverter.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbDeserializer.java delete mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbDeserializer.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java create mode 100644 src/test/java/wip/AbstractJsonDeserializationTest.java create mode 100644 src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java create mode 100644 src/test/java/wip/AbstractJsonSerdeModuleTest.java create mode 100644 src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java create mode 100644 src/test/java/wip/AddColumnJsonSerdeTests.java create mode 100644 src/test/java/wip/AddLabelJsonSerdeTests.java create mode 100644 src/test/java/wip/AllocTableJsonSerdeTests.java create mode 100644 src/test/java/wip/BitBAndJsonSerdeTests.java create mode 100644 src/test/java/wip/BitBNotJsonSerdeTests.java create mode 100644 src/test/java/wip/BitBOrJsonSerdeTests.java create mode 100644 src/test/java/wip/BitBXorJsonSerdeTests.java create mode 100644 src/test/java/wip/BitTestJsonSerdeTests.java create mode 100644 src/test/java/wip/BitToHexJsonSerdeTests.java create mode 100644 src/test/java/wip/CalcBuySellJsonSerdeTests.java create mode 100644 src/test/java/wip/CancelParamRequestJsonSerdeTests.java create mode 100644 src/test/java/wip/ClearJsonSerdeTests.java create mode 100644 src/test/java/wip/CreateWindowJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceCJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceCloseJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceHJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceLJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceOJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceSizeJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceTJsonSerdeTests.java create mode 100644 src/test/java/wip/DatasourceVJsonSerdeTests.java create mode 100644 src/test/java/wip/DelAllLabelsJsonSerdeTests.java create mode 100644 src/test/java/wip/DelLabelJsonSerdeTests.java create mode 100644 src/test/java/wip/DeleteRowJsonSerdeTests.java create mode 100644 src/test/java/wip/DestroyTableJsonSerdeTests.java create mode 100644 src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java create mode 100644 src/test/java/wip/GetBuySellInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java create mode 100644 src/test/java/wip/GetCellJsonSerdeTests.java create mode 100644 src/test/java/wip/GetClassInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java create mode 100644 src/test/java/wip/GetClassesListJsonSerdeTests.java create mode 100644 src/test/java/wip/GetDepoExJsonSerdeTests.java create mode 100644 src/test/java/wip/GetDepoJsonSerdeTests.java create mode 100644 src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java create mode 100644 src/test/java/wip/GetFuturesLimitJsonSerdeTests.java create mode 100644 src/test/java/wip/GetInfoParamJsonSerdeTests.java create mode 100644 src/test/java/wip/GetItemJsonSerdeTests.java create mode 100644 src/test/java/wip/GetLabelParamsJsonSerdeTests.java create mode 100644 src/test/java/wip/GetLinesCountJsonSerdeTests.java create mode 100644 src/test/java/wip/GetMoneyExJsonSerdeTests.java create mode 100644 src/test/java/wip/GetMoneyJsonSerdeTests.java create mode 100644 src/test/java/wip/GetNumCandlesJsonSerdeTests.java create mode 100644 src/test/java/wip/GetNumberOfJsonSerdeTests.java create mode 100644 src/test/java/wip/GetOrderByNumberJsonSerdeTests.java create mode 100644 src/test/java/wip/GetParamEx2JsonSerdeTests.java create mode 100644 src/test/java/wip/GetParamExJsonSerdeTests.java create mode 100644 src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java create mode 100644 src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java create mode 100644 src/test/java/wip/GetScriptPathJsonSerdeTests.java create mode 100644 src/test/java/wip/GetSecurityInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/GetTableSizeJsonSerdeTests.java create mode 100644 src/test/java/wip/GetTradeDateJsonSerdeTests.java create mode 100644 src/test/java/wip/GetWindowCaptionJsonSerdeTests.java create mode 100644 src/test/java/wip/GetWindowRectJsonSerdeTests.java create mode 100644 src/test/java/wip/GetWorkingFolderJsonSerdeTests.java create mode 100644 src/test/java/wip/HighlightJsonSerdeTests.java create mode 100644 src/test/java/wip/InsertRowJsonSerdeTests.java create mode 100644 src/test/java/wip/IsConnectedJsonSerdeTests.java create mode 100644 src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java create mode 100644 src/test/java/wip/IsWindowClosedJsonSerdeTests.java create mode 100644 src/test/java/wip/MessageJsonSerdeTests.java create mode 100644 src/test/java/wip/ParamRequestJsonSerdeTests.java create mode 100644 src/test/java/wip/PrintDbgStrJsonSerdeTests.java create mode 100644 src/test/java/wip/RGBJsonSerdeTests.java create mode 100644 src/test/java/wip/SearchItemsJsonSerdeTests.java create mode 100644 src/test/java/wip/SendTransactionJsonSerdeTests.java create mode 100644 src/test/java/wip/SetCellJsonSerdeTests.java create mode 100644 src/test/java/wip/SetColorJsonSerdeTests.java create mode 100644 src/test/java/wip/SetLabelParamsJsonSerdeTests.java create mode 100644 src/test/java/wip/SetSelectedRowJsonSerdeTests.java create mode 100644 src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java create mode 100644 src/test/java/wip/SetWindowCaptionJsonSerdeTests.java create mode 100644 src/test/java/wip/SetWindowPosJsonSerdeTests.java create mode 100644 src/test/java/wip/SleepJsonSerdeTests.java create mode 100644 src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java create mode 100644 src/test/java/wip/SysdateJsonSerdeTests.java create mode 100644 src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/AccountPositionJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/AllTradeJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java create mode 100644 src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/DepoLimitJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/FirmJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/NegDealJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/NegTradeJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/OrderJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/StopOrderJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/TradeJsonSerdeTests.java create mode 100644 src/test/java/wip/structures/TransReplyJsonSerdeTests.java delete mode 100644 src/test/resources/json/AddColumn.request.json create mode 100644 src/test/resources/json/AddColumn/args.json rename src/test/resources/json/{AddColumn.result.json => AddColumn/result.json} (100%) delete mode 100644 src/test/resources/json/AddLabel.request.json create mode 100644 src/test/resources/json/AddLabel/args.json rename src/test/resources/json/{AddLabel.result.json => AddLabel/result.json} (100%) delete mode 100644 src/test/resources/json/AllocTable.request.json rename src/test/resources/json/{AllocTable.result.json => AllocTable/result.json} (100%) create mode 100644 src/test/resources/json/CalcBuySell/args.json create mode 100644 src/test/resources/json/CalcBuySell/result.json create mode 100644 src/test/resources/json/CancelParamRequest/args.json rename src/test/resources/json/{Highlight.result.true.json => CancelParamRequest/result.json} (100%) create mode 100644 src/test/resources/json/Clear/args.json rename src/test/resources/json/{Highlight.result.false.json => Clear/false.result.json} (100%) rename src/test/resources/json/{IsSubscribed_Level_II_Quotes.result.true.json => Clear/true.result.json} (100%) create mode 100644 src/test/resources/json/CreateWindow/args.json rename src/test/resources/json/{InsertRow.result.json => CreateWindow/result.json} (100%) create mode 100644 src/test/resources/json/DelAllLabels/args.json rename src/test/resources/json/{ParamRequest/result.true.json => DelAllLabels/result.json} (100%) create mode 100644 src/test/resources/json/DelLabel/args.json rename src/test/resources/json/{SetCell.result.json => DelLabel/result.json} (100%) create mode 100644 src/test/resources/json/DeleteRow/args.json rename src/test/resources/json/{SetColor.result.json => DeleteRow/result.json} (100%) create mode 100644 src/test/resources/json/DestroyTable/args.json rename src/test/resources/json/{SetLabelParams.result.json => DestroyTable/result.json} (100%) create mode 100644 src/test/resources/json/GetCell/args.json create mode 100644 src/test/resources/json/GetCell/result.json delete mode 100644 src/test/resources/json/GetLabelParams.request.json delete mode 100644 src/test/resources/json/GetTableSize.request.json create mode 100644 src/test/resources/json/GetTableSize/args.json rename src/test/resources/json/{GetLabelParams.result.only_required_fields.json => GetTableSize/error.result.json} (100%) rename src/test/resources/json/{GetTableSize.result.json => GetTableSize/result.json} (100%) delete mode 100644 src/test/resources/json/GetWindowCaption.request.json create mode 100644 src/test/resources/json/GetWindowCaption/args.json rename src/test/resources/json/{GetTableSize.result.error.json => GetWindowCaption/error.result.json} (100%) rename src/test/resources/json/{GetWindowCaption.result.json => GetWindowCaption/result.json} (100%) delete mode 100644 src/test/resources/json/GetWindowRect.request.json create mode 100644 src/test/resources/json/GetWindowRect/args.json rename src/test/resources/json/{GetWindowCaption.result.error.json => GetWindowRect/error.result.json} (100%) rename src/test/resources/json/{GetWindowRect.result.json => GetWindowRect/result.json} (100%) delete mode 100644 src/test/resources/json/Highlight.request.json create mode 100644 src/test/resources/json/Highlight/args.json rename src/test/resources/json/{IsSubscribed_Level_II_Quotes.result.false.json => Highlight/false.result.json} (100%) rename src/test/resources/json/{SetWindowCaption.result.json => Highlight/true.result.json} (100%) delete mode 100644 src/test/resources/json/InsertRow.request.json create mode 100644 src/test/resources/json/InsertRow/args.json rename src/test/resources/json/{RGB.result.json => InsertRow/result.json} (100%) delete mode 100644 src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/IsSubscribed_Level_II_Quotes/args.json rename src/test/resources/json/{ParamRequest/result.false.json => IsSubscribed_Level_II_Quotes/false.result.json} (100%) rename src/test/resources/json/{SetWindowPos.result.json => IsSubscribed_Level_II_Quotes/true.result.json} (100%) delete mode 100644 src/test/resources/json/IsWindowClosed.request.json delete mode 100644 src/test/resources/json/IsWindowClosed.result.error.json delete mode 100644 src/test/resources/json/IsWindowClosed.result.false.json delete mode 100644 src/test/resources/json/IsWindowClosed.result.true.json create mode 100644 src/test/resources/json/IsWindowClosed/args.json rename src/test/resources/json/{GetWindowRect.result.error.json => IsWindowClosed/error.result.json} (100%) create mode 100644 src/test/resources/json/IsWindowClosed/false.result.json create mode 100644 src/test/resources/json/IsWindowClosed/true.result.json create mode 100644 src/test/resources/json/ParamRequest/args.json create mode 100644 src/test/resources/json/ParamRequest/false.result.json delete mode 100644 src/test/resources/json/ParamRequest/request.json rename src/test/resources/json/{Subscribe_Level_II_Quotes.result.json => ParamRequest/true.result.json} (100%) delete mode 100644 src/test/resources/json/PrintDbgStr.request.json delete mode 100644 src/test/resources/json/PrintDbgStr.result.json create mode 100644 src/test/resources/json/PrintDbgStr/args.json delete mode 100644 src/test/resources/json/RGB.request.json create mode 100644 src/test/resources/json/RGB/args.json rename src/test/resources/json/{SetSelectedRow.result.json => RGB/result.json} (100%) delete mode 100644 src/test/resources/json/SearchItems.request_full_args.json delete mode 100644 src/test/resources/json/SearchItems.request_required_args.json create mode 100644 src/test/resources/json/SearchItems/empty.result.json create mode 100644 src/test/resources/json/SearchItems/full.args.json create mode 100644 src/test/resources/json/SearchItems/null.result.json rename src/test/resources/json/{SearchItems.result.json => SearchItems/result.json} (100%) create mode 100644 src/test/resources/json/SearchItems/without_end_index.args.json create mode 100644 src/test/resources/json/SearchItems/without_params.args.json delete mode 100644 src/test/resources/json/SetCell.request.json create mode 100644 src/test/resources/json/SetCell/false.result.json create mode 100644 src/test/resources/json/SetCell/full.args.json rename src/test/resources/json/{Unsubscribe_Level_II_Quotes.result.json => SetCell/true.result.json} (100%) create mode 100644 src/test/resources/json/SetCell/without_value.args.json delete mode 100644 src/test/resources/json/SetColor.request.json create mode 100644 src/test/resources/json/SetColor/args.json create mode 100644 src/test/resources/json/SetColor/default.args.json create mode 100644 src/test/resources/json/SetColor/false.result.json rename src/test/resources/json/{bit.test.result.json => SetColor/true.result.json} (100%) delete mode 100644 src/test/resources/json/SetLabelParams.request.json create mode 100644 src/test/resources/json/SetLabelParams/args.json create mode 100644 src/test/resources/json/SetLabelParams/false.result.json rename src/test/resources/json/{datasource.Close.result.json => SetLabelParams/true.result.json} (100%) delete mode 100644 src/test/resources/json/SetSelectedRow.request.json create mode 100644 src/test/resources/json/SetSelectedRow/args.json create mode 100644 src/test/resources/json/SetSelectedRow/default_row.args.json create mode 100644 src/test/resources/json/SetSelectedRow/error.result.json rename src/test/resources/json/{SetTableNotificationCallback.result.json => SetSelectedRow/ok.result.json} (100%) delete mode 100644 src/test/resources/json/SetTableNotificationCallback.request.json create mode 100644 src/test/resources/json/SetTableNotificationCallback/args.json create mode 100644 src/test/resources/json/SetTableNotificationCallback/error.result.json rename src/test/resources/json/{bit.band.result.json => SetTableNotificationCallback/ok.result.json} (100%) create mode 100644 src/test/resources/json/SetTableNotificationCallback/other.result.json delete mode 100644 src/test/resources/json/SetWindowCaption.request.json create mode 100644 src/test/resources/json/SetWindowCaption/args.json create mode 100644 src/test/resources/json/SetWindowCaption/false.result.json rename src/test/resources/json/{datasource.SetEmptyCallback.result.json => SetWindowCaption/true.result.json} (100%) delete mode 100644 src/test/resources/json/SetWindowPos.request.json create mode 100644 src/test/resources/json/SetWindowPos/args.json create mode 100644 src/test/resources/json/SetWindowPos/false.result.json rename src/test/resources/json/{datasource.SetUpdateCallback.result.json => SetWindowPos/true.result.json} (100%) delete mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes/args.json create mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes/false.result.json create mode 100644 src/test/resources/json/Subscribe_Level_II_Quotes/true.result.json delete mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json create mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes/args.json create mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes/false.result.json create mode 100644 src/test/resources/json/Unsubscribe_Level_II_Quotes/true.result.json delete mode 100644 src/test/resources/json/bit.band.request_full_args.json delete mode 100644 src/test/resources/json/bit.band.request_required_args.json delete mode 100644 src/test/resources/json/bit.bnot.request.json delete mode 100644 src/test/resources/json/bit.bor.request_full_args.json delete mode 100644 src/test/resources/json/bit.bor.request_required_args.json delete mode 100644 src/test/resources/json/bit.bxor.request_full_args.json delete mode 100644 src/test/resources/json/bit.bxor.request_required_args.json delete mode 100644 src/test/resources/json/bit.test.request.json delete mode 100644 src/test/resources/json/bit.tohex.request.json create mode 100644 src/test/resources/json/bit/band/full.args.json rename src/test/resources/json/{bit.bnot.result.json => bit/band/result.json} (100%) create mode 100644 src/test/resources/json/bit/band/without_xi.args.json create mode 100644 src/test/resources/json/bit/bnot/args.json rename src/test/resources/json/{bit.bor.result.json => bit/bnot/result.json} (100%) create mode 100644 src/test/resources/json/bit/bor/full.args.json rename src/test/resources/json/{bit.bxor.result.json => bit/bor/result.json} (100%) create mode 100644 src/test/resources/json/bit/bor/without_xi.args.json create mode 100644 src/test/resources/json/bit/bxor/full.args.json rename src/test/resources/json/{getNumberOf.result.json => bit/bxor/result.json} (100%) create mode 100644 src/test/resources/json/bit/bxor/without_xi.args.json create mode 100644 src/test/resources/json/bit/test/args.json create mode 100644 src/test/resources/json/bit/test/false.result.json create mode 100644 src/test/resources/json/bit/test/true.result.json create mode 100644 src/test/resources/json/bit/tohex/full.args.json rename src/test/resources/json/{bit.tohex.result.json => bit/tohex/result.json} (100%) create mode 100644 src/test/resources/json/bit/tohex/without_n.args.json delete mode 100644 src/test/resources/json/datasource.C.request.json delete mode 100644 src/test/resources/json/datasource.CreateDataSource.request_full_args.json delete mode 100644 src/test/resources/json/datasource.CreateDataSource.request_required_args.json delete mode 100644 src/test/resources/json/datasource.H.request.json delete mode 100644 src/test/resources/json/datasource.L.request.json delete mode 100644 src/test/resources/json/datasource.O.request.json delete mode 100644 src/test/resources/json/datasource.SetEmptyCallback.request.json delete mode 100644 src/test/resources/json/datasource.SetUpdateCallback.request.json delete mode 100644 src/test/resources/json/datasource.Size.request.json delete mode 100644 src/test/resources/json/datasource.T.request.json delete mode 100644 src/test/resources/json/datasource.V.request.json create mode 100644 src/test/resources/json/datasource/C/args.json rename src/test/resources/json/{datasource.C.result.json => datasource/C/result.json} (100%) create mode 100644 src/test/resources/json/datasource/Close/args.json create mode 100644 src/test/resources/json/datasource/Close/false.result.json create mode 100644 src/test/resources/json/datasource/Close/true.result.json rename src/test/resources/json/{datasource.CreateDataSource.result_error.json => datasource/CreateDataSource/error.result.json} (100%) create mode 100644 src/test/resources/json/datasource/CreateDataSource/full.args.json rename src/test/resources/json/{datasource.CreateDataSource.result_success.json => datasource/CreateDataSource/result.json} (100%) create mode 100644 src/test/resources/json/datasource/CreateDataSource/without_param.args.json create mode 100644 src/test/resources/json/datasource/H/args.json rename src/test/resources/json/{datasource.H.result.json => datasource/H/result.json} (100%) create mode 100644 src/test/resources/json/datasource/L/args.json rename src/test/resources/json/{datasource.L.result.json => datasource/L/result.json} (100%) create mode 100644 src/test/resources/json/datasource/O/args.json rename src/test/resources/json/{datasource.O.result.json => datasource/O/result.json} (100%) create mode 100644 src/test/resources/json/datasource/SetEmptyCallback/args.json create mode 100644 src/test/resources/json/datasource/SetEmptyCallback/false.result.json create mode 100644 src/test/resources/json/datasource/SetEmptyCallback/true.result.json create mode 100644 src/test/resources/json/datasource/SetUpdateCallback/args.json create mode 100644 src/test/resources/json/datasource/SetUpdateCallback/false.result.json create mode 100644 src/test/resources/json/datasource/SetUpdateCallback/true.result.json create mode 100644 src/test/resources/json/datasource/Size/args.json rename src/test/resources/json/{datasource.Size.result.json => datasource/Size/result.json} (100%) create mode 100644 src/test/resources/json/datasource/T/args.json rename src/test/resources/json/{datasource.T.result.json => datasource/T/result.json} (100%) create mode 100644 src/test/resources/json/datasource/V/args.json rename src/test/resources/json/{datasource.V.result.json => datasource/V/result.json} (100%) create mode 100644 src/test/resources/json/getBuySellInfo/args.json create mode 100644 src/test/resources/json/getBuySellInfo/result.json create mode 100644 src/test/resources/json/getBuySellInfoEx/args.json create mode 100644 src/test/resources/json/getBuySellInfoEx/result.json create mode 100644 src/test/resources/json/getCandlesByIndex/args.json create mode 100644 src/test/resources/json/getCandlesByIndex/result.json delete mode 100644 src/test/resources/json/getClassInfo.request.json create mode 100644 src/test/resources/json/getClassInfo/args.json rename src/test/resources/json/{getClassInfo.result.json => getClassInfo/result.json} (100%) create mode 100644 src/test/resources/json/getClassSecurities/args.json create mode 100644 src/test/resources/json/getClassSecurities/result.json create mode 100644 src/test/resources/json/getClassesList/result.json create mode 100644 src/test/resources/json/getDepo/args.json create mode 100644 src/test/resources/json/getDepo/result.json delete mode 100644 src/test/resources/json/getDepoEx.request.json create mode 100644 src/test/resources/json/getDepoEx/args.json rename src/test/resources/json/{getDepoEx.result.json => getDepoEx/result.json} (90%) delete mode 100644 src/test/resources/json/getFuturesHolding.request.json delete mode 100644 src/test/resources/json/getFuturesHolding.result.only_required_fields.json create mode 100644 src/test/resources/json/getFuturesHolding/args.json rename src/test/resources/json/{getFuturesHolding.result.json => getFuturesHolding/result.json} (100%) delete mode 100644 src/test/resources/json/getFuturesLimit.request.json delete mode 100644 src/test/resources/json/getFuturesLimit.result.only_required_fields.json create mode 100644 src/test/resources/json/getFuturesLimit/args.json rename src/test/resources/json/{getFuturesLimit.result.json => getFuturesLimit/result.json} (100%) delete mode 100644 src/test/resources/json/getInfoParam.request.json create mode 100644 src/test/resources/json/getInfoParam/args.json rename src/test/resources/json/{getInfoParam.result.json => getInfoParam/result.json} (100%) delete mode 100644 src/test/resources/json/getItem.request.json delete mode 100644 src/test/resources/json/getItem.result.only_required_fields.json create mode 100644 src/test/resources/json/getItem/args.json rename src/test/resources/json/{getItem.result.json => getItem/result.json} (100%) create mode 100644 src/test/resources/json/getLabelParams/args.json rename src/test/resources/json/{GetLabelParams.result.json => getLabelParams/result.json} (100%) delete mode 100644 src/test/resources/json/getLinesCount.request.json create mode 100644 src/test/resources/json/getLinesCount/args.json rename src/test/resources/json/{getLinesCount.result.json => getLinesCount/result.json} (100%) delete mode 100644 src/test/resources/json/getMoney.request.json create mode 100644 src/test/resources/json/getMoney/args.json rename src/test/resources/json/{getMoney.result.json => getMoney/result.json} (100%) delete mode 100644 src/test/resources/json/getMoneyEx.request.json delete mode 100644 src/test/resources/json/getMoneyEx.result.only_required_fields.json create mode 100644 src/test/resources/json/getMoneyEx/args.json rename src/test/resources/json/{getMoneyEx.result.json => getMoneyEx/result.json} (100%) delete mode 100644 src/test/resources/json/getNumCandles.request.json create mode 100644 src/test/resources/json/getNumCandles/args.json rename src/test/resources/json/{getNumCandles.result.json => getNumCandles/result.json} (100%) delete mode 100644 src/test/resources/json/getNumberOf.request.json create mode 100644 src/test/resources/json/getNumberOf/args.json rename src/test/resources/json/{sleep.result.json => getNumberOf/result.json} (100%) delete mode 100644 src/test/resources/json/getOrderByNumber.error.json delete mode 100644 src/test/resources/json/getOrderByNumber.request.json create mode 100644 src/test/resources/json/getOrderByNumber/args.json rename src/test/resources/json/{getOrderByNumber.result.json => getOrderByNumber/result.json} (64%) delete mode 100644 src/test/resources/json/getParamEx.request.json create mode 100644 src/test/resources/json/getParamEx/args.json rename src/test/resources/json/{getParamEx.result.json => getParamEx/result.json} (100%) delete mode 100644 src/test/resources/json/getParamEx2.request.json create mode 100644 src/test/resources/json/getParamEx2/args.json rename src/test/resources/json/{getParamEx2.result.json => getParamEx2/result.json} (100%) delete mode 100644 src/test/resources/json/getPortfolioInfo.request.json create mode 100644 src/test/resources/json/getPortfolioInfo/args.json rename src/test/resources/json/{getPortfolioInfo.result.json => getPortfolioInfo/result.json} (100%) delete mode 100644 src/test/resources/json/getPortfolioInfoEx.request.json create mode 100644 src/test/resources/json/getPortfolioInfoEx/args.json rename src/test/resources/json/{getPortfolioInfoEx.result.json => getPortfolioInfoEx/result.json} (100%) delete mode 100644 src/test/resources/json/getQuoteLevel2.request.json delete mode 100644 src/test/resources/json/getQuoteLevel2.result.json create mode 100644 src/test/resources/json/getQuoteLevel2/args.json create mode 100644 src/test/resources/json/getQuoteLevel2/result.json delete mode 100644 src/test/resources/json/getScriptPath.request.json rename src/test/resources/json/{getScriptPath.result.json => getScriptPath/result.json} (100%) delete mode 100644 src/test/resources/json/getSecurityInfo.request.json delete mode 100644 src/test/resources/json/getSecurityInfo.result.error.json create mode 100644 src/test/resources/json/getSecurityInfo/args.json rename src/test/resources/json/{ParamRequest/result.missing.result.json => getSecurityInfo/error.result.json} (100%) rename src/test/resources/json/{getSecurityInfo.result.json => getSecurityInfo/result.json} (100%) delete mode 100644 src/test/resources/json/getTradeDate.request.json rename src/test/resources/json/{getTradeDate.result.json => getTradeDate/result.json} (100%) delete mode 100644 src/test/resources/json/getWorkingFolder.request.json rename src/test/resources/json/{getWorkingFolder.result.json => getWorkingFolder/result.json} (100%) rename src/test/resources/json/isConnected/{result.false.json => 0.result.json} (100%) rename src/test/resources/json/isConnected/{result.true.json => 1.result.json} (100%) rename src/test/resources/json/isConnected/{result.garbage.json => other.result.json} (100%) delete mode 100644 src/test/resources/json/isConnected/request.json delete mode 100644 src/test/resources/json/isConnected/result.missing.is_connected.json delete mode 100644 src/test/resources/json/message.request_full_args.json delete mode 100644 src/test/resources/json/message.request_required_args.json delete mode 100644 src/test/resources/json/message.result.error.json delete mode 100644 src/test/resources/json/message.result.not_ok.json delete mode 100644 src/test/resources/json/message.result.ok.json rename src/test/resources/json/{getClassInfo.result.only_required_fields.json => message/error.result.json} (100%) create mode 100644 src/test/resources/json/message/full.args.json create mode 100644 src/test/resources/json/message/ok.result.json create mode 100644 src/test/resources/json/message/other.result.json create mode 100644 src/test/resources/json/message/without_icon_type.args.json delete mode 100644 src/test/resources/json/os.sysdate.request.json delete mode 100644 src/test/resources/json/sendTransaction.request.json create mode 100644 src/test/resources/json/sendTransaction/args.json rename src/test/resources/json/{sendTransaction.result.json => sendTransaction/result.json} (100%) delete mode 100644 src/test/resources/json/sleep.request.json create mode 100644 src/test/resources/json/sleep/args.json rename src/test/resources/json/{getDepoEx.result.only_required_fields.json => sleep/error.result.json} (100%) create mode 100644 src/test/resources/json/sleep/result.json create mode 100644 src/test/resources/json/structures/ConnectedEventInfo/false.flag.json rename src/test/resources/json/structures/{ConnectedEventInfo.json => ConnectedEventInfo/true.flag.json} (100%) create mode 100644 src/test/resources/json/structures/DepoLimit.json create mode 100644 src/test/resources/json/structures/DepoLimitDelete.json create mode 100644 src/test/resources/json/structures/FuturesLimitDelete.json create mode 100644 src/test/resources/json/structures/MoneyLimit.json create mode 100644 src/test/resources/json/structures/MoneyLimitDelete.json create mode 100644 src/test/resources/json/structures/NegDeal.json create mode 100644 src/test/resources/json/structures/NegTrade.json create mode 100644 src/test/resources/json/structures/Order.json create mode 100644 src/test/resources/json/structures/ParamEventInfo.json create mode 100644 src/test/resources/json/structures/QuoteEventInfo.json create mode 100644 src/test/resources/json/structures/StopEventInfo/from_dialog_window.json create mode 100644 src/test/resources/json/structures/StopEventInfo/from_terminal_closure.json create mode 100644 src/test/resources/json/structures/StopEventInfo/other.json create mode 100644 src/test/resources/json/structures/StopOrder.json create mode 100644 src/test/resources/json/structures/Trade.json create mode 100644 src/test/resources/json/structures/TransReply.json rename src/test/resources/json/{os.sysdate.result.json => sysdate/result.json} (100%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 2881990..643e263 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -5,8 +5,11 @@ import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.security.Securable; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.io.Gateway; +import java.util.Map; + /** * Компонент, представляющий собой Java-обёртку над API QLua терминала QUIK. * @@ -16,558 +19,165 @@ */ public interface QluaRpcClient extends Gateway, Securable { - /** - * - * @param request - * @return - */ - int qlua_AddColumn(AddColumn.Request request); - - /** - * - * @param request - * @return - */ - int qlua_AddLabel(AddLabel.Request request); - - /** - * - * @return - */ + int qlua_AddColumn(AddColumn.Args args); + + Integer qlua_AddLabel(String chartTag, Map labelParams); + int qlua_AllocTable(); - /** - * - * @param request - * @return - */ - CalcBuySell.Result qlua_CalcBuySell(CalcBuySell.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_CancelParamRequest(CancelParamRequest.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_Clear(Clear.Request request); - - /** - * - * @param request - * @return - */ - int qlua_CreateWindow(CreateWindow.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_DelAllLabels(DelAllLabels.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_DeleteRow(DeleteRow.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_DelLabel(DelLabel.Request request); - - /** - * - * @param request - * @return - */ - boolean qlua_DestroyTable(DestroyTable.Request request); - - /** - * - * @param request - * @return - */ - GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(GetBuySellInfo.Request request); - - /** - * - * @param request - * @return - */ - GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(GetBuySellInfoEx.Request request); - - /** - * - * @param request - * @return - */ - GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Request request); - - /** - * - * @param request - * @return - */ - GetCell.Result qlua_GetCell(GetCell.Result request); - - /** - * - * @return - */ + CalcBuySell.Result qlua_CalcBuySell(CalcBuySell.Args args); + + boolean qlua_CancelParamRequest(CancelParamRequest.Args args); + + boolean qlua_Clear(int tId); + + int qlua_CreateWindow(int tId); + + boolean qlua_DelAllLabels(String chartTag); + + boolean qlua_DeleteRow(DeleteRow.Args args); + + boolean qlua_DelLabel(String chartTag, int labelId); + + boolean qlua_DestroyTable(int tId); + + GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(GetBuySellInfo.Args args); + + GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(GetBuySellInfoEx.Args args); + + GetCandlesByIndex.Result qlua_getCandlesByIndex(GetCandlesByIndex.Args args); + + GetCell.Result qlua_GetCell(GetCell.Args args); + String qlua_getClassesList(); - /** - * - * @param request - * @return - */ - GetClassInfo.Result qlua_getClassInfo(GetClassInfo.Request request); - - /** - * - * @param request - * @return - */ - GetClassSecurities.Result qlua_getClassSecurities(GetClassSecurities.Request request); - - /** - * - * @param request - * @return - */ - GetDepo.Result qlua_getDepo(GetDepo.Request request); - - /** - * - * @param request - * @return - */ - GetDepoEx.Result qlua_getDepoEx(GetDepoEx.Request request); - - /** - * - * @param request - * @return - */ - GetFuturesHolding.Result qlua_getFuturesHolding(GetFuturesHolding.Request request); - - /** - * - * @param request - * @return - */ - GetFuturesLimit.Result qlua_getFuturesLimit(GetFuturesLimit.Request request); - - /** - * - * @param request - * @return - - */ - GetInfoParam.Result qlua_getInfoParam(GetInfoParam.Request request); - - /** - * - * @param request - * @return - */ - GetItem.Result qlua_getItem(GetItem.Request request); - - /** - * - * @param request - * @return - */ - GetLabelParams.Result qlua_GetLabelParams(GetLabelParams.Request request); - - /** - * - * @param request - * @return - */ - GetLinesCount.Result qlua_getLinesCount(GetLinesCount.Request request); - - /** - * - * @param request - * @return - */ - GetMoney.Result qlua_getMoney(GetMoney.Request request); - - /** - * - * @param request - * @return - */ - GetMoneyEx.Result qlua_getMoneyEx(GetMoneyEx.Request request); - - /** - * - * @param request - * @return - */ - GetNumberOf.Result qlua_getNumberOf(GetNumberOf.Request request); - - /** - * - * @param request - * @return - */ - GetNumCandles.Result qlua_getNumCandles(GetNumCandles.Request request); - - /** - * - * @param request - * @return - */ - GetOrderByNumber.Result qlua_getOrderByNumber(GetOrderByNumber.Request request); - - /** - * - * @param request - * @return - */ - GetParamEx.Result qlua_getParamEx(GetParamEx.Request request); - - /** - * - * @param request - * @return - */ - GetParamEx2.Result qlua_getParamEx2(GetParamEx2.Request request); - - /** - * - * @param request - * @return - */ - GetPortfolioInfo.Result qlua_getPortfolioInfo(GetPortfolioInfo.Request request); - - /** - * - * @param request - * @return - */ - GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Request request); - - /** - * - * @param request - * @return - */ - GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Request request); - - /** - * - * @return - */ - GetScriptPath.Result qlua_getScriptPath(); - - /** - * - * @param request - * @return - */ - GetSecurityInfo.Result qlua_getSecurityInfo(GetSecurityInfo.Request request); - - /** - * - * @param request - * @return - */ - GetTableSize.Result qlua_GetTableSize(GetTableSize.Request request); - - /** - * - * @return - */ - GetTradeDate.Result qlua_getTradeDate(); - - /** - * - * @param request - * @return - */ - GetWindowCaption.Result qlua_GetWindowCaption(GetWindowCaption.Request request); - - /** - * - * @param request - * @return - */ - GetWindowRect.Result qlua_GetWindowRect(GetWindowRect.Request request); - - /** - * - * @return - */ - GetWorkingFolder.Result qlua_getWorkingFolder(); - - /** - * - * @param request - * @return - */ - Highlight.Result qlua_Highlight(Highlight.Request request); - - /** - * - * @param request - * @return - */ - InsertRow.Result qlua_InsertRow(InsertRow.Request request); - - /** - * - * @return - */ - IsConnected.Result qlua_isConnected(); - - /** - * - * @param request - * @return - */ - IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevel2Quotes.Request request); - - /** - * - * @param request - * @return - */ - IsWindowClosed.Result qlua_IsWindowClosed(IsWindowClosed.Request request); - - /** - * - * @param request - * @return - */ - Message.Result qlua_message(Message.Request request); - - /** - * - * @param request - * @return - */ - ParamRequest.Result qlua_ParamRequest(ParamRequest.Request request); - - /** - * - * @param request - * @return - */ - PrintDbgStr.Result qlua_PrintDbgStr(PrintDbgStr.Request request); - - /** - * - * @param request - * @return - */ - RGB.Result qlua_RGB(RGB.Request request); - - /** - * - * @param request - * @return - */ - SearchItems.Result qlua_SearchItems(SearchItems.Request request); - - /** - * - * @param request - * @return - */ - SendTransaction.Result qlua_sendTransaction(SendTransaction.Request request); - - /** - * - * @param request - * @return - */ - SetCell.Result qlua_SetCell(SetCell.Request request); - - /** - * - * @param request - * @return - */ - SetColor.Result qlua_SetColor(SetColor.Request request); - - /** - * - * @param request - * @return - */ - SetLabelParams.Result qlua_SetLabelParams(SetLabelParams.Request request); - - /** - * - * @param request - * @return - */ - SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Request request); - - /** - * - * @param request - * @return - */ - SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(SetTableNotificationCallback.Request request); - - /** - * - * @param request - * @return - */ - SetWindowCaption.Result qlua_SetWindowCaption(SetWindowCaption.Request request); - - /** - * - * @param request - * @return - */ - SetWindowPos.Result qlua_SetWindowPos(SetWindowPos.Request request); - - /** - * - * @param request - * @return - */ - Sleep.Result qlua_sleep(Sleep.Request request); - - /** - * - * @param request - * @return - */ - SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(SubscribeLevel2Quotes.Request request); - - /** - * - * @param request - * @return - */ - UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevel2Quotes.Request request); - - /** - * - * @param request - * @return - */ - BAnd.Result bit_band(BAnd.Request request); - - /** - * - * @param request - * @return - */ - BNot.Result bit_bnot(BNot.Request request); - - /** - * - * @param request - * @return - */ - BOr.Result bit_bor(BOr.Request request); - - /** - * - * @param request - * @return - */ - BXor.Result bit_bxor(BXor.Request request); - - /** - * - * @param request - * @return - */ - ToHex.Result bit_tohex(ToHex.Request request); - - /** - * - * @param request - * @return - */ - C.Result datasource_C(C.Request request); - - /** - * - * @param request - * @return - */ - Close.Result datasource_Close(Close.Request request); - - /** - * - * @param request - * @return - */ - CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Request request); - - /** - * - * @param request - * @return - */ - H.Result datasource_H(H.Request request); - - /** - * - * @param request - * @return - */ - L.Result datasource_L(L.Request request); - - /** - * - * @param request - * @return - */ - O.Result datasource_O(O.Request request); - - /** - * - * @param request - * @return - */ - SetEmptyCallback.Result datasource_SetEmptyCallback(SetEmptyCallback.Request request); - - /** - * - * @param request - * @return - */ - SetUpdateCallback.Result datasource_SetUpdateCallback(SetUpdateCallback.Request request); - - /** - * - * @param request - * @return - */ - Size.Result datasource_Size(Size.Request request); - - /** - * - * @param request - * @return - */ - T.Result datasource_T(T.Request request); - - /** - * - * @param request - * @return - */ - V.Result datasource_V(V.Request request); + ClassInfo qlua_getClassInfo(String classCode); + + String qlua_getClassSecurities(String classCode); + + Depo qlua_getDepo(GetDepo.Args args); + + DepoLimit qlua_getDepoEx(GetDepoEx.Args args); + + FuturesClientHolding qlua_getFuturesHolding(GetFuturesHolding.Args args); + + FuturesLimit qlua_getFuturesLimit(GetFuturesLimit.Args args); + + String qlua_getInfoParam(String paramName); + + Map qlua_getItem(String tableName, int index); + + Map qlua_GetLabelParams(String chartTag, int labelId); + + int qlua_getLinesCount(String tag); + + Money qlua_getMoney(GetMoney.Args args); + + MoneyLimit qlua_getMoneyEx(GetMoneyEx.Args args); + + int qlua_getNumberOf(String tableName); + + int qlua_getNumCandles(String tag); + + GetOrderByNumber.Result qlua_getOrderByNumber(String classCode, long orderId); + + GetParamEx.ParamEx qlua_getParamEx(GetParamEx.Args args); + + GetParamEx2.ParamEx2 qlua_getParamEx2(GetParamEx2.Args args); + + PortfolioInfo qlua_getPortfolioInfo(GetPortfolioInfo.Args args); + + GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(GetPortfolioInfoEx.Args args); + + GetQuoteLevel2.Result qlua_getQuoteLevel2(GetQuoteLevel2.Args args); + + String qlua_getScriptPath(); + + Security qlua_getSecurityInfo(GetSecurityInfo.Args args); + + GetTableSize.TableSize qlua_GetTableSize(int tId); + + GetTradeDate.TradeDate qlua_getTradeDate(); + + String qlua_GetWindowCaption(int tId); + + GetWindowRect.WindowRect qlua_GetWindowRect(int tId); + + String qlua_getWorkingFolder(); + + boolean qlua_Highlight(Highlight.Args args); + + int qlua_InsertRow(InsertRow.Args args); + + int qlua_isConnected(); + + boolean qlua_IsSubscribedLevelIIQuotes(IsSubscribedLevel2Quotes.Args args); + + Boolean qlua_IsWindowClosed(int tId); + + Integer qlua_message(String message, Message.IconType iconType); + + Integer qlua_message(final String message); + + boolean qlua_ParamRequest(ParamRequest.Args args); + + void qlua_PrintDbgStr(String s); + + int qlua_RGB(RGB.Args args); + + SearchItems.Result qlua_SearchItems(SearchItems.Args args); + + String qlua_sendTransaction(SendTransaction.Args args); + + boolean qlua_SetCell(SetCell.Args args); + + boolean qlua_SetColor(SetColor.Args args); + + boolean qlua_SetLabelParams(String chartTag, int labelId, Map labelParams); + + SetSelectedRow.Result qlua_SetSelectedRow(SetSelectedRow.Args args); + + SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(int tId, String fCbDef); + + boolean qlua_SetWindowCaption(int tId, String str); + + boolean qlua_SetWindowPos(SetWindowPos.Args args); + + Integer qlua_sleep(int time); + + boolean qlua_SubscribeLevelIIQuotes(SubscribeLevel2Quotes.Args args); + + boolean qlua_UnsubscribeLevelIIQuotes(UnsubscribeLevel2Quotes.Args args); + + int bit_band(int x1, int x2, int... xi); + + int bit_bnot(int x); + + int bit_bor(int x1, int x2, int... xi); + + int bit_bxor(int x1, int x2, int... xi); + + String bit_tohex(ToHex.Args args); + + String datasource_C(C.Args args); + + boolean datasource_Close(String datasourceUUID); + + CreateDataSource.Result datasource_CreateDataSource(CreateDataSource.Args args); + + String datasource_H(H.Args args); + + String datasource_L(L.Args args); + + String datasource_O(O.Args args); + + boolean datasource_SetEmptyCallback(String datasourceUUID); + + boolean datasource_SetUpdateCallback(SetUpdateCallback.Args args); + + int datasource_Size(Size.Args args); + + T.Result datasource_T(T.Args args); + + String datasource_V(V.Args args); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedure.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedure.java new file mode 100644 index 0000000..07be0e5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedure.java @@ -0,0 +1,3 @@ +package com.enfernuz.quik.lua.rpc.api; + +public interface RemoteProcedure {} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java new file mode 100644 index 0000000..dce88cd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RemoteProcedureCaller.java @@ -0,0 +1,10 @@ +package com.enfernuz.quik.lua.rpc.api; + +public interface RemoteProcedureCaller { + + > U makeRPC( + Class remoteProcedureClass, + RpcArgs args, + Class resultClass + ) throws RpcException; +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcArgs.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcArgs.java new file mode 100644 index 0000000..30e9e00 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcArgs.java @@ -0,0 +1,3 @@ +package com.enfernuz.quik.lua.rpc.api; + +public interface RpcArgs {} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java index 42249cf..b70c916 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcException.java @@ -1,18 +1,18 @@ package com.enfernuz.quik.lua.rpc.api; -public abstract class RpcException extends RuntimeException { +public class RpcException extends RuntimeException { - protected RpcException() {} + public RpcException() {} - protected RpcException(final String message) { + public RpcException(final String message) { super(message); } - protected RpcException(final Throwable cause) { + public RpcException(final Throwable cause) { super(cause); } - protected RpcException(final String message, final Throwable cause) { + public RpcException(final String message, final Throwable cause) { super(message, cause); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcResult.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcResult.java new file mode 100644 index 0000000..64de000 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/RpcResult.java @@ -0,0 +1,3 @@ +package com.enfernuz.quik.lua.rpc.api; + +public interface RpcResult {} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java index 2eeb674..4fd899e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumn.java @@ -1,28 +1,54 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class AddColumn { +public final class AddColumn implements RemoteProcedure { private AddColumn() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.I_CODE, Args.NAME, Args.IS_DEFAULT, Args.PAR_TYPE, Args.WIDTH}) + @EqualsAndHashCode + public static class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String I_CODE = "icode"; + private static final String NAME = "name"; + private static final String IS_DEFAULT = "is_default"; + private static final String PAR_TYPE = "par_type"; + private static final String WIDTH = "width"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(I_CODE) + private final int iCode; + + @JsonProperty(NAME) + private final String name; - int tId; - int iCode; - @NonNull String name; - boolean isDefault; - @NonNull ColumnParameterType parType; - int width; + @JsonProperty(IS_DEFAULT) + private final boolean isDefault; + + @JsonProperty(PAR_TYPE) + private final ColumnParameterType parType; + + @JsonProperty(WIDTH) + private final int width; @Builder - private Request( + private Args( final int tId, final int iCode, @NonNull final String name, @@ -38,33 +64,67 @@ private Request( this.width = width; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("icode", iCode) - .add("name", name) - .add("is_default", isDefault) - .add("par_type", parType) - .add("width", width) + .add(T_ID, tId) + .add(I_CODE, iCode) + .add(NAME, name) + .add(IS_DEFAULT, isDefault) + .add(PAR_TYPE, parType) + .add(WIDTH, width) .toString(); } + + @JsonIgnore + public int getTId() { + return this.tId; + } + + @JsonIgnore + public int getICode() { + return this.iCode; + } + + @JsonIgnore + public String getName() { + return this.name; + } + + @JsonIgnore + public boolean isDefault() { + return this.isDefault; + } + + @JsonIgnore + public ColumnParameterType getParType() { + return this.parType; + } + + @JsonIgnore + public int getWidth() { + return this.width; + } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(@JsonProperty(value = "result", required = true) int result) { + public Result(@JsonProperty(value = RESULT, required = true) final int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java index fce85ae..c20da39 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java @@ -1,56 +1,84 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; import java.util.Map; import static java.util.Collections.emptyMap; -public final class AddLabel { +public final class AddLabel implements RemoteProcedure { private AddLabel() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CHART_TAG, Args.LABEL_PARAMS}) + @EqualsAndHashCode + public static class Args implements RpcArgs { + + private static final String CHART_TAG = "chart_tag"; + private static final String LABEL_PARAMS = "label_params"; - @NonNull String chartTag; - @NonNull Map labelParams; + @JsonProperty(CHART_TAG) + private final String chartTag; + + @JsonProperty(LABEL_PARAMS) + private final Map labelParams; @Builder - private Request(@NonNull final String chartTag, final Map labelParams) { + private Args(@NonNull final String chartTag, final Map labelParams) { this.chartTag = chartTag; this.labelParams = (labelParams == null) ? emptyMap() : ImmutableMap.copyOf(labelParams); } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("chart_tag", chartTag) - .add("label_params", labelParams) + .add(CHART_TAG, chartTag) + .add(LABEL_PARAMS, labelParams) .toString(); } + + @JsonIgnore + public String getChartTag() { + return this.chartTag; + } + + @JsonIgnore + public Map getLabelParams() { + return this.labelParams; + } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String LABEL_ID = "label_id"; - int labelId; + Integer labelId; @JsonCreator - public Result(@JsonProperty(value = "label_id", required = true) int labelId) { + public Result(@JsonProperty(value = LABEL_ID, required = true) final Integer labelId) { this.labelId = labelId; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("label_id", labelId) + .add(LABEL_ID, labelId) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java index 3ab7ea0..e01cc57 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTable.java @@ -1,30 +1,34 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class AllocTable { +public final class AllocTable implements RemoteProcedure { private AllocTable() {} - public enum Request { INSTANCE; } - @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String T_ID = "t_id"; int tId; @JsonCreator - public Result(@JsonProperty(value = "t_id", required = true) int tId) { + public Result(@JsonProperty(value = T_ID, required = true) final int tId) { this.tId = tId; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID, tId) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java index ecfb192..a9b2bd8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CalcBuySell.java @@ -1,33 +1,60 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import lombok.Value; +import lombok.*; +import org.jetbrains.annotations.NotNull; -public final class CalcBuySell { +public final class CalcBuySell implements RemoteProcedure { private CalcBuySell() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.CLIENT_CODE, Args.ACCOUNT, Args.PRICE, Args.IS_BUY, Args.IS_MARKET}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String CLIENT_CODE = "client_code"; + private static final String ACCOUNT = "account"; + private static final String PRICE = "price"; + private static final String IS_BUY = "is_buy"; + private static final String IS_MARKET = "is_market"; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(ACCOUNT) + private final String account; + + @JsonProperty(PRICE) + private final String price; - String classCode; - String secCode; - String clientCode; - String account; - String price; - boolean isBuy; - boolean isMarket; + @JsonProperty(IS_BUY) + private final boolean isBuy; + + @JsonProperty(IS_MARKET) + private final boolean isMarket; @Builder - private Request( - final @NonNull String classCode, - final @NonNull String secCode, - final @NonNull String clientCode, - final @NonNull String account, - final @NonNull String price, + private Args( + @NonNull final String classCode, + @NonNull final String secCode, + @NonNull final String clientCode, + @NonNull final String account, + @NonNull final String price, final boolean isBuy, final boolean isMarket) { @@ -40,32 +67,80 @@ private Request( this.isMarket = isMarket; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getAccount() { + return account; + } + + @JsonIgnore + public String getPrice() { + return price; + } + + @JsonIgnore + public boolean isBuy() { + return isBuy; + } + + @JsonIgnore + public boolean isMarket() { + return isMarket; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("client_code", clientCode) - .add("account", account) - .add("price", price) - .add("is_buy", isBuy) - .add("is_market", isMarket) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(CLIENT_CODE, clientCode) + .add(ACCOUNT, account) + .add(PRICE, price) + .add(IS_BUY, isBuy) + .add(IS_MARKET, isMarket) .toString(); } } @Value - @RequiredArgsConstructor - public static class Result { + public static class Result implements RpcResult { + + private static final String QTY = "qty"; + private static final String COMISSION = "comission"; int qty; String comission; + @JsonCreator + public Result( + @JsonProperty(value = QTY, required = true) final int qty, + @JsonProperty(value = COMISSION, required = true) @NonNull final String comission) { + + this.qty = qty; + this.comission = comission; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("qty", qty) - .add("comission", comission) + .add(QTY, qty) + .add(COMISSION, comission) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java index a535442..6f56af1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CancelParamRequest.java @@ -1,47 +1,91 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class CancelParamRequest { +public final class CancelParamRequest implements RemoteProcedure { private CancelParamRequest() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.DB_NAME}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String DB_NAME = "db_name"; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; - String classCode; - String secCode; - String dbName; + @JsonProperty(DB_NAME) + private final String dbName; @Builder - private Request(final @NonNull String classCode, final @NonNull String secCode, final @NonNull String dbName) { + private Args(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String dbName) { + this.classCode = classCode; this.secCode = secCode; this.dbName = dbName; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getDbName() { + return dbName; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("db_name", dbName) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(DB_NAME, dbName) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; + @JsonCreator + public Result(@JsonProperty(value = RESULT, required = true) final boolean result) { + this.result = result; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java index fc895ba..ae4ddea 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Clear.java @@ -1,33 +1,55 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; -import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; -public final class Clear { +public final class Clear implements RemoteProcedure { private Clear() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; - int tId; + @JsonProperty(T_ID) + private final int tId; + + public Args(final int tId) { + this.tId = tId; + } + @JsonIgnore + public int getTId() { + return tId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; - @Contract(pure = true) - public static Result getInstance(final boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -35,6 +57,7 @@ private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -47,10 +70,10 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); - // just in case + // sanity check static { - assert TRUE.result == true; - assert FALSE.result == false; + assert TRUE.result; + assert !FALSE.result; } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java index a807c10..024135f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/CreateWindow.java @@ -1,35 +1,66 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class CreateWindow { +public final class CreateWindow implements RemoteProcedure { private CreateWindow() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + + @JsonProperty(T_ID) + private final int tId; + + public Args(final int tId) { + this.tId = tId; + } - int tId; + @JsonIgnore + public int getTId() { + return tId; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; + @JsonCreator + public Result(@JsonProperty(value = RESULT, required = true) final int result) { + this.result = result; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + // TODO: optimize for 0 and 1 } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java index 4f716ab..d122008 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelAllLabels.java @@ -1,34 +1,56 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; -public final class DelAllLabels { +public final class DelAllLabels implements RemoteProcedure { private DelAllLabels() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CHART_TAG = "chart_tag"; - @NonNull String chartTag; + @JsonProperty(CHART_TAG) + private final String chartTag; + + public Args(@NonNull final String chartTag) { + this.chartTag = chartTag; + } + @JsonIgnore + public String getChartTag() { + return chartTag; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("chart_tag", chartTag) + .add(CHART_TAG, chartTag) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; - @Contract(pure = true) - public static Result getInstance(final boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -36,10 +58,11 @@ private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } @@ -48,9 +71,10 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); + // sanity check static { - assert TRUE.result == true; - assert FALSE.result == false; + assert TRUE.result; + assert !FALSE.result; } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java index 5567400..22bcbbc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DelLabel.java @@ -1,39 +1,70 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class DelLabel { +public final class DelLabel implements RemoteProcedure { private DelLabel() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CHART_TAG, Args.LABEL_ID}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CHART_TAG = "chart_tag"; + private static final String LABEL_ID = "label_id"; + + @JsonProperty(CHART_TAG) + private final String chartTag; - String chartTag; - int labelId; + @JsonProperty(LABEL_ID) + private final int labelId; + + public Args(@NonNull final String chartTag, final int labelId) { - public Request(@NonNull final String chartTag, final int labelId) { this.chartTag = chartTag; this.labelId = labelId; } + @JsonIgnore + public String getChartTag() { + return chartTag; + } + + @JsonIgnore + public int getLabelId() { + return labelId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("chart_tag", chartTag) - .add("label_id", labelId) + .add(CHART_TAG, chartTag) + .add(LABEL_ID, labelId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; - public static Result getInstance(final boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -41,10 +72,11 @@ private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } @@ -53,9 +85,10 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); + // sanity check static { - assert TRUE.result == true; - assert FALSE.result == false; + assert TRUE.result; + assert !FALSE.result; } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java index a5c5cf9..6ebbec0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DeleteRow.java @@ -1,33 +1,71 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class DeleteRow { +public final class DeleteRow implements RemoteProcedure { private DeleteRow() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.KEY}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String KEY = "key"; + + @JsonProperty(T_ID) + private final int tId; - int tId; - int key; + @JsonProperty(KEY) + private final int key; + + @Builder + private Args(final int tId, final int key) { + + this.tId = tId; + this.key = key; + } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getKey() { + return key; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("key", key) + .add(T_ID, tId) + .add(KEY, key) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; - public static Result getInstance(final boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -35,10 +73,11 @@ private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } @@ -47,10 +86,10 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); - // just in case + // sanity check static { - assert TRUE.result == true; - assert FALSE.result == false; + assert TRUE.result; + assert !FALSE.result; } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java index 32b41eb..2b18c2d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/DestroyTable.java @@ -1,33 +1,55 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; -import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; -public final class DestroyTable { +public final class DestroyTable implements RemoteProcedure { private DestroyTable() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; - int tId; + @JsonProperty(T_ID) + private final int tId; + + public Args(final int tId) { + this.tId = tId; + } + @JsonIgnore + public int getTId() { + return tId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; - @Contract(pure = true) - public static Result getInstance(final boolean result) { + @JsonCreator + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -35,10 +57,11 @@ private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } @@ -47,7 +70,7 @@ private static final class InstanceHolder { private static final Result TRUE = new Result(true); private static final Result FALSE = new Result(false); - // just in case + // sanity check static { assert TRUE.result; assert !FALSE.result; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java index 84f4a09..0b2edd6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfo.java @@ -1,31 +1,55 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class GetBuySellInfo { +public final class GetBuySellInfo implements RemoteProcedure { private GetBuySellInfo() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.CLIENT_CODE, Args.CLASS_CODE, Args.SEC_CODE, Args.PRICE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firm_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String PRICE = "price"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; - String firmId; - String clientCode; - String classCode; - String secCode; - String price; + @JsonProperty(PRICE) + private final String price; @Builder - private Request( - final @NonNull String firmId, - final @NonNull String clientCode, - final @NonNull String classCode, - final @NonNull String secCode, - final @NonNull String price) { + private Args( + @NonNull final String firmId, + @NonNull final String clientCode, + @NonNull final String classCode, + @NonNull final String secCode, + @NonNull final String price) { this.firmId = firmId; this.clientCode = clientCode; @@ -34,27 +58,61 @@ private Request( this.price = price; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getPrice() { + return price; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firm_id", firmId) - .add("client_code", clientCode) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("price", price) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(PRICE, price) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - @NonNull BuySellInfo buySellInfo; + private static final String BUY_SELL_INFO = "buy_sell_info"; + BuySellInfo buySellInfo; + + @JsonCreator + public Result(@JsonProperty(value = BUY_SELL_INFO, required = true) @NonNull final BuySellInfo buySellInfo) { + this.buySellInfo = buySellInfo; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("buy_sell_info", buySellInfo) + .add(BUY_SELL_INFO, buySellInfo) .toString(); } } @@ -62,6 +120,28 @@ public String toString() { @Value public static class BuySellInfo { + private static final String IS_MARGIN_SEC = "is_margin_sec"; + private static final String IS_ASSET_SEC = "is_asset_sec"; + private static final String BALANCE = "balance"; + private static final String CAN_BUY = "can_buy"; + private static final String CAN_SELL = "can_sell"; + private static final String POSITION_VALUATION = "position_valuation"; + private static final String VALUE = "value"; + private static final String OPEN_VALUE = "open_value"; + private static final String LIM_LONG = "lim_long"; + private static final String LONG_COEF = "long_coef"; + private static final String LIM_SHORT = "lim_short"; + private static final String SHORT_COEF = "short_coef"; + private static final String VALUE_COEF = "value_coef"; + private static final String OPEN_VALUE_COEF = "open_value_coef"; + private static final String SHARE = "share"; + private static final String SHORT_WA_PRICE = "short_wa_price"; + private static final String LONG_WA_PRICE = "long_wa_price"; + private static final String PROFIT_LOSS = "profit_loss"; + private static final String SPREAD_HC = "spread_hc"; + private static final String CAN_BUY_OWN = "can_buy_own"; + private static final String CAN_SELL_OWN = "can_sell_own"; + String isMarginSec; String isAssetSec; String balance; @@ -84,32 +164,38 @@ public static class BuySellInfo { String canBuyOwn; String canSellOwn; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private BuySellInfo( - final String isMarginSec, - final String isAssetSec, - final String balance, - final String canBuy, - final String canSell, - final String positionValuation, - final String value, - final String openValue, - final String limLong, - final String longCoef, - final String limShort, - final String shortCoef, - final String valueCoef, - final String openValueCoef, - final String share, - final String shortWaPrice, - final String longWaPrice, - final String profitLoss, - final String spreadHc, - final String canBuyOwn, - final String canSellOwn) { + @JsonProperty(IS_MARGIN_SEC) final String isMarginSec, + @JsonProperty(IS_ASSET_SEC) final String isAssetSec, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(CAN_BUY) final String canBuy, + @JsonProperty(CAN_SELL) final String canSell, + @JsonProperty(POSITION_VALUATION) final String positionValuation, + @JsonProperty(VALUE) final String value, + @JsonProperty(OPEN_VALUE) final String openValue, + @JsonProperty(LIM_LONG) final String limLong, + @JsonProperty(LONG_COEF) final String longCoef, + @JsonProperty(LIM_SHORT) final String limShort, + @JsonProperty(SHORT_COEF) final String shortCoef, + @JsonProperty(VALUE_COEF) final String valueCoef, + @JsonProperty(OPEN_VALUE_COEF) final String openValueCoef, + @JsonProperty(SHARE) final String share, + @JsonProperty(SHORT_WA_PRICE) final String shortWaPrice, + @JsonProperty(LONG_WA_PRICE) final String longWaPrice, + @JsonProperty(PROFIT_LOSS) final String profitLoss, + @JsonProperty(SPREAD_HC) final String spreadHc, + @JsonProperty(CAN_BUY_OWN) final String canBuyOwn, + @JsonProperty(CAN_SELL_OWN) final String canSellOwn) { this.isMarginSec = isMarginSec; this.isAssetSec = isAssetSec; @@ -199,32 +285,33 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("is_margin_sec", isMarginSec) - .add("is_asset_sec", isAssetSec) - .add("balance", balance) - .add("can_buy", canBuy) - .add("can_sell", canSell) - .add("position_valuation", positionValuation) - .add("value", value) - .add("open_value", openValue) - .add("lim_long", limLong) - .add("long_coef", longCoef) - .add("lim_short", limShort) - .add("short_coef", shortCoef) - .add("value_coef", valueCoef) - .add("open_value_coef", openValueCoef) - .add("share", share) - .add("short_wa_price", shortWaPrice) - .add("long_wa_price", longWaPrice) - .add("profit_loss", profitLoss) - .add("spread_hc", spreadHc) - .add("can_buy_own", canBuyOwn) - .add("can_sell_own", canSellOwn) + .add(IS_MARGIN_SEC, isMarginSec) + .add(IS_ASSET_SEC, isAssetSec) + .add(BALANCE, balance) + .add(CAN_BUY, canBuy) + .add(CAN_SELL, canSell) + .add(POSITION_VALUATION, positionValuation) + .add(VALUE, value) + .add(OPEN_VALUE, openValue) + .add(LIM_LONG, limLong) + .add(LONG_COEF, longCoef) + .add(LIM_SHORT, limShort) + .add(SHORT_COEF, shortCoef) + .add(VALUE_COEF, valueCoef) + .add(OPEN_VALUE_COEF, openValueCoef) + .add(SHARE, share) + .add(SHORT_WA_PRICE, shortWaPrice) + .add(LONG_WA_PRICE, longWaPrice) + .add(PROFIT_LOSS, profitLoss) + .add(SPREAD_HC, spreadHc) + .add(CAN_BUY_OWN, canBuyOwn) + .add(CAN_SELL_OWN, canSellOwn) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java index 1f5ac3a..4079bc9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetBuySellInfoEx.java @@ -1,31 +1,55 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class GetBuySellInfoEx { +public final class GetBuySellInfoEx implements RemoteProcedure { private GetBuySellInfoEx() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.CLIENT_CODE, Args.CLASS_CODE, Args.SEC_CODE, Args.PRICE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firm_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String PRICE = "price"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; - String firmId; - String clientCode; - String classCode; - String secCode; - String price; + @JsonProperty(PRICE) + private final String price; @Builder - private Request( - final @NonNull String firmId, - final @NonNull String clientCode, - final @NonNull String classCode, - final @NonNull String secCode, - final @NonNull String price) { + private Args( + @NonNull final String firmId, + @NonNull final String clientCode, + @NonNull final String classCode, + @NonNull final String secCode, + @NonNull final String price) { this.firmId = firmId; this.clientCode = clientCode; @@ -34,27 +58,61 @@ private Request( this.price = price; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getPrice() { + return price; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firm_id", firmId) - .add("client_code", clientCode) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("price", price) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(PRICE, price) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - @NonNull BuySellInfoEx buySellInfoEx; + private static final String BUY_SELL_INFO_EX = "buy_sell_info_ex"; + BuySellInfoEx buySellInfoEx; + + @JsonCreator + public Result(@JsonProperty(value = BUY_SELL_INFO_EX, required = true) @NonNull final BuySellInfoEx buySellInfoEx) { + this.buySellInfoEx = buySellInfoEx; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("buy_sell_info_ex", buySellInfoEx) + .add(BUY_SELL_INFO_EX, buySellInfoEx) .toString(); } } @@ -62,6 +120,16 @@ public String toString() { @Value public static class BuySellInfoEx { + private static final String BUY_SELL_INFO = "buy_sell_info"; + private static final String LIMIT_KIND = "limit_kind"; + private static final String D_LONG = "d_long"; + private static final String D_MIN_LONG = "d_min_long"; + private static final String D_SHORT = "d_short"; + private static final String D_MIN_SHORT = "d_min_short"; + private static final String CLIENT_TYPE = "client_type"; + private static final String IS_LONG_ALLOWED = "is_long_allowed"; + private static final String IS_SHORT_ALLOWED = "is_short_allowed"; + GetBuySellInfo.BuySellInfo buySellInfo; String limitKind; String dLong; @@ -72,20 +140,26 @@ public static class BuySellInfoEx { String isLongAllowed; String isShortAllowed; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private BuySellInfoEx( - final @NonNull GetBuySellInfo.BuySellInfo buySellInfo, - final String limitKind, - final String dLong, - final String dMinLong, - final String dShort, - final String dMinShort, - final String clientType, - final String isLongAllowed, - final String isShortAllowed) { + @JsonProperty(value = BUY_SELL_INFO, required = true) @NonNull final GetBuySellInfo.BuySellInfo buySellInfo, + @JsonProperty(LIMIT_KIND) final String limitKind, + @JsonProperty(D_LONG) final String dLong, + @JsonProperty(D_MIN_LONG) final String dMinLong, + @JsonProperty(D_SHORT) final String dShort, + @JsonProperty(D_MIN_SHORT) final String dMinShort, + @JsonProperty(CLIENT_TYPE) final String clientType, + @JsonProperty(IS_LONG_ALLOWED) final String isLongAllowed, + @JsonProperty(IS_SHORT_ALLOWED) final String isShortAllowed) { this.buySellInfo = buySellInfo; this.limitKind = limitKind; @@ -123,26 +197,37 @@ public boolean equals(final Object o) { public int hashCode() { if (hashCode == 0) { - hashCode = Objects.hash(buySellInfo, limitKind, dLong, dMinLong, dShort, dMinShort, clientType, isLongAllowed, isShortAllowed); + hashCode = Objects.hash( + buySellInfo, + limitKind, + dLong, + dMinLong, + dShort, + dMinShort, + clientType, + isLongAllowed, + isShortAllowed + ); } return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("buy_sell_info", buySellInfo) - .add("limit_kind", limitKind) - .add("d_long", dLong) - .add("d_min_long", dMinLong) - .add("d_short", dShort) - .add("d_min_short", dMinShort) - .add("client_type", clientType) - .add("is_long_allowed", isLongAllowed) - .add("is_short_allowed", isShortAllowed) + .add(BUY_SELL_INFO, buySellInfo) + .add(LIMIT_KIND, limitKind) + .add(D_LONG, dLong) + .add(D_MIN_LONG, dMinLong) + .add(D_SHORT, dShort) + .add(D_MIN_SHORT, dMinShort) + .add(CLIENT_TYPE, clientType) + .add(IS_LONG_ALLOWED, isLongAllowed) + .add(IS_SHORT_ALLOWED, isShortAllowed) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java index 8ddd1f3..7113d8d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCandlesByIndex.java @@ -1,29 +1,51 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; import java.util.List; -public final class GetCandlesByIndex { +public final class GetCandlesByIndex implements RemoteProcedure { private GetCandlesByIndex() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.TAG, Args.LINE, Args.FIRST_CANDLE, Args.COUNT}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TAG = "tag"; + private static final String LINE = "line"; + private static final String FIRST_CANDLE = "first_candle"; + private static final String COUNT = "count"; + + @JsonProperty(TAG) + private final String tag; + + @JsonProperty(LINE) + private final int line; - String tag; - int line; - int firstCandle; - int count; + @JsonProperty(FIRST_CANDLE) + private final int firstCandle; + + @JsonProperty(COUNT) + private final int count; @Builder - private Request( - final @NonNull String tag, + private Args( + @NonNull final String tag, final int line, final int firstCandle, final int count) { @@ -34,36 +56,66 @@ private Request( this.count = count; } + @JsonIgnore + public String getTag() { + return tag; + } + + @JsonIgnore + public int getLine() { + return line; + } + + @JsonIgnore + public int getFirstCandle() { + return firstCandle; + } + + @JsonIgnore + public int getCount() { + return count; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("tag", tag) - .add("line", line) - .add("first_candle", firstCandle) - .add("count", count) + .add(TAG, tag) + .add(LINE, line) + .add(FIRST_CANDLE, firstCandle) + .add(COUNT, count) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String T = "t"; + private static final String N = "n"; + private static final String L = "l"; List t; int n; String l; - public Result(final @NonNull List t, final int n, final String l) { + @JsonCreator + public Result(@JsonProperty(value = T, required = true) @NonNull final List t, + @JsonProperty(value = N, required = true) final int n, + @JsonProperty(value = L, required = true) final String l) { + this.t = ImmutableList.copyOf(t); this.n = n; this.l = l; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t", t) - .add("n", n) - .add("l", l) + .add(T, t) + .add(N, n) + .add(L, l) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java index 3a34d60..18b6753 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java @@ -1,44 +1,78 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetCell { +public final class GetCell implements RemoteProcedure { private GetCell() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.KEY, Args.CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String KEY = "key"; + private static final String CODE = "code"; + + @JsonProperty(T_ID) + private final int tId; - int tId; - int key; - int code; + @JsonProperty(KEY) + private final int key; + + @JsonProperty(CODE) + private final int code; @Builder - private Request(final int tId, final int key, final int code) { + private Args(final int tId, final int key, final int code) { this.tId = tId; this.key = key; this.code = code; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getKey() { + return key; + } + + @JsonIgnore + public int getCode() { + return code; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("key", key) - .add("code", code) + .add(T_ID, tId) + .add(KEY, key) + .add(CODE, code) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String IMAGE = "image"; + private static final String VALUE = "value"; String image; String value; @@ -46,8 +80,8 @@ public static class Result { @JsonCreator @Builder private static Result getInstance( - @JsonProperty("image") final String image, - @JsonProperty("value") final String value) { + @JsonProperty(value = IMAGE, required = true) final String image, + @JsonProperty(value = VALUE, required = true) final String value) { return image == null && value == null ? InstanceHolder.ERROR : new Result(image, value); } @@ -66,8 +100,8 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("image", image) - .add("value", value) + .add(IMAGE, image) + .add(VALUE, value) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java index 83979e3..0ed4ec6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java @@ -1,47 +1,65 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetClassInfo { +public final class GetClassInfo implements RemoteProcedure { private GetClassInfo() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; - String classCode; + @JsonProperty(CLASS_CODE) + private final String classCode; - public Request(@NonNull final String classCode) { + public Args(@NonNull final String classCode) { this.classCode = classCode; } + @JsonIgnore + public static String getClassCode() { + return CLASS_CODE; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) + .add(CLASS_CODE, classCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String CLASS_INFO = "class_info"; ClassInfo classInfo; @JsonCreator - public Result(@JsonProperty("class_info") final ClassInfo classInfo) { + public Result(@JsonProperty(value = CLASS_INFO, required = true) @NonNull final ClassInfo classInfo) { this.classInfo = classInfo; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_info", classInfo) + .add(CLASS_INFO, classInfo) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java index 4702768..3078a4e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassSecurities.java @@ -1,39 +1,64 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetClassSecurities { +public final class GetClassSecurities implements RemoteProcedure { private GetClassSecurities() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; - String classCode; + @JsonProperty(CLASS_CODE) + private final String classCode; - public Request(@NonNull final String classCode) { + public Args(@NonNull final String classCode) { this.classCode = classCode; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) + .add(CLASS_CODE, classCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String CLASS_SECURITIES = "class_securities"; String classSecurities; + @JsonCreator + public Result(@JsonProperty(value = CLASS_SECURITIES, required = true) @NonNull final String classSecurities) { + this.classSecurities = classSecurities; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_securities", classSecurities) + .add(CLASS_SECURITIES, classSecurities) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java index 5759cdc..560bbd7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassesList.java @@ -1,21 +1,31 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetClassesList { - - public static enum Request { INSTANCE; } +public final class GetClassesList implements RemoteProcedure { @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String CLASSES_LIST = "classes_list"; String classesList; + public Result(@JsonProperty(value = CLASSES_LIST, required = true) @NonNull final String classesList) { + this.classesList = classesList; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("classes_list", classesList) + .add(CLASSES_LIST, classesList) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java index 3c87699..e99edd5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepo.java @@ -1,29 +1,51 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetDepo { +public final class GetDepo implements RemoteProcedure { private GetDepo() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLIENT_CODE, Args.FIRM_ID, Args.SEC_CODE, Args.TRD_ACC_ID}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLIENT_CODE = "client_code"; + private static final String FIRM_ID = "firmid"; + private static final String SEC_CODE = "sec_code"; + private static final String TRD_ACC_ID = "trdaccid"; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(FIRM_ID) + private final String firmId; - String clientCode; - String firmId; - String secCode; - String trdAccId; + @JsonProperty(SEC_CODE) + private final String secCode; + + @JsonProperty(TRD_ACC_ID) + private final String trdAccId; @Builder - private Request( - final @NonNull String clientCode, - final @NonNull String firmId, - final @NonNull String secCode, - final @NonNull String trdAccId) { + private Args( + @NonNull final String clientCode, + @NonNull final String firmId, + @NonNull final String secCode, + @NonNull final String trdAccId) { this.clientCode = clientCode; this.firmId = firmId; @@ -31,30 +53,55 @@ private Request( this.trdAccId = trdAccId; } + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getTrdAccId() { + return trdAccId; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("client_code", clientCode) - .add("firmid", firmId) - .add("sec_code", secCode) - .add("trdaccid", trdAccId) + .add(CLIENT_CODE, clientCode) + .add(FIRM_ID, firmId) + .add(SEC_CODE, secCode) + .add(TRD_ACC_ID, trdAccId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String DEPO = "depo"; Depo depo; - public Result(@NonNull final Depo depo) { + @JsonCreator + public Result(@JsonProperty(value = DEPO, required = true) @NonNull final Depo depo) { this.depo = depo; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("depo", depo) + .add(DEPO, depo) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index b6f69f9..a2ea78f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -1,34 +1,55 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetDepoEx { +public final class GetDepoEx implements RemoteProcedure { private GetDepoEx() {} - @Value - public static class Request { + @JsonPropertyOrder({ Args.FIRM_ID, Args.CLIENT_CODE, Args.SEC_CODE, Args.TRD_ACC_ID, Args.LIMIT_KIND}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firmid"; + private static final String CLIENT_CODE = "client_code"; + private static final String SEC_CODE = "sec_code"; + private static final String TRD_ACC_ID = "trdaccid"; + private static final String LIMIT_KIND = "limit_kind"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(SEC_CODE) + private final String secCode; - String firmId; - String clientCode; - String secCode; - String trdAccId; - int limitKind; + @JsonProperty(TRD_ACC_ID) + private final String trdAccId; + + @JsonProperty(LIMIT_KIND) + private final int limitKind; @Builder - private Request( - final @NonNull String firmId, - final @NonNull String clientCode, - final @NonNull String secCode, - final @NonNull String trdAccId, + private Args( + @NonNull final String firmId, + @NonNull final String clientCode, + @NonNull final String secCode, + @NonNull final String trdAccId, final int limitKind) { this.firmId = firmId; @@ -38,26 +59,53 @@ private Request( this.limitKind = limitKind; } + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getTrdAccId() { + return trdAccId; + } + + @JsonIgnore + public int getLimitKind() { + return limitKind; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("client_code", clientCode) - .add("sec_code", secCode) - .add("trdaccid", trdAccId) - .add("limit_kind", limitKind) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(SEC_CODE, secCode) + .add(TRD_ACC_ID, trdAccId) + .add(LIMIT_KIND, limitKind) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String DEPO_EX = "depo_ex"; DepoLimit depoEx; @JsonCreator - public static Result getInstance(@JsonProperty("depo_ex") final DepoLimit depoEx) { + public static Result getInstance(@JsonProperty(value = DEPO_EX, required = true) final DepoLimit depoEx) { return depoEx == null ? InstanceHolder.ERROR : new Result(depoEx); } @@ -65,7 +113,6 @@ private Result(final DepoLimit depoEx) { this.depoEx = depoEx; } - @Contract(pure = true) public boolean isError() { return depoEx == null; } @@ -74,7 +121,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("depo_ex", depoEx) + .add(DEPO_EX, depoEx) .toString(); } @@ -82,7 +129,7 @@ private static final class InstanceHolder { private static final Result ERROR = new Result(null); - // just in case + // sanity check static { assert ERROR.isError(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index 113390e..e3f4bc5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -1,32 +1,51 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetFuturesHolding { +public final class GetFuturesHolding implements RemoteProcedure { private GetFuturesHolding() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.TRD_ACC_ID, Args.SEC_CODE, Args.TYPE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firmid"; + private static final String TRD_ACC_ID = "trdaccid"; + private static final String SEC_CODE = "sec_code"; + private static final String TYPE = "type"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(TRD_ACC_ID) + private final String trdAccId; - String firmId; - String trdAccId; - String secCode; - int type; + @JsonProperty(SEC_CODE) + private final String secCode; + + @JsonProperty(TYPE) + private final int type; @Builder - private Request( - final @NonNull String firmId, - final @NonNull String trdAccId, - final @NonNull String secCode, + private Args( + @NonNull final String firmId, + @NonNull final String trdAccId, + @NonNull final String secCode, final int type) { this.firmId = firmId; @@ -35,25 +54,47 @@ private Request( this.type = type; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getTrdAccId() { + return trdAccId; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public int getType() { + return type; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("trdaccid", trdAccId) - .add("sec_code", secCode) - .add("type", type) + .add(FIRM_ID, firmId) + .add(TRD_ACC_ID, trdAccId) + .add(SEC_CODE, secCode) + .add(TYPE, type) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String FUTURES_HOLDING = "futures_holding"; FuturesClientHolding futuresHolding; @JsonCreator - public static Result getInstance(@JsonProperty("futures_holding") final FuturesClientHolding futuresHolding) { + public static Result getInstance(@JsonProperty(value = FUTURES_HOLDING, required = true) final FuturesClientHolding futuresHolding) { return futuresHolding == null ? InstanceHolder.ERROR : new Result(futuresHolding); } @@ -70,7 +111,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("futures_holding", futuresHolding) + .add(FUTURES_HOLDING, futuresHolding) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index 233e62b..ba729e0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -1,29 +1,48 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetFuturesLimit { +public final class GetFuturesLimit implements RemoteProcedure { private GetFuturesLimit() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.TRD_ACC_ID, Args.LIMIT_TYPE, Args.CURR_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firmid"; + private static final String TRD_ACC_ID = "trdaccid"; + private static final String LIMIT_TYPE = "limit_type"; + private static final String CURR_CODE = "currcode"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(TRD_ACC_ID) + private final String trdAccId; - String firmId; - String trdAccId; - int limitType; - String currCode; + @JsonProperty(LIMIT_TYPE) + private final int limitType; + + @JsonProperty(CURR_CODE) + private final String currCode; @Builder - private Request( + private Args( @NonNull final String firmId, @NonNull final String trdAccId, final int limitType, @@ -35,25 +54,47 @@ private Request( this.currCode = currCode; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getTrdAccId() { + return trdAccId; + } + + @JsonIgnore + public int getLimitType() { + return limitType; + } + + @JsonIgnore + public String getCurrCode() { + return currCode; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("trdaccid", trdAccId) - .add("limit_type", limitType) - .add("currcode", currCode) + .add(FIRM_ID, firmId) + .add(TRD_ACC_ID, trdAccId) + .add(LIMIT_TYPE, limitType) + .add(CURR_CODE, currCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String FUTURES_LIMIT = "futures_limit"; FuturesLimit futuresLimit; @JsonCreator - public static Result getInstance(@JsonProperty("futures_limit") final FuturesLimit futuresLimit) { + public static Result getInstance(@JsonProperty(value = FUTURES_LIMIT, required = true) final FuturesLimit futuresLimit) { return futuresLimit == null ? InstanceHolder.ERROR : new Result(futuresLimit); } @@ -61,7 +102,6 @@ private Result(final FuturesLimit futuresLimit) { this.futuresLimit = futuresLimit; } - @Contract(pure = true) public boolean isError() { return futuresLimit == null; } @@ -70,7 +110,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("futures_limit", futuresLimit) + .add(FUTURES_LIMIT, futuresLimit) .toString(); } @@ -78,7 +118,7 @@ private static final class InstanceHolder { private static final Result ERROR = new Result(null); - // just in case + // sanity check static { assert ERROR.isError(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java index 30c0c46..f8a7137 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParam.java @@ -1,46 +1,64 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetInfoParam { +public final class GetInfoParam implements RemoteProcedure { private GetInfoParam() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String PARAM_NAME = "param_name"; - String paramName; + @JsonProperty(PARAM_NAME) + private final String paramName; - public Request(@NonNull final String paramName) { + public Args(@NonNull final String paramName) { this.paramName = paramName; } + @JsonIgnore + public String getParamName() { + return paramName; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("param_name", paramName) + .add(PARAM_NAME, paramName) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String INFO_PARAM = "info_param"; String infoParam; @JsonCreator - public Result(final @JsonProperty(value = "info_param", required = true) @NonNull String infoParam) { + public Result(@JsonProperty(value = INFO_PARAM, required = true) @NonNull final String infoParam) { this.infoParam = infoParam; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("info_param", infoParam) + .add(INFO_PARAM, infoParam) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index ad68f25..2b92f7f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -1,9 +1,15 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.Contract; @@ -11,40 +17,59 @@ import java.util.Map; -public final class GetItem { +public final class GetItem implements RemoteProcedure { private GetItem() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.TABLE_NAME, Args.INDEX}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TABLE_NAME = "table_name"; + private static final String INDEX = "index"; - String tableName; - int index; + @JsonProperty(TABLE_NAME) + private final String tableName; - public Request(@NonNull final String tableName, final int index) { + @JsonProperty(INDEX) + private final int index; + + public Args(@NonNull final String tableName, final int index) { this.tableName = tableName; this.index = index; } + @JsonIgnore + public String getTableName() { + return tableName; + } + + @JsonIgnore + public int getIndex() { + return index; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("table_name", tableName) - .add("index", index) + .add(TABLE_NAME, tableName) + .add(INDEX, index) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String TABLE_ROW = "table_row"; Map tableRow; @JsonCreator - public static Result getInstance(@JsonProperty("table_row") final Map tableRow) { + public static Result getInstance(@JsonProperty(value = TABLE_ROW, required = true) final Map tableRow) { - if (tableRow == null || tableRow.isEmpty()) { + if (tableRow == null) { return InstanceHolder.ERROR; } @@ -52,10 +77,9 @@ public static Result getInstance(@JsonProperty("table_row") final Map tableRow) { - this.tableRow = (tableRow == null || tableRow.isEmpty()) ? null : ImmutableMap.copyOf(tableRow); + this.tableRow = (tableRow == null) ? null : ImmutableMap.copyOf(tableRow); } - @Contract(pure = true) public boolean isError() { return tableRow == null; } @@ -64,7 +88,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("table_row", tableRow) + .add(TABLE_ROW, tableRow) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java index 319b723..f169a26 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java @@ -1,50 +1,74 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import java.util.Map; -public final class GetLabelParams { +public final class GetLabelParams implements RemoteProcedure { private GetLabelParams() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CHART_TAG, Args.LABEL_ID}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CHART_TAG = "chart_tag"; + private static final String LABEL_ID = "label_id"; - String chartTag; - int labelId; + @JsonProperty(CHART_TAG) + private final String chartTag; - public Request(@NonNull final String chartTag, final int labelId) { + @JsonProperty(LABEL_ID) + private final int labelId; + + public Args(@NonNull final String chartTag, final int labelId) { this.chartTag = chartTag; this.labelId = labelId; } + @JsonIgnore + public String getChartTag() { + return chartTag; + } + + @JsonIgnore + public int getLabelId() { + return labelId; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("chart_tag", chartTag) - .add("label_id", labelId) + .add(CHART_TAG, chartTag) + .add(LABEL_ID, labelId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String LABEL_PARAMS = "label_params"; Map labelParams; @JsonCreator - public static Result getInstance(@JsonProperty("label_params") final Map labelParams) { + public static Result getInstance(@JsonProperty(value = LABEL_PARAMS, required = true) final Map labelParams) { - if (labelParams == null || labelParams.isEmpty()) { + if (labelParams == null) { return InstanceHolder.ERROR; } @@ -52,10 +76,9 @@ public static Result getInstance(@JsonProperty("label_params") final Map labelParams) { - this.labelParams = (labelParams == null || labelParams.isEmpty()) ? null : ImmutableMap.copyOf(labelParams); + this.labelParams = (labelParams == null) ? null : ImmutableMap.copyOf(labelParams); } - @Contract(pure = true) public boolean isError() { return labelParams == null; } @@ -64,7 +87,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("label_params", labelParams) + .add(LABEL_PARAMS, labelParams) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java index 5369e79..f483415 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCount.java @@ -1,41 +1,56 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetLinesCount { +public final class GetLinesCount implements RemoteProcedure { private GetLinesCount() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TAG = "tag"; - String tag; + @JsonProperty(TAG) + private final String tag; - public Request(@NonNull final String tag) { + public Args(@NonNull final String tag) { this.tag = tag; } + @JsonIgnore + public String getTag() { + return tag; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("tag", tag) + .add(TAG, tag) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String LINES_COUNT = "lines_count"; int linesCount; @JsonCreator - public Result(@JsonProperty(value = "lines_count", required = true) final int linesCount) { + public Result(@JsonProperty(value = LINES_COUNT, required = true) final int linesCount) { this.linesCount = linesCount; } @@ -43,7 +58,7 @@ public Result(@JsonProperty(value = "lines_count", required = true) final int li @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("lines_count", linesCount) + .add(LINES_COUNT, linesCount) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java index b0352d7..454f41b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoney.java @@ -1,31 +1,51 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.Money; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class GetMoney { +public final class GetMoney implements RemoteProcedure { private GetMoney() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLIENT_CODE, Args.FIRM_ID, Args.TAG, Args.CURR_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLIENT_CODE = "client_code"; + private static final String FIRM_ID = "firmid"; + private static final String TAG = "tag"; + private static final String CURR_CODE = "currcode"; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(FIRM_ID) + private final String firmId; - String clientCode; - String firmId; - String tag; - String currCode; + @JsonProperty(TAG) + private final String tag; + + @JsonProperty(CURR_CODE) + private final String currCode; @Builder - private Request( - final @NonNull String clientCode, - final @NonNull String firmId, - final @NonNull String tag, - final @NonNull String currCode) { + private Args( + @NonNull final String clientCode, + @NonNull final String firmId, + @NonNull final String tag, + @NonNull final String currCode) { this.clientCode = clientCode; this.firmId = firmId; @@ -33,31 +53,55 @@ private Request( this.currCode = currCode; } + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getTag() { + return tag; + } + + @JsonIgnore + public String getCurrCode() { + return currCode; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("client_code", clientCode) - .add("firmid", firmId) - .add("tag", tag) - .add("currcode", currCode) + .add(CLIENT_CODE, clientCode) + .add(FIRM_ID, firmId) + .add(TAG, tag) + .add(CURR_CODE, currCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String MONEY = "money"; Money money; @JsonCreator - public Result(@JsonProperty(value = "money", required = true) @NonNull final Money money) { + public Result(@JsonProperty(value = MONEY, required = true) @NonNull final Money money) { this.money = money; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("money", money) + .add(MONEY, money) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java index 6b47e46..d68e5ff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java @@ -1,33 +1,54 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -public final class GetMoneyEx { +public final class GetMoneyEx implements RemoteProcedure { private GetMoneyEx() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.CLIENT_CODE, Args.TAG, Args.CURR_CODE, Args.LIMIT_KIND}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firmid"; + private static final String CLIENT_CODE = "client_code"; + private static final String TAG = "tag"; + private static final String CURR_CODE = "currcode"; + private static final String LIMIT_KIND = "limit_kind"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; + + @JsonProperty(TAG) + private final String tag; - String firmId; - String clientCode; - String tag; - String currCode; - int limitKind; + @JsonProperty(CURR_CODE) + private final String currCode; + + @JsonProperty(LIMIT_KIND) + private final int limitKind; @Builder - private Request(final @NonNull String firmId, - final @NonNull String clientCode, - final @NonNull String tag, - final @NonNull String currCode, + private Args(@NonNull final String firmId, + @NonNull final String clientCode, + @NonNull final String tag, + @NonNull final String currCode, int limitKind) { this.firmId = firmId; @@ -37,26 +58,53 @@ private Request(final @NonNull String firmId, this.limitKind = limitKind; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public String getTag() { + return tag; + } + + @JsonIgnore + public String getCurrCode() { + return currCode; + } + + @JsonIgnore + public int getLimitKind() { + return limitKind; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("client_code", clientCode) - .add("tag", tag) - .add("currcode", currCode) - .add("limit_kind", limitKind) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(TAG, tag) + .add(CURR_CODE, currCode) + .add(LIMIT_KIND, limitKind) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String MONEY_EX = "money_ex"; - @Nullable MoneyLimit moneyEx; + MoneyLimit moneyEx; @JsonCreator - public static Result getInstance(@JsonProperty(value = "money_ex") final MoneyLimit moneyEx) { + public static Result getInstance(@JsonProperty(value = MONEY_EX, required = true) final MoneyLimit moneyEx) { return (moneyEx == null) ? InstanceHolder.ERROR : new Result(moneyEx); } @@ -72,7 +120,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("money_ex", moneyEx) + .add(MONEY_EX, moneyEx) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java index 04a252c..9a4771e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandles.java @@ -1,22 +1,35 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetNumCandles { +public final class GetNumCandles implements RemoteProcedure { private GetNumCandles() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TAG = "tag"; - String tag; + @JsonProperty(TAG) + private final String tag; - public Request(@NonNull final String tag) { + @JsonIgnore + public String getTag() { + return tag; + } + + public Args(@NonNull final String tag) { this.tag = tag; } @@ -24,18 +37,20 @@ public Request(@NonNull final String tag) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("tag", tag) + .add(TAG, tag) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String NUM_CANDLES = "num_candles"; int numCandles; @JsonCreator - public Result(@JsonProperty(value = "num_candles", required = true) final int numCandles) { + public Result(@JsonProperty(value = NUM_CANDLES, required = true) final int numCandles) { this.numCandles = numCandles; } @@ -43,7 +58,7 @@ public Result(@JsonProperty(value = "num_candles", required = true) final int nu @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("num_candles", numCandles) + .add(NUM_CANDLES, numCandles) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java index 8529f9e..c916221 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOf.java @@ -1,39 +1,54 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetNumberOf { +public final class GetNumberOf implements RemoteProcedure { - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TABLE_NAME = "table_name"; - String tableName; + @JsonProperty(TABLE_NAME) + private final String tableName; - public Request(@NonNull final String tableName) { + public Args(@NonNull final String tableName) { this.tableName = tableName; } + @JsonIgnore + public String getTableName() { + return tableName; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("table_name", tableName) + .add(TABLE_NAME, tableName) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(@JsonProperty(value = RESULT, required = true) final int result) { this.result = result; } @@ -41,7 +56,7 @@ public Result(final @JsonProperty(value = "result", required = true) int result) @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java index d8ddc9d..66354d9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java @@ -1,73 +1,97 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.Order; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetOrderByNumber { +public final class GetOrderByNumber implements RemoteProcedure { - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.ORDER_ID}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String ORDER_ID = "order_id"; - String classCode; - long orderId; + @JsonProperty(CLASS_CODE) + private final String classCode; - public Request(@NonNull final String classCode, final long orderId) { + @JsonProperty(ORDER_ID) + private final long orderId; + + public Args(@NonNull final String classCode, final long orderId) { this.classCode = classCode; this.orderId = orderId; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public long getOrderId() { + return orderId; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("order_id", orderId) + .add(CLASS_CODE, classCode) + .add(ORDER_ID, orderId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String ORDER = "order"; + private static final String INDX = "indx"; Order order; - int indx; + Integer indx; @JsonCreator public static Result getInstance( - @JsonProperty("order") final Order order, - @JsonProperty("indx") final int indx) { + @JsonProperty(value = ORDER, required = true) final Order order, + @JsonProperty(value = INDX, required = true) final Integer indx) { - return (order == null) ? InstanceHolder.ERROR : new Result(order, indx); + return (order == null && indx == null) ? InstanceHolder.ERROR : new Result(order, indx); } - private Result(final Order order, final int indx) { + private Result(final Order order, final Integer indx) { this.order = order; this.indx = indx; } - @Contract(pure = true) public boolean isError() { - return order == null; + return order == null && indx == null; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("order", order) - .add("indx", indx) + .add(ORDER, order) + .add(INDX, indx) .toString(); } private static final class InstanceHolder { - private static final Result ERROR = new Result(null, 0); + private static final Result ERROR = new Result(null, null); // sanity check static { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java index dda0f27..fb09fa1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx.java @@ -1,88 +1,128 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetParamEx { +public final class GetParamEx implements RemoteProcedure { private GetParamEx() {} - @Value - public static class ParamEx { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.PARAM_NAME}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { - String paramType; - String paramValue; - String paramImage; - String result; + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String PARAM_NAME = "param_name"; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; + + @JsonProperty(PARAM_NAME) + private final String paramName; + + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getParamName() { + return paramName; + } @Builder - @JsonCreator - private ParamEx(final @JsonProperty("param_type") String paramType, - final @JsonProperty("param_value") String paramValue, - final @JsonProperty("param_image") String paramImage, - final @JsonProperty("result") String result) { - this.paramType = paramType; - this.paramValue = paramValue; - this.paramImage = paramImage; - this.result = result; + private Args(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { + this.classCode = classCode; + this.secCode = secCode; + this.paramName = paramName; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("param_type", paramType) - .add("param_value", paramValue) - .add("param_image", paramImage) - .add("result", result) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(PARAM_NAME, paramName) .toString(); } } @Value - public static class Request { + public static class Result implements RpcResult { - String classCode; - String secCode; - String paramName; + private static final String PARAM_EX = "param_ex"; - @Builder - private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { - this.classCode = classCode; - this.secCode = secCode; - this.paramName = paramName; + ParamEx paramEx; + + @JsonCreator + public Result(@JsonProperty(value = PARAM_EX, required = true) @NonNull final ParamEx paramEx) { + this.paramEx = paramEx; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("param_name", paramName) + .add(PARAM_EX, paramEx) .toString(); } } @Value - public static class Result { + public static class ParamEx { - ParamEx paramEx; + private static final String PARAM_TYPE = "param_type"; + private static final String PARAM_VALUE = "param_value"; + private static final String PARAM_IMAGE = "param_image"; + private static final String RESULT = "result"; + + String paramType; + String paramValue; + String paramImage; + String result; @JsonCreator - public Result(@JsonProperty(value = "param_ex", required = true) @NonNull final ParamEx paramEx) { - this.paramEx = paramEx; + @Builder + private ParamEx(@JsonProperty(PARAM_TYPE) final String paramType, + @JsonProperty(PARAM_VALUE) final String paramValue, + @JsonProperty(PARAM_IMAGE) final String paramImage, + @JsonProperty(RESULT) final String result) { + + this.paramType = paramType; + this.paramValue = paramValue; + this.paramImage = paramImage; + this.result = result; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("param_ex", paramEx) + .add(PARAM_TYPE, paramType) + .add(PARAM_VALUE, paramValue) + .add(PARAM_IMAGE, paramImage) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java index 696f3b3..c1223af 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2.java @@ -1,89 +1,129 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetParamEx2 { +public final class GetParamEx2 implements RemoteProcedure { private GetParamEx2() {} - @Value - public static class ParamEx2 { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.PARAM_NAME}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { - String paramType; - String paramValue; - String paramImage; - String result; + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String PARAM_NAME = "param_name"; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; + + @JsonProperty(PARAM_NAME) + private final String paramName; @Builder - @JsonCreator - private ParamEx2(final @JsonProperty("param_type") String paramType, - final @JsonProperty("param_value") String paramValue, - final @JsonProperty("param_image") String paramImage, - final @JsonProperty("result") String result) { - this.paramType = paramType; - this.paramValue = paramValue; - this.paramImage = paramImage; - this.result = result; + private Args(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { + + this.classCode = classCode; + this.secCode = secCode; + this.paramName = paramName; + } + + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getParamName() { + return paramName; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("param_type", paramType) - .add("param_value", paramValue) - .add("param_image", paramImage) - .add("result", result) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(PARAM_NAME, paramName) .toString(); } } @Value - public static class Request { + public static class Result implements RpcResult { - String classCode; - String secCode; - String paramName; + private static final String PARAM_EX = "param_ex"; - @Builder - private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String paramName) { - this.classCode = classCode; - this.secCode = secCode; - this.paramName = paramName; + ParamEx2 paramEx; + + @JsonCreator + public Result(@JsonProperty(value = PARAM_EX, required = true) @NonNull final ParamEx2 paramEx) { + this.paramEx = paramEx; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("param_name", paramName) + .add(PARAM_EX, paramEx) .toString(); } } @Value - public static class Result { + public static class ParamEx2 { - ParamEx2 paramEx; + private static final String PARAM_TYPE = "param_type"; + private static final String PARAM_VALUE = "param_value"; + private static final String PARAM_IMAGE = "param_image"; + private static final String RESULT = "result"; + + String paramType; + String paramValue; + String paramImage; + String result; @JsonCreator - public Result(@JsonProperty(value = "param_ex", required = true) @NonNull final ParamEx2 paramEx) { - this.paramEx = paramEx; + @Builder + private ParamEx2(@JsonProperty(PARAM_TYPE) final String paramType, + @JsonProperty(PARAM_VALUE) final String paramValue, + @JsonProperty(PARAM_IMAGE) final String paramImage, + @JsonProperty(RESULT) final String result) { + + this.paramType = paramType; + this.paramValue = paramValue; + this.paramImage = paramImage; + this.result = result; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("param_ex", paramEx) + .add(PARAM_TYPE, paramType) + .add(PARAM_VALUE, paramValue) + .add(PARAM_IMAGE, paramImage) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java index cb3eaeb..bffed74 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfo.java @@ -1,45 +1,70 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetPortfolioInfo { +public final class GetPortfolioInfo implements RemoteProcedure { - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.CLIENT_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firm_id"; + private static final String CLIENT_CODE = "client_code"; - String firmId; - String clientCode; + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; @Builder - private Request(@NonNull final String firmId, @NonNull final String clientCode) { + private Args(@NonNull final String firmId, @NonNull final String clientCode) { this.firmId = firmId; this.clientCode = clientCode; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firm_id", firmId) - .add("client_code", clientCode) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String PORTFOLIO_INFO = "portfolio_info"; PortfolioInfo portfolioInfo; @JsonCreator - public Result(@JsonProperty(value = "portfolio_info", required = true) @NonNull final PortfolioInfo portfolioInfo) { + public Result(@JsonProperty(value = PORTFOLIO_INFO, required = true) @NonNull final PortfolioInfo portfolioInfo) { this.portfolioInfo = portfolioInfo; } @@ -47,7 +72,7 @@ public Result(@JsonProperty(value = "portfolio_info", required = true) @NonNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("portfolio_info", portfolioInfo) + .add(PORTFOLIO_INFO, portfolioInfo) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java index a9b1a43..45d37ee 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoEx.java @@ -1,8 +1,13 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; @@ -10,37 +15,87 @@ import java.util.Objects; -public final class GetPortfolioInfoEx { +public final class GetPortfolioInfoEx implements RemoteProcedure { private GetPortfolioInfoEx() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.FIRM_ID, Args.CLIENT_CODE, Args.LIMIT_KIND}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String FIRM_ID = "firm_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String LIMIT_KIND = "limit_kind"; + + @JsonProperty(FIRM_ID) + private final String firmId; + + @JsonProperty(CLIENT_CODE) + private final String clientCode; - String firmId; - String clientCode; - int limitKind; + @JsonProperty(LIMIT_KIND) + private final int limitKind; @Builder - private Request(@NonNull final String firmId, @NonNull final String clientCode, final int limitKind) { + private Args(@NonNull final String firmId, @NonNull final String clientCode, final int limitKind) { + this.firmId = firmId; this.clientCode = clientCode; this.limitKind = limitKind; } + @JsonIgnore + public String getFirmId() { + return firmId; + } + + @JsonIgnore + public String getClientCode() { + return clientCode; + } + + @JsonIgnore + public int getLimitKind() { + return limitKind; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("firm_id", firmId) - .add("client_code", clientCode) - .add("limit_kind", limitKind) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(LIMIT_KIND, limitKind) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String PORTFOLIO_INFO = "portfolio_info"; + private static final String INIT_MARGIN = "init_margin"; + private static final String MIN_MARGIN = "min_margin"; + private static final String CORRECTED_MARGIN = "corrected_margin"; + private static final String CLIENT_TYPE = "client_type"; + private static final String PORTFOLIO_VALUE = "portfolio_value"; + private static final String START_LIMIT_OPEN_POS = "start_limit_open_pos"; + private static final String TOTAL_LIMIT_OPEN_POS = "total_limit_open_pos"; + private static final String LIMIT_OPEN_POS = "limit_open_pos"; + private static final String USED_LIM_OPEN_POS = "used_lim_open_pos"; + private static final String ACC_VAR_MARGIN = "acc_var_margin"; + private static final String CL_VAR_MARGIN = "cl_var_margin"; + private static final String OPT_LIQUID_COST = "opt_liquid_cost"; + private static final String FUT_ASSET = "fut_asset"; + private static final String FUT_TOTAL_ASSET = "fut_total_asset"; + private static final String FUT_DEBT = "fut_debt"; + private static final String FUT_RATE_ASSET = "fut_rate_asset"; + private static final String FUT_RATE_ASSET_OPEN = "fut_rate_asset_open"; + private static final String FUT_RATE_GO = "fut_rate_go"; + private static final String PLANED_RATE_GO = "planed_rate_go"; + private static final String CASH_LEVERAGE = "cash_leverage"; + private static final String FUT_POSITION_TYPE = "fut_position_type"; + private static final String FUT_ACCRUED_INT = "fut_accured_int"; PortfolioInfo portfolioInfo; String initMargin; @@ -66,34 +121,39 @@ public static class Result { String futPositionType; String futAccruedInt; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; @JsonCreator @Builder - private Result(final @JsonProperty(value = "portfolio_info", required = true) @NonNull PortfolioInfo portfolioInfo, - final @JsonProperty(value = "init_margin") String initMargin, - final @JsonProperty(value = "min_margin") String minMargin, - final @JsonProperty(value = "corrected_margin") String correctedMargin, - final @JsonProperty(value = "client_type") String clientType, - final @JsonProperty(value = "portfolio_value") String portfolioValue, - final @JsonProperty(value = "start_limit_open_pos") String startLimitOpenPos, - final @JsonProperty(value = "total_limit_open_pos") String totalLimitOpenPos, - final @JsonProperty(value = "limit_open_pos") String limitOpenPos, - final @JsonProperty(value = "used_lim_open_pos") String usedLimOpenPos, - final @JsonProperty(value = "acc_var_margin") String accVarMargin, - final @JsonProperty(value = "cl_var_margin") String clVarMargin, - final @JsonProperty(value = "opt_liquid_cost") String optLiquidCost, - final @JsonProperty(value = "fut_asset") String futAsset, - final @JsonProperty(value = "fut_total_asset") String futTotalAsset, - final @JsonProperty(value = "fut_debt") String futDebt, - final @JsonProperty(value = "fut_rate_asset") String futRateAsset, - final @JsonProperty(value = "fut_rate_asset_open") String futRateAssetOpen, - final @JsonProperty(value = "fut_rate_go") String futRateGo, - final @JsonProperty(value = "planed_rate_go") String planedRateGo, - final @JsonProperty(value = "cash_leverage") String cashLeverage, - final @JsonProperty(value = "fut_position_type") String futPositionType, - final @JsonProperty(value = "fut_accured_int") String futAccruedInt) { + private Result(@JsonProperty(value = PORTFOLIO_INFO, required = true) final @NonNull PortfolioInfo portfolioInfo, + @JsonProperty(INIT_MARGIN) final String initMargin, + @JsonProperty(MIN_MARGIN) final String minMargin, + @JsonProperty(CORRECTED_MARGIN) final String correctedMargin, + @JsonProperty(CLIENT_TYPE) final String clientType, + @JsonProperty(PORTFOLIO_VALUE) final String portfolioValue, + @JsonProperty(START_LIMIT_OPEN_POS) final String startLimitOpenPos, + @JsonProperty(TOTAL_LIMIT_OPEN_POS) final String totalLimitOpenPos, + @JsonProperty(LIMIT_OPEN_POS) final String limitOpenPos, + @JsonProperty(USED_LIM_OPEN_POS) final String usedLimOpenPos, + @JsonProperty(ACC_VAR_MARGIN) final String accVarMargin, + @JsonProperty(CL_VAR_MARGIN) final String clVarMargin, + @JsonProperty(OPT_LIQUID_COST) final String optLiquidCost, + @JsonProperty(FUT_ASSET) final String futAsset, + @JsonProperty(FUT_TOTAL_ASSET) final String futTotalAsset, + @JsonProperty(FUT_DEBT) final String futDebt, + @JsonProperty(FUT_RATE_ASSET) final String futRateAsset, + @JsonProperty(FUT_RATE_ASSET_OPEN) final String futRateAssetOpen, + @JsonProperty(FUT_RATE_GO) final String futRateGo, + @JsonProperty(PLANED_RATE_GO) final String planedRateGo, + @JsonProperty(CASH_LEVERAGE) final String cashLeverage, + @JsonProperty(FUT_POSITION_TYPE) final String futPositionType, + @JsonProperty(FUT_ACCRUED_INT) final String futAccruedInt) { this.portfolioInfo = portfolioInfo; this.initMargin = initMargin; @@ -194,29 +254,29 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("portfolio_info", portfolioInfo) - .add("init_margin", initMargin) - .add("min_margin", minMargin) - .add("corrected_margin", correctedMargin) - .add("client_type", clientType) - .add("portfolio_value", portfolioValue) - .add("start_limit_open_pos", startLimitOpenPos) - .add("total_limit_open_pos", totalLimitOpenPos) - .add("limit_open_pos", limitOpenPos) - .add("used_lim_open_pos", usedLimOpenPos) - .add("acc_var_margin", accVarMargin) - .add("cl_var_margin", clVarMargin) - .add("opt_liquid_cost", optLiquidCost) - .add("fut_asset", futAsset) - .add("fut_total_asset", futTotalAsset) - .add("fut_debt", futDebt) - .add("fut_rate_asset", futRateAsset) - .add("fut_rate_asset_open", futRateAssetOpen) - .add("fut_rate_go", futRateGo) - .add("planed_rate_go", planedRateGo) - .add("cash_leverage", cashLeverage) - .add("fut_position_type", futPositionType) - .add("fut_accured_int", futAccruedInt) + .add(PORTFOLIO_INFO, portfolioInfo) + .add(INIT_MARGIN, initMargin) + .add(MIN_MARGIN, minMargin) + .add(CORRECTED_MARGIN, correctedMargin) + .add(CLIENT_TYPE, clientType) + .add(PORTFOLIO_VALUE, portfolioValue) + .add(START_LIMIT_OPEN_POS, startLimitOpenPos) + .add(TOTAL_LIMIT_OPEN_POS, totalLimitOpenPos) + .add(LIMIT_OPEN_POS, limitOpenPos) + .add(USED_LIM_OPEN_POS, usedLimOpenPos) + .add(ACC_VAR_MARGIN, accVarMargin) + .add(CL_VAR_MARGIN, clVarMargin) + .add(OPT_LIQUID_COST, optLiquidCost) + .add(FUT_ASSET, futAsset) + .add(FUT_TOTAL_ASSET, futTotalAsset) + .add(FUT_DEBT, futDebt) + .add(FUT_RATE_ASSET, futRateAsset) + .add(FUT_RATE_ASSET_OPEN, futRateAssetOpen) + .add(FUT_RATE_GO, futRateGo) + .add(PLANED_RATE_GO, planedRateGo) + .add(CASH_LEVERAGE, cashLeverage) + .add(FUT_POSITION_TYPE, futPositionType) + .add(FUT_ACCRUED_INT, futAccruedInt) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java index e218cf3..516abf5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2.java @@ -1,7 +1,12 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import lombok.*; @@ -11,30 +16,83 @@ import java.util.List; import java.util.Objects; -public final class GetQuoteLevel2 { +public final class GetQuoteLevel2 implements RemoteProcedure { private GetQuoteLevel2() {} - @Value - public static class QuoteEntry { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { - private static final String PRICE_FIELD = "price"; - private static final String QUANTITY_FIELD = "quantity"; + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; - String price; - String quantity; + @JsonProperty(CLASS_CODE) + private final String classCode; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonProperty(SEC_CODE) + private final String secCode; @Builder + private Args(@NonNull final String classCode, @NonNull final String secCode) { + + this.classCode = classCode; + this.secCode = secCode; + } + + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .toString(); + } + } + + @Value + public static class Result implements RpcResult { + + private static final String BID_COUNT = "bid_count"; + private static final String OFFER_COUNT = "offer_count"; + private static final String BIDS = "bids"; + private static final String OFFERS = "offers"; + + String bidCount; + String offerCount; + List bids; + List offers; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator - private QuoteEntry( - @JsonProperty(value = PRICE_FIELD, required = true) @NonNull final String price, - @JsonProperty(value = QUANTITY_FIELD, required = true) @NonNull final String quantity) { + @Builder + private Result( + @JsonProperty(value = BID_COUNT, required = true) @NonNull final String bidCount, + @JsonProperty(value = OFFER_COUNT, required = true) @NonNull final String offerCount, + @JsonProperty(value = BIDS, required = true) @NonNull final Iterable bids, + @JsonProperty(value = OFFERS, required = true) @NonNull final Iterable offers) { - this.price = price; - this.quantity = quantity; + this.bidCount = bidCount; + this.offerCount = offerCount; + this.bids = ImmutableList.copyOf(bids); + this.offers = ImmutableList.copyOf(offers); } @Override @@ -42,12 +100,14 @@ public boolean equals(final Object o) { if (o == this) { return true; - } else if ( !(o instanceof QuoteEntry) ) { + } else if ( !(o instanceof Result) ) { return false; } else { - final QuoteEntry that = (QuoteEntry) o; - return Objects.equals(price, that.price) && - Objects.equals(quantity, that.quantity); + final Result result = (Result) o; + return Objects.equals(bidCount, result.bidCount) && + Objects.equals(offerCount, result.offerCount) && + Objects.equals(bids, result.bids) && + Objects.equals(offers, result.offers); } } @@ -55,19 +115,22 @@ public boolean equals(final Object o) { public int hashCode() { if (hashCode == 0) { - hashCode = Objects.hash(price, quantity); + hashCode = Objects.hash(bidCount, offerCount, bids, offers); } return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add(PRICE_FIELD, price) - .add(QUANTITY_FIELD, quantity) + .add(BID_COUNT, bidCount) + .add(OFFER_COUNT, offerCount) + .add(BIDS, bids) + .add(OFFERS, offers) .toString(); } @@ -76,55 +139,30 @@ public String toString() { } @Value - public static class Request { + public static class QuoteEntry { - String classCode; - String secCode; + private static final String PRICE = "price"; + private static final String QUANTITY = "quantity"; - @Builder - private Request(@NonNull final String classCode, @NonNull final String secCode) { - this.classCode = classCode; - this.secCode = secCode; - } - - @NotNull - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .toString(); - } - } - - @Value - public static class Result { + String price; + String quantity; - private static final String BID_COUNT_FIELD = "bid_count"; - private static final String OFFER_COUNT_FIELD = "offer_count"; - private static final String BIDS_FIELD = "bids"; - private static final String OFFERS_FIELD = "offers"; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - String bidCount; - String offerCount; - List bids; - List offers; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; - - @Builder @JsonCreator - private Result( - @JsonProperty(value = BID_COUNT_FIELD, required = true) @NonNull final String bidCount, - @JsonProperty(value = OFFER_COUNT_FIELD, required = true) @NonNull final String offerCount, - @JsonProperty(value = BIDS_FIELD, required = true) @NonNull final Iterable bids, - @JsonProperty(value = OFFERS_FIELD, required = true) @NonNull final Iterable offers) { + @Builder + private QuoteEntry( + @JsonProperty(value = PRICE, required = true) @NonNull final String price, + @JsonProperty(value = QUANTITY, required = true) @NonNull final String quantity) { - this.bidCount = bidCount; - this.offerCount = offerCount; - this.bids = ImmutableList.copyOf(bids); - this.offers = ImmutableList.copyOf(offers); + this.price = price; + this.quantity = quantity; } @Override @@ -132,14 +170,12 @@ public boolean equals(final Object o) { if (o == this) { return true; - } else if ( !(o instanceof Result) ) { + } else if ( !(o instanceof QuoteEntry) ) { return false; } else { - final Result result = (Result) o; - return Objects.equals(bidCount, result.bidCount) && - Objects.equals(offerCount, result.offerCount) && - Objects.equals(bids, result.bids) && - Objects.equals(offers, result.offers); + final QuoteEntry that = (QuoteEntry) o; + return Objects.equals(price, that.price) && + Objects.equals(quantity, that.quantity); } } @@ -147,21 +183,20 @@ public boolean equals(final Object o) { public int hashCode() { if (hashCode == 0) { - hashCode = Objects.hash(bidCount, offerCount, bids, offers); + hashCode = Objects.hash(price, quantity); } return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add(BID_COUNT_FIELD, bidCount) - .add(OFFER_COUNT_FIELD, offerCount) - .add(BIDS_FIELD, bids) - .add(OFFERS_FIELD, offers) + .add(PRICE, price) + .add(QUANTITY, quantity) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java index 63178a9..7d3f0e9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPath.java @@ -1,23 +1,26 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetScriptPath { +public final class GetScriptPath implements RemoteProcedure { private GetScriptPath() {} - public static enum Request { INSTANCE; } - @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String SCRIPT_PATH = "script_path"; String scriptPath; - public Result(@JsonProperty(value = "script_path", required = true) @NonNull final String scriptPath) { + public Result(@JsonProperty(value = SCRIPT_PATH, required = true) @NonNull final String scriptPath) { this.scriptPath = scriptPath; } @@ -25,7 +28,7 @@ public Result(@JsonProperty(value = "script_path", required = true) @NonNull fin @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("script_path", scriptPath) + .add(SCRIPT_PATH, scriptPath) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java index 178ef96..03a4164 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfo.java @@ -1,57 +1,76 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.Security; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetSecurityInfo { +public final class GetSecurityInfo implements RemoteProcedure { private GetSecurityInfo() {} - private static final String CLASS_CODE_FIELD = "class_code"; - private static final String SEC_CODE_FIELD = "sec_code"; + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { - @Value - public static class Request { + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + + @JsonProperty(CLASS_CODE) + private final String classCode; - String classCode; - String secCode; + @JsonProperty(SEC_CODE) + private final String secCode; @Builder - private Request(@NonNull final String classCode, @NonNull final String secCode) { + private Args(@NonNull final String classCode, @NonNull final String secCode) { + this.classCode = classCode; this.secCode = secCode; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(CLASS_CODE_FIELD, classCode) - .add(SEC_CODE_FIELD, secCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String SECURITY_INFO_FIELD = "security_info"; + private static final String SECURITY_INFO = "security_info"; Security securityInfo; @JsonCreator - public static Result getInstance(@JsonProperty(value = SECURITY_INFO_FIELD) final Security securityInfo) { + public static Result getInstance(@JsonProperty(SECURITY_INFO) final Security securityInfo) { return securityInfo == null ? InstanceHolder.ERROR : new Result(securityInfo); } - @Contract(pure = true) public static Result getErrorInstance() { return InstanceHolder.ERROR; } @@ -60,7 +79,6 @@ private Result(final Security securityInfo) { this.securityInfo = securityInfo; } - @Contract(pure = true) public boolean isError() { return securityInfo == null; } @@ -69,7 +87,7 @@ public boolean isError() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(SECURITY_INFO_FIELD, securityInfo) + .add(SECURITY_INFO, securityInfo) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java index d211fd0..cc623c0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -1,76 +1,60 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; -import lombok.NonNull; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetTableSize { +public final class GetTableSize implements RemoteProcedure { private GetTableSize() {} - private static final String T_ID_FIELD = "t_id"; + @EqualsAndHashCode + public static final class Args implements RpcArgs { - @Value - public static class Request { + private static final String T_ID = "t_id"; - int tId; + @JsonProperty(T_ID) + private final int tId; - @NotNull - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) - .toString(); + public Args(final int tId) { + this.tId = tId; } - } - - @Value - public static class TableSize { - - private static final String ROWS_FIELD = "rows"; - private static final String COL_FIELD = "col"; - int rows; - int col; - - @Builder - @JsonCreator - private TableSize( - @JsonProperty(value = ROWS_FIELD, required = true) final int rows, - @JsonProperty(value = COL_FIELD, required = true) final int col) { - - this.rows = rows; - this.col = col; + @JsonIgnore + public int getTId() { + return tId; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(ROWS_FIELD, rows) - .add(COL_FIELD, col) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String TABLE_SIZE_FIELD = "table_size"; + private static final String TABLE_SIZE = "table_size"; TableSize tableSize; @JsonCreator - public static Result getInstance(@JsonProperty(TABLE_SIZE_FIELD) final TableSize tableSize) { + public static Result getInstance(@JsonProperty(value = TABLE_SIZE, required = true) final TableSize tableSize) { return isError(tableSize) ? InstanceHolder.ERROR : new Result(tableSize); } - @Contract(pure = true) public static Result getErrorInstance() { return InstanceHolder.ERROR; } @@ -79,7 +63,6 @@ private Result(final TableSize tableSize) { this.tableSize = tableSize; } - @Contract(pure = true) public boolean isError() { return isError(tableSize); } @@ -93,7 +76,7 @@ private static boolean isError(final TableSize tableSize) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(TABLE_SIZE_FIELD, tableSize) + .add(TABLE_SIZE, tableSize) .toString(); } @@ -107,4 +90,33 @@ private static final class InstanceHolder { } } } + + @Value + public static class TableSize { + + private static final String ROWS = "rows"; + private static final String COL = "col"; + + int rows; + int col; + + @JsonCreator + @Builder + private TableSize( + @JsonProperty(value = ROWS, required = true) final int rows, + @JsonProperty(value = COL, required = true) final int col) { + + this.rows = rows; + this.col = col; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(ROWS, rows) + .add(COL, col) + .toString(); + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java index 4733b02..d2a3a72 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDate.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; @@ -9,33 +11,59 @@ import java.util.Objects; -public final class GetTradeDate { +public final class GetTradeDate implements RemoteProcedure { private GetTradeDate() {} + @Value + public static class Result implements RpcResult { + + private static final String TRADE_DATE = "trade_date"; + + TradeDate tradeDate; + + @JsonCreator + public Result(@JsonProperty(value = TRADE_DATE, required = true) @NonNull final TradeDate tradeDate) { + this.tradeDate = tradeDate; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(TRADE_DATE, tradeDate) + .toString(); + } + } + @Value public static class TradeDate { - private static final String DATE_FIELD = "date"; - private static final String YEAR_FIELD = "year"; - private static final String MONTH_FIELD = "month"; - private static final String DAY_FIELD = "day"; + private static final String DATE = "date"; + private static final String YEAR = "year"; + private static final String MONTH = "month"; + private static final String DAY = "day"; String date; int year; int month; int day; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private TradeDate( - @JsonProperty(value = DATE_FIELD, required = true) @NonNull final String date, - @JsonProperty(value = YEAR_FIELD, required = true) final int year, - @JsonProperty(value = MONTH_FIELD, required = true) final int month, - @JsonProperty(value = DAY_FIELD, required = true) final int day) { + @JsonProperty(value = DATE, required = true) @NonNull final String date, + @JsonProperty(value = YEAR, required = true) final int year, + @JsonProperty(value = MONTH, required = true) final int month, + @JsonProperty(value = DAY, required = true) final int day) { this.date = date; this.year = year; @@ -74,37 +102,14 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add(DATE_FIELD, date) - .add(YEAR_FIELD, year) - .add(MONTH_FIELD, month) - .add(DAY_FIELD, day) + .add(DATE, date) + .add(YEAR, year) + .add(MONTH, month) + .add(DAY, day) .toString(); } return asString; } } - - public static enum Request { INSTANCE; } - - @Value - public static class Result { - - private static final String TRADE_DATE_FIELD = "trade_date"; - - TradeDate tradeDate; - - @JsonCreator - public Result(@JsonProperty(value = TRADE_DATE_FIELD, required = true) @NonNull final TradeDate tradeDate) { - this.tradeDate = tradeDate; - } - - @NotNull - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add(TRADE_DATE_FIELD, tradeDate) - .toString(); - } - } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java index c394d0c..1961d02 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java @@ -1,41 +1,56 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetWindowCaption { +public final class GetWindowCaption implements RemoteProcedure { private GetWindowCaption() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; - private static final String T_ID_FIELD = "t_id"; + @JsonProperty(T_ID) + private final int tId; - int tId; + public Args(final int tId) { + this.tId = tId; + } + + @JsonIgnore + public int getTId() { + return tId; + } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String CAPTION_FIELD = "caption"; + private static final String CAPTION = "caption"; String caption; @JsonCreator - public static Result getInstance(@JsonProperty(CAPTION_FIELD) final String caption) { + public static Result getInstance(@JsonProperty(value = CAPTION, required = true) final String caption) { return isError(caption) ? InstanceHolder.ERROR : new Result(caption); } @@ -47,7 +62,6 @@ private Result(final String caption) { this.caption = caption; } - @Contract(pure = true) public boolean isError() { return isError(caption); } @@ -61,7 +75,7 @@ private static boolean isError(final String caption) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(CAPTION_FIELD, caption) + .add(CAPTION, caption) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java index af368d0..144ea2c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRect.java @@ -1,81 +1,57 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class GetWindowRect { +public final class GetWindowRect implements RemoteProcedure { private GetWindowRect() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { - private static final String T_ID_FIELD = "t_id"; + private static final String T_ID = "t_id"; - int tId; + @JsonProperty(T_ID) + private final int tId; - @NotNull - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) - .toString(); + public Args(final int tId) { + this.tId = tId; } - } - - @Value - public static class WindowRect { - - private static final String TOP_FIELD = "top"; - private static final String LEFT_FIELD = "left"; - private static final String BOTTOM_FIELD = "bottom"; - private static final String RIGHT_FIELD = "right"; - - int top; - int left; - int bottom; - int right; - - @Builder - @JsonCreator - private WindowRect( - @JsonProperty(value = TOP_FIELD, required = true) final int top, - @JsonProperty(value = LEFT_FIELD, required = true) final int left, - @JsonProperty(value = BOTTOM_FIELD, required = true) final int bottom, - @JsonProperty(value = RIGHT_FIELD, required = true) final int right) { - this.top = top; - this.left = left; - this.bottom = bottom; - this.right = right; + @JsonIgnore + public int getTId() { + return tId; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(TOP_FIELD, top) - .add(LEFT_FIELD, left) - .add(BOTTOM_FIELD, bottom) - .add(RIGHT_FIELD, right) + .add(T_ID, tId) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String WINDOW_RECT_FIELD = "window_rect"; + private static final String WINDOW_RECT = "window_rect"; WindowRect windowRect; @JsonCreator - public static Result getInstance(@JsonProperty(WINDOW_RECT_FIELD) final WindowRect windowRect) { + public static Result getInstance(@JsonProperty(WINDOW_RECT) final WindowRect windowRect) { return isError(windowRect) ? InstanceHolder.ERROR : new Result(windowRect); } @@ -87,7 +63,6 @@ private Result(final WindowRect windowRect) { this.windowRect = windowRect; } - @Contract(pure = true) public boolean isError() { return isError(windowRect); } @@ -101,7 +76,7 @@ private static boolean isError(final WindowRect windowRect) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(WINDOW_RECT_FIELD, windowRect) + .add(WINDOW_RECT, windowRect) .toString(); } @@ -115,4 +90,43 @@ private static final class InstanceHolder { } } } + + @Value + public static class WindowRect { + + private static final String TOP = "top"; + private static final String LEFT = "left"; + private static final String BOTTOM = "bottom"; + private static final String RIGHT = "right"; + + int top; + int left; + int bottom; + int right; + + @JsonCreator + @Builder + private WindowRect( + @JsonProperty(value = TOP, required = true) final int top, + @JsonProperty(value = LEFT, required = true) final int left, + @JsonProperty(value = BOTTOM, required = true) final int bottom, + @JsonProperty(value = RIGHT, required = true) final int right) { + + this.top = top; + this.left = left; + this.bottom = bottom; + this.right = right; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(TOP, top) + .add(LEFT, left) + .add(BOTTOM, bottom) + .add(RIGHT, right) + .toString(); + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java index a943f7c..9f50eaf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolder.java @@ -1,25 +1,25 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class GetWorkingFolder { +public final class GetWorkingFolder implements RemoteProcedure { private GetWorkingFolder() {} - public enum Request { INSTANCE; } - @Value - public static class Result { + public static class Result implements RpcResult { - private static final String WORKING_FOLDER_FIELD = "working_folder"; + private static final String WORKING_FOLDER = "working_folder"; String workingFolder; - public Result(@JsonProperty(value = WORKING_FOLDER_FIELD, required = true) @NonNull final String workingFolder) { + public Result(@JsonProperty(value = WORKING_FOLDER, required = true) @NonNull final String workingFolder) { this.workingFolder = workingFolder; } @@ -27,7 +27,7 @@ public Result(@JsonProperty(value = WORKING_FOLDER_FIELD, required = true) @NonN @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(WORKING_FOLDER_FIELD, workingFolder) + .add(WORKING_FOLDER, workingFolder) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java index 39792b9..3a8ef37 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Highlight.java @@ -1,35 +1,53 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class Highlight { +public final class Highlight implements RemoteProcedure { private Highlight() {} - private static final String T_ID_FIELD = "t_id"; - private static final String ROW_FIELD = "row"; - private static final String COL_FIELD = "col"; - private static final String B_COLOR_FIELD = "b_color"; - private static final String F_COLOR_FIELD = "f_color"; - private static final String TIMEOUT_FIELD = "timeout"; + @JsonPropertyOrder({Args.T_ID, Args.ROW, Args.COL, Args.B_COLOR, Args.F_COLOR, Args.TIMEOUT}) + @EqualsAndHashCode + public static class Args implements RpcArgs { - @Value - public static class Request { + private static final String T_ID = "t_id"; + private static final String ROW = "row"; + private static final String COL = "col"; + private static final String B_COLOR = "b_color"; + private static final String F_COLOR = "f_color"; + private static final String TIMEOUT = "timeout"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(ROW) + private final int row; + + @JsonProperty(COL) + private final int col; + + @JsonProperty(B_COLOR) + private final int bColor; - int tId; - int row; - int col; - int bColor; - int fColor; - int timeout; + @JsonProperty(F_COLOR) + private final int fColor; + + @JsonProperty(TIMEOUT) + private final int timeout; @Builder - private Request( + private Args( final int tId, final int row, final int col, @@ -45,29 +63,59 @@ private Request( this.timeout = timeout; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getRow() { + return row; + } + + @JsonIgnore + public int getCol() { + return col; + } + + @JsonIgnore + public int getBColor() { + return bColor; + } + + @JsonIgnore + public int getFColor() { + return fColor; + } + + @JsonIgnore + public int getTimeout() { + return timeout; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) - .add(ROW_FIELD, row) - .add(COL_FIELD, col) - .add(B_COLOR_FIELD, bColor) - .add(F_COLOR_FIELD, fColor) - .add(TIMEOUT_FIELD, timeout) + .add(T_ID, tId) + .add(ROW, row) + .add(COL, col) + .add(B_COLOR, bColor) + .add(F_COLOR, fColor) + .add(TIMEOUT, timeout) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String RESULT_FIELD = "result"; + private static final String RESULT = "result"; boolean result; @JsonCreator - public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -79,7 +127,7 @@ private Result(final boolean result) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(RESULT, result) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java index 87b8c6c..4a68d40 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRow.java @@ -1,51 +1,71 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class InsertRow { +public final class InsertRow implements RemoteProcedure { private InsertRow() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.KEY}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String KEY = "key"; - private static final String T_ID_FIELD = "t_id"; - private static final String KEY_FIELD = "key"; + @JsonProperty(T_ID) + private final int tId; - int tId; - int key; + @JsonProperty(KEY) + private final int key; @Builder - private Request(final int tId, final int key) { + private Args(final int tId, final int key) { this.tId = tId; this.key = key; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getKey() { + return key; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) - .add(KEY_FIELD, key) + .add(T_ID, tId) + .add(KEY, key) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String RESULT_FIELD = "result"; + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = RESULT_FIELD, required = true) int result) { + public Result(final @JsonProperty(value = RESULT, required = true) int result) { this.result = result; } @@ -53,7 +73,7 @@ public Result(final @JsonProperty(value = RESULT_FIELD, required = true) int res @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java index c8e070b..18725bb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnected.java @@ -1,26 +1,26 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class IsConnected { +public final class IsConnected implements RemoteProcedure { private IsConnected() {} - public enum Request { INSTANCE; } - @Value - public static class Result { + public static class Result implements RpcResult { - private static final String IS_CONNECTED_FIELD = "is_connected"; + private static final String IS_CONNECTED = "is_connected"; int isConnected; @JsonCreator - public static Result getInstance(@JsonProperty(value = IS_CONNECTED_FIELD, required = true) final int isConnected) { + public static Result getInstance(@JsonProperty(value = IS_CONNECTED, required = true) final int isConnected) { switch (isConnected) { case 0: @@ -40,7 +40,7 @@ private Result(final int isConnected) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(IS_CONNECTED_FIELD, isConnected) + .add(IS_CONNECTED, isConnected) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java index 319a4e4..30fdb69 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2Quotes.java @@ -1,52 +1,72 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class IsSubscribedLevel2Quotes { +public final class IsSubscribedLevel2Quotes implements RemoteProcedure { private IsSubscribedLevel2Quotes() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; - private static final String CLASS_CODE_FIELD = "class_code"; - private static final String SEC_CODE_FIELD = "sec_code"; + @JsonProperty(CLASS_CODE) + private final String classCode; - String classCode; - String secCode; + @JsonProperty(SEC_CODE) + private final String secCode; @Builder - private Request(final @NonNull String classCode, final @NonNull String secCode) { + private Args(@NonNull final String classCode, @NonNull final String secCode) { this.classCode = classCode; this.secCode = secCode; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(CLASS_CODE_FIELD, classCode) - .add(SEC_CODE_FIELD, secCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String RESULT_FIELD = "result"; + private static final String RESULT = "result"; boolean result; @JsonCreator - public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } @@ -58,7 +78,7 @@ private Result(final boolean result) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(RESULT, result) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java index 1c23f7b..24d67bb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosed.java @@ -1,101 +1,78 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class IsWindowClosed { +public final class IsWindowClosed implements RemoteProcedure { private IsWindowClosed() {} - @Value - public static class Request { - - private static final String T_ID_FIELD = "t_id"; - - int tId; - - @NotNull - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add(T_ID_FIELD, tId) - .toString(); - } - } + @EqualsAndHashCode + public static final class Args implements RpcArgs { - @Value - public static class WindowClosed { - - private static final String RESULT_FIELD = "result"; + private static final String T_ID = "t_id"; - boolean result; + @JsonProperty(T_ID) + private final int tId; - @JsonCreator - public static WindowClosed getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { - return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + public Args(final int tId) { + this.tId = tId; } - private WindowClosed(final boolean result) { - this.result = result; + @JsonIgnore + public int getTId() { + return tId; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(T_ID, tId) .toString(); } - - private static final class InstanceHolder { - - private static final WindowClosed TRUE = new WindowClosed(true); - private static final WindowClosed FALSE = new WindowClosed(false); - - // sanity check - static { - assert TRUE.result; - assert !FALSE.result; - } - } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String WINDOW_CLOSED_FIELD = "window_closed"; + private static final String WINDOW_CLOSED = "window_closed"; - WindowClosed windowClosed; + Boolean windowClosed; @JsonCreator - public static Result getInstance(@JsonProperty(value = WINDOW_CLOSED_FIELD, required = true) final WindowClosed windowClosed) { + public static Result getInstance(@JsonProperty(WINDOW_CLOSED) final Boolean windowClosed) { if (isError(windowClosed)) { return InstanceHolder.ERROR; } - return windowClosed.result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + return windowClosed ? InstanceHolder.TRUE : InstanceHolder.FALSE; } public static Result getErrorInstance() { return InstanceHolder.ERROR; } - private Result(final WindowClosed windowClosed) { + private Result(final Boolean windowClosed) { this.windowClosed = windowClosed; } - @Contract(pure = true) public boolean isError() { return isError(windowClosed); } @Contract(value = "null -> true; !null -> false", pure = true) - private static boolean isError(final WindowClosed windowClosed) { + private static boolean isError(final Boolean windowClosed) { return windowClosed == null; } @@ -103,20 +80,20 @@ private static boolean isError(final WindowClosed windowClosed) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(WINDOW_CLOSED_FIELD, windowClosed) + .add(WINDOW_CLOSED, windowClosed) .toString(); } private static final class InstanceHolder { - private static final Result TRUE = new Result(WindowClosed.getInstance(true)); - private static final Result FALSE = new Result(WindowClosed.getInstance(false)); + private static final Result TRUE = new Result(Boolean.TRUE); + private static final Result FALSE = new Result(Boolean.FALSE); private static final Result ERROR = new Result(null); // sanity check static { - assert !TRUE.isError() && TRUE.windowClosed.result; - assert !FALSE.isError() && !FALSE.windowClosed.result; + assert !TRUE.isError() && TRUE.windowClosed; + assert !FALSE.isError() && !FALSE.windowClosed; assert ERROR.isError(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java index 779bea2..a048797 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Message.java @@ -1,147 +1,131 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonView; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public final class Message { +public final class Message implements RemoteProcedure { private Message() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.MESSAGE, Args.ICON_TYPE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String MESSAGE = "message"; + private static final String ICON_TYPE = "icon_type"; + + @JsonProperty(MESSAGE) + private final String message; - @NonNull String message; - IconType iconType; + @JsonProperty(ICON_TYPE) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final IconType iconType; - public Request(final String message) { + public Args(@NonNull final String message) { this(message, null); } - public Request(final String message, final IconType iconType) { + public Args(@NonNull final String message, final IconType iconType) { this.message = message; this.iconType = iconType; } - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("message", message) - .add("icon_type", iconType) - .toString(); - } - } - - @Value - public static class MessageResult { - - private static final String RESULT_FIELD = "result"; - - int result; - - @JsonCreator - public static MessageResult getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final int result) { - return isOk(result) ? InstanceHolder.OK : new MessageResult(result); - } - - public static MessageResult getOkInstance() { - return InstanceHolder.OK; - } - - @Contract(pure = true) - public boolean isOk() { - return isOk(result); + @JsonIgnore + public String getMessage() { + return message; } - @Contract(pure = true) - private static boolean isOk(final int result) { - return result == 1; - } - - private MessageResult(final int result) { - this.result = result; + @JsonIgnore + @JsonSerialize + public IconType getIconType() { + return iconType; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(MESSAGE, message) + .add(ICON_TYPE, iconType) .toString(); } - - private static final class InstanceHolder { - - private static final MessageResult OK = new MessageResult(1); - - // sanity check - static { - assert OK.isOk(); - } - } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String MESSAGE_RESULT_FIELD = "message_result"; + private static final String RESULT = "result"; - MessageResult messageResult; + Integer result; @JsonCreator - public static Result getInstance(@JsonProperty(value = MESSAGE_RESULT_FIELD, required = true) final MessageResult messageResult) { - - if (isError(messageResult)) { - return InstanceHolder.ERROR; - } + public static Result getInstance(@JsonProperty(RESULT) final Integer result) { - if (messageResult.isOk()) { + if ( isOk(result) ) { return InstanceHolder.OK; + } else if ( isError(result) ) { + return InstanceHolder.ERROR; } - return new Result(messageResult); + return new Result(result); } public static Result getErrorInstance() { return InstanceHolder.ERROR; } - private Result(final MessageResult messageResult) { - this.messageResult = messageResult; + public static Result getOkInstance() { + return InstanceHolder.OK; + } + + private Result(final Integer result) { + this.result = result; } - @Contract(pure = true) public boolean isError() { - return isError(messageResult); + return isError(result); + } + + public boolean isOk() { + return isOk(result); + } + + @Contract("null -> false") + private static boolean isOk(final Integer result) { + return Integer.valueOf(1).equals(result); } @Contract(value = "null -> true; !null -> false", pure = true) - private static boolean isError(final MessageResult messageResult) { - return messageResult == null; + private static boolean isError(final Integer result) { + return result == null; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(MESSAGE_RESULT_FIELD, messageResult) + .add(RESULT, result) .toString(); } private static final class InstanceHolder { - private static final Result OK = new Result(MessageResult.getOkInstance()); + private static final Result OK = new Result(1); private static final Result ERROR = new Result(null); // sanity check static { - assert !OK.isError() && OK.messageResult.isOk(); - assert ERROR.isError(); + assert !OK.isError() && OK.isOk(); + assert ERROR.isError() && !ERROR.isOk(); } } } @@ -152,6 +136,7 @@ public enum IconType { WARNING(2), ERROR(3); + @JsonValue public final int value; IconType(final int value) { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java index de3018d..a49bce4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequest.java @@ -1,56 +1,85 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; -public final class ParamRequest { +public final class ParamRequest implements RemoteProcedure { - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.DB_NAME}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String DB_NAME = "db_name"; + + @JsonProperty(CLASS_CODE) + private final String classCode; - private static final String CLASS_CODE_FIELD = "class_code"; - private static final String SEC_CODE_FIELD = "sec_code"; - private static final String DB_NAME_FIELD = "db_name"; + @JsonProperty(SEC_CODE) + private final String secCode; - String classCode; - String secCode; - String dbName; + @JsonProperty(DB_NAME) + private final String dbName; @Builder - private Request(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String dbName) { + private Args(@NonNull final String classCode, @NonNull final String secCode, @NonNull final String dbName) { + this.classCode = classCode; this.secCode = secCode; this.dbName = dbName; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public String getDbName() { + return dbName; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(CLASS_CODE_FIELD, classCode) - .add(SEC_CODE_FIELD, secCode) - .add(DB_NAME_FIELD, dbName) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(DB_NAME, dbName) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - private static final String RESULT_FIELD = "result"; + private static final String RESULT = "result"; boolean result; @JsonCreator - public static Result getInstance(@JsonProperty(value = RESULT_FIELD, required = true) final boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; } - private Result(final boolean result) { + private Result(final boolean result) { this.result = result; } @@ -58,7 +87,7 @@ private Result(final boolean result) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(RESULT_FIELD, result) + .add(RESULT, result) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java index e326ea0..3f9a654 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStr.java @@ -1,28 +1,42 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.google.common.base.MoreObjects; -import lombok.Value; +import lombok.EqualsAndHashCode; +import lombok.NonNull; +import org.jetbrains.annotations.NotNull; -public final class PrintDbgStr { +public final class PrintDbgStr implements RemoteProcedure { private PrintDbgStr() {} - public static enum Request { INSTANCE; } + @EqualsAndHashCode + public static final class Args implements RpcArgs { - @Value - public static class Result { + private static final String S = "s"; - String s; + @JsonProperty(S) + private final String s; - public Result(final @JsonProperty("s") String s) { + public Args(@NonNull final String s) { this.s = s; } + @JsonIgnore + public String getS() { + return s; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("s", s) + .add(S, s) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java index 545e023..79e9edb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/RGB.java @@ -1,53 +1,90 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class RGB { +public final class RGB implements RemoteProcedure { private RGB() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.RED, Args.GREEN, Args.BLUE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String RED = "red"; + private static final String GREEN = "green"; + private static final String BLUE = "blue"; + + @JsonProperty(RED) + private final int red; - int red; - int green; - int blue; + @JsonProperty(GREEN) + private final int green; + + @JsonProperty(BLUE) + private final int blue; @Builder - private Request(final int red, final int green, final int blue) { + private Args(final int red, final int green, final int blue) { + this.red = red; this.green = green; this.blue = blue; } + @JsonIgnore + public int getRed() { + return red; + } + + @JsonIgnore + public int getGreen() { + return green; + } + + @JsonIgnore + public int getBlue() { + return blue; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("red", red) - .add("green", green) - .add("blue", blue) + .add(RED, red) + .add(GREEN, green) + .add(BLUE, blue) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(@JsonProperty(value = RESULT, required = true) final int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java index 15bc957..a5ccbe9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java @@ -1,31 +1,54 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.*; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Arrays; -public final class SearchItems { +public final class SearchItems implements RemoteProcedure { private SearchItems() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.TABLE_NAME, Args.START_INDEX, Args.END_INDEX, Args.FUNCTION_DEFINITION, Args.PARAMS}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TABLE_NAME = "table_name"; + private static final String START_INDEX = "start_index"; + private static final String END_INDEX = "end_index"; + private static final String FUNCTION_DEFINITION = "fn_def"; + private static final String PARAMS = "params"; + + @JsonProperty(TABLE_NAME) + private final String tableName; + + @JsonProperty(START_INDEX) + private final int startIndex; - @NonNull String tableName; - int startIndex; - int endIndex; - @NonNull String fnDef; - String params; + @JsonProperty(END_INDEX) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final Integer endIndex; + + @JsonProperty(FUNCTION_DEFINITION) + private final String fnDef; + + @JsonProperty(PARAMS) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final String params; @Builder - private Request( - final String tableName, + private Args( + @NonNull final String tableName, final int startIndex, - final int endIndex, - final String fnDef, + final Integer endIndex, + @NonNull final String fnDef, final String params) { this.tableName = tableName; @@ -35,37 +58,95 @@ private Request( this.params = params; } + @JsonIgnore + public String getTableName() { + return tableName; + } + + @JsonIgnore + public int getStartIndex() { + return startIndex; + } + + @JsonIgnore + public Integer getEndIndex() { + return endIndex; + } + + @JsonIgnore + public String getFnDef() { + return fnDef; + } + + @JsonIgnore + public String getParams() { + return params; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("table_name", tableName) - .add("start_index", startIndex) - .add("end_index", endIndex) - .add("fn_def", fnDef) - .add("params", params) + .add(TABLE_NAME, tableName) + .add(START_INDEX, startIndex) + .add(END_INDEX, endIndex) + .add(FUNCTION_DEFINITION, fnDef) + .add(PARAMS, params) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String ITEMS_INDICES = "items_indices"; - @Getter(AccessLevel.NONE) int[] items_indices; + @Getter(AccessLevel.NONE) + int[] items_indices; @JsonCreator - public Result(final @JsonProperty(value = "items_indices", required = true) int[] items_indices) { + public static Result getInstance(@JsonProperty(ITEMS_INDICES) final int[] items_indices) { + return isNullOrEmpty(items_indices) ? getNullOrEmptyInstance() : new Result(items_indices); + } + + public static Result getNullOrEmptyInstance() { + return InstanceHolder.NULL_OR_EMPTY; + } + + private Result(final int[] items_indices) { this.items_indices = items_indices; } + @Nullable public int[] getItemsIndices() { - return items_indices.clone(); + return isNullOrEmpty(items_indices) ? null : items_indices.clone(); + } + + public boolean isNullOrEmpty() { + return isNullOrEmpty(items_indices); + } + + @Contract(value = "null -> true", pure = true) + private static boolean isNullOrEmpty(final int[] items_indices) { + return items_indices == null || items_indices.length == 0; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("items_indices", Arrays.toString(items_indices)) + .add(ITEMS_INDICES, Arrays.toString(items_indices)) .toString(); } + + private static final class InstanceHolder { + + private static final Result NULL_OR_EMPTY = new Result(null); + + // sanity check + static { + assert NULL_OR_EMPTY.isNullOrEmpty(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java index 842ad51..4a3901f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransaction.java @@ -1,43 +1,58 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Map; import java.util.Objects; -public final class SendTransaction { +public final class SendTransaction implements RemoteProcedure { private SendTransaction() {} - @Value - public static class Request { + public static final class Args implements RpcArgs { + + private static final String TRANSACTION = "transaction"; + + @JsonProperty(TRANSACTION) + private final Map transaction; - Map transaction; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; - public Request(final Map transaction) { + public Args(@NonNull @NotNull final Map transaction) { this.transaction = ImmutableMap.copyOf(transaction); } + @NotNull + @JsonIgnore + public Map getTransaction() { + return transaction; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if ( !(o instanceof Request) ) { + } else if ( !(o instanceof Args) ) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return Objects.equals(transaction, request.transaction); } } @@ -57,7 +72,7 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("transaction", transaction) + .add(TRANSACTION, transaction) .toString(); } @@ -66,19 +81,22 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; - @NonNull String result; + String result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) String result) { + public Result(@JsonProperty(value = RESULT, required = true) @NonNull final String result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java index ac367f9..d15387b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetCell.java @@ -1,32 +1,53 @@ package com.enfernuz.quik.lua.rpc.api.messages; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetCell { +public final class SetCell implements RemoteProcedure { private SetCell() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.KEY, Args.CODE, Args.TEXT, Args.VALUE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String KEY = "key"; + private static final String CODE = "code"; + private static final String TEXT = "text"; + private static final String VALUE = "value"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(KEY) + private final int key; - int tId; - int key; - int code; - @NonNull String text; - double value; + @JsonProperty(CODE) + private final int code; + + @JsonProperty(TEXT) + private final String text; + + @JsonProperty(VALUE) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final Number value; @Builder - private Request( + private Args( final int tId, final int key, final int code, - final String text, - final double value) { + @NonNull final String text, + final Number value) { this.tId = tId; this.key = key; @@ -35,33 +56,70 @@ private Request( this.value = value; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getKey() { + return key; + } + + @JsonIgnore + public int getCode() { + return code; + } + + @JsonIgnore + public String getText() { + return text; + } + + @JsonIgnore + public Number getValue() { + return value; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("key", key) - .add("code", code) - .add("text", text) - .add("value", value) + .add(T_ID, tId) + .add(KEY, key) + .add(CODE, code) + .add(TEXT, text) + .add(VALUE, value) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("result", result) - .toString(); + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java index daff585..36ee2d8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetColor.java @@ -1,28 +1,58 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; -import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetColor { +public final class SetColor implements RemoteProcedure { private SetColor() {} - @Value - public static class Request { - - int tId; - int row; - int col; - int bColor; - int fColor; - int selBColor; - int selFColor; - - @Builder - private Request( + @JsonPropertyOrder({Args.T_ID, Args.ROW, Args.COL, Args.B_COLOR, Args.F_COLOR, Args.SEL_B_COLOR, Args.SEL_F_COLOR}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String ROW = "row"; + private static final String COL = "col"; + private static final String B_COLOR = "b_color"; + private static final String F_COLOR = "f_color"; + private static final String SEL_B_COLOR = "sel_b_color"; + private static final String SEL_F_COLOR = "sel_f_color"; + + public static final int QTABLE_NO_INDEX = -1; + public static final int QTABLE_DEFAULT_COLOR = -1; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(ROW) + private final int row; + + @JsonProperty(COL) + private final int col; + + @JsonProperty(B_COLOR) + private final int bColor; + + @JsonProperty(F_COLOR) + private final int fColor; + + @JsonProperty(SEL_B_COLOR) + private final int selBColor; + + @JsonProperty(SEL_F_COLOR) + private final int selFColor; + + private Args( final int tId, final int row, final int col, @@ -40,35 +70,159 @@ private Request( this.selFColor = selFColor; } + public static ArgsBuilder builder() { + return new ArgsBuilder(); + } + + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getRow() { + return row; + } + + @JsonIgnore + public int getCol() { + return col; + } + + @JsonIgnore + public int getbColor() { + return bColor; + } + + @JsonIgnore + public int getfColor() { + return fColor; + } + + @JsonIgnore + public int getSelBColor() { + return selBColor; + } + + @JsonIgnore + public int getSelFColor() { + return selFColor; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("row", row) - .add("col", col) - .add("b_color", bColor) - .add("f_color", fColor) - .add("sel_b_color", selBColor) - .add("sel_f_color", selFColor) + .add(T_ID, tId) + .add(ROW, row) + .add(COL, col) + .add(B_COLOR, bColor) + .add(F_COLOR, fColor) + .add(SEL_B_COLOR, selBColor) + .add(SEL_F_COLOR, selFColor) .toString(); } + + public static final class ArgsBuilder { + + private int tId; + private int row = QTABLE_NO_INDEX; + private int col = QTABLE_NO_INDEX; + private int bColor = QTABLE_DEFAULT_COLOR; + private int fColor = QTABLE_DEFAULT_COLOR; + private int selBColor = QTABLE_DEFAULT_COLOR; + private int selFColor = QTABLE_DEFAULT_COLOR; + + ArgsBuilder() {} + + public ArgsBuilder tId(final int tId) { + this.tId = tId; + return this; + } + + public ArgsBuilder row(final int row) { + this.row = row; + return this; + } + + public ArgsBuilder col(final int col) { + this.col = col; + return this; + } + + public ArgsBuilder bColor(final int bColor) { + this.bColor = bColor; + return this; + } + + public ArgsBuilder fColor(final int fColor) { + this.fColor = fColor; + return this; + } + + public ArgsBuilder selBColor(final int selBColor) { + this.selBColor = selBColor; + return this; + } + + public ArgsBuilder selFColor(final int selFColor) { + this.selFColor = selFColor; + return this; + } + + public Args build() { + return new Args(tId, row, col, bColor, fColor, selBColor, selFColor); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(T_ID, tId) + .add(ROW, row) + .add(COL, col) + .add(B_COLOR, bColor) + .add(F_COLOR, fColor) + .add(SEL_B_COLOR, selBColor) + .add(SEL_F_COLOR, selFColor) + .toString(); + } + } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java index 9270bc3..af1caeb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParams.java @@ -1,58 +1,109 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; -import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; import java.util.Map; -public final class SetLabelParams { +public final class SetLabelParams implements RemoteProcedure { private SetLabelParams() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CHART_TAG, Args.LABEL_ID, Args.LABEL_PARAMS}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CHART_TAG = "chart_tag"; + private static final String LABEL_ID = "label_id"; + private static final String LABEL_PARAMS = "label_params"; + + @JsonProperty(CHART_TAG) + private final String chartTag; + + @JsonProperty(LABEL_ID) + private final int labelId; + + @JsonProperty(LABEL_PARAMS) + private final Map labelParams; - @NonNull String chartTag; - int labelId; - @NonNull Map labelParams; + public Args(@NonNull final String chartTag, final int labelId, @NonNull final Map labelParams) { - @Builder - private Request(final String chartTag, final int labelId, final Map labelParams) { this.chartTag = chartTag; this.labelId = labelId; this.labelParams = ImmutableMap.copyOf(labelParams); } + @JsonIgnore + public String getChartTag() { + return chartTag; + } + + @JsonIgnore + public int getLabelId() { + return labelId; + } + + @JsonIgnore + public Map getLabelParams() { + return labelParams; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("chart_tag", chartTag) - .add("label_id", labelId) - .add("label_params", labelParams) + .add(CHART_TAG, chartTag) + .add(LABEL_ID, labelId) + .add(LABEL_PARAMS, labelParams) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java index 8f48ac1..75aaa60 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRow.java @@ -1,51 +1,146 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; -import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetSelectedRow { +public final class SetSelectedRow implements RemoteProcedure { private SetSelectedRow() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.TABLE_ID, Args.ROW}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TABLE_ID = "table_id"; + private static final String ROW = "row"; + + public static final int LAST_VISIBLE_ROW = -1; + + @JsonProperty(TABLE_ID) + private final int tableId; + + @JsonProperty(ROW) + private final int row; - int tableId; - int row; + private Args(final int tableId, final int row) { - @Builder - private Request(final int tableId, final int row) { this.tableId = tableId; this.row = row; } + public static ArgsBuilder builder() { + return new ArgsBuilder(); + } + + @JsonIgnore + public int getTableId() { + return tableId; + } + + @JsonIgnore + public int getRow() { + return row; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("table_id", tableId) - .add("row", row) + .add(TABLE_ID, tableId) + .add(ROW, row) .toString(); } + + public static final class ArgsBuilder { + + private int tableId; + private int row = LAST_VISIBLE_ROW; + + ArgsBuilder() {} + + public ArgsBuilder tableId(final int tableId) { + this.tableId = tableId; + return this; + } + + public ArgsBuilder row(final int row) { + this.row = row; + return this; + } + + public Args build() { + return new Args(tableId, row); + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(TABLE_ID, tableId) + .add(ROW, row) + .toString(); + } + } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final int result) { + + if ( isError(result) ) { + return InstanceHolder.ERROR; + } + + return new Result(result); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final int result) { this.result = result; } + public boolean isError() { + return isError(result); + } + + private static boolean isError(final int result) { + return result == -1; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(-1); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java index 65f4d73..3bd8708 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallback.java @@ -1,50 +1,126 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetTableNotificationCallback { +public final class SetTableNotificationCallback implements RemoteProcedure { private SetTableNotificationCallback() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.FUNCTION_CALLBACK_DEFINITION}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String FUNCTION_CALLBACK_DEFINITION = "f_cb_def"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(FUNCTION_CALLBACK_DEFINITION) + private final String fCbDef; - int tId; - @NonNull String fCbDef; + public Args(final int tId, @NonNull final String fCbDef) { - public Request(final int tId, final String fCbDef) { this.tId = tId; this.fCbDef = fCbDef; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public String getFunctionCallbackDefinition() { + return fCbDef; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("f_cb_def", fCbDef) + .add(T_ID, tId) + .add(FUNCTION_CALLBACK_DEFINITION, fCbDef) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final int result) { + + if ( isOk(result) ) { + return InstanceHolder.OK; + } else if ( isError(result) ) { + return InstanceHolder.ERROR; + } + + return new Result(result); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + public static Result getOkInstance() { + return InstanceHolder.OK; + } + + private Result(final int result) { this.result = result; } + public boolean isError() { + return isError(result); + } + + public boolean isOk() { + return isOk(result); + } + + private static boolean isOk(final int result) { + return result == 1; + } + + private static boolean isError(final int result) { + return result == 0; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result OK = new Result(1); + private static final Result ERROR = new Result(0); + + // sanity check + static { + assert !OK.isError() && OK.isOk(); + assert ERROR.isError() && !ERROR.isOk(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java index b673b1a..3abb6c0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaption.java @@ -1,50 +1,95 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetWindowCaption { +public final class SetWindowCaption implements RemoteProcedure { private SetWindowCaption() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.STR}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String STR = "str"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(STR) + private final String str; - int tId; - String str; + public Args(final int tId, @NonNull final String str) { - public Request(final int tId, final String str) { this.tId = tId; this.str = str; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public String getStr() { + return str; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("str", str) + .add(T_ID, tId) + .add(STR, str) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java index 83f7d2f..54c457e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPos.java @@ -1,26 +1,49 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetWindowPos { +public final class SetWindowPos implements RemoteProcedure { private SetWindowPos() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.T_ID, Args.X, Args.Y, Args.DX, Args.DY}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String T_ID = "t_id"; + private static final String X = "x"; + private static final String Y = "y"; + private static final String DX = "dx"; + private static final String DY = "dy"; + + @JsonProperty(T_ID) + private final int tId; + + @JsonProperty(X) + private final int x; + + @JsonProperty(Y) + private final int y; + + @JsonProperty(DX) + private final int dx; - int tId; - int x; - int y; - int dx; - int dy; + @JsonProperty(DY) + private final int dy; @Builder - private Request( + private Args( final int tId, final int x, final int y, @@ -34,33 +57,78 @@ private Request( this.dy = dy; } + @JsonIgnore + public int getTId() { + return tId; + } + + @JsonIgnore + public int getX() { + return x; + } + + @JsonIgnore + public int getY() { + return y; + } + + @JsonIgnore + public int getDX() { + return dx; + } + + @JsonIgnore + public int getDY() { + return dy; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("t_id", tId) - .add("x", x) - .add("y", y) - .add("dx", dx) - .add("dy", dy) + .add(T_ID, tId) + .add(X, x) + .add(Y, y) + .add(DX, dx) + .add(DY, dy) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java index a0f8a40..ae01fe4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/Sleep.java @@ -1,42 +1,95 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; -public final class Sleep { +public final class Sleep implements RemoteProcedure { private Sleep() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String TIME = "time"; + + @JsonProperty(TIME) + private final int time; - int time; + public Args(final int time) { + this.time = time; + } + + public int getTime() { + return time; + } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("time", time) + .add(TIME, time) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { - int result; + private static final String RESULT = "result"; + + Integer result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public static Result getInstance(@JsonProperty(RESULT) final Integer result) { + + if ( isError(result) ) { + return InstanceHolder.ERROR; + } + + return new Result(result); + } + + public static Result getErrorInstance() { + return InstanceHolder.ERROR; + } + + private Result(final Integer result) { this.result = result; } + public boolean isError() { + return isError(result); + } + + @Contract(value = "null -> true; !null -> false", pure = true) + private static boolean isError(final Integer result) { + return result == null; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result ERROR = new Result(null); + + // sanity check + static { + assert ERROR.isError(); + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java index 2c4e50e..a27cf21 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2Quotes.java @@ -1,52 +1,96 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SubscribeLevel2Quotes { +public final class SubscribeLevel2Quotes implements RemoteProcedure { private SubscribeLevel2Quotes() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; - @NonNull String classCode; - @NonNull String secCode; + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; @Builder - private Request(final String classCode, final String secCode) { + private Args(@NonNull final String classCode, @NonNull final String secCode) { this.classCode = classCode; this.secCode = secCode; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java index ad8d118..c04ad0d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2Quotes.java @@ -1,53 +1,96 @@ package com.enfernuz.quik.lua.rpc.api.messages; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class UnsubscribeLevel2Quotes { +public final class UnsubscribeLevel2Quotes implements RemoteProcedure { private UnsubscribeLevel2Quotes() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; - @NonNull - String classCode; - @NonNull String secCode; + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; @Builder - private Request(final String classCode, final String secCode) { + private Args(@NonNull final String classCode, @NonNull final String secCode) { this.classCode = classCode; this.secCode = secCode; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java index 507b2f7..03121f8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAnd.java @@ -1,61 +1,87 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; +import org.jetbrains.annotations.NotNull; import java.util.Arrays; -public final class BAnd { +public final class BAnd implements RemoteProcedure { private BAnd() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.X_1, Args.X_2, Args.X_I}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X_1 = "x1"; + private static final String X_2 = "x2"; + private static final String X_I = "xi"; + + @JsonProperty(X_1) + private final int x1; - int x1; - int x2; - @Getter(AccessLevel.NONE) int[] xi; + @JsonProperty(X_2) + private final int x2; + + @JsonProperty(X_I) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final int[] xi; @Builder - private Request(final int x1, final int x2, final int[] xi) { + private Args(final int x1, final int x2, final int[] xi) { this.x1 = x1; this.x2 = x2; this.xi = (xi == null) ? null : xi.clone(); } + @JsonIgnore + public int getX1() { + return x1; + } + + @JsonIgnore + public int getX2() { + return x2; + } + + @JsonIgnore public int[] getXi() { return (xi == null) ? null : xi.clone(); } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x1", x1) - .add("x2", x2) - .add("xi", Arrays.toString(xi)) + .add(X_1, x1) + .add(X_2, x2) + .add(X_I, Arrays.toString(xi)) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(final @JsonProperty(value = RESULT, required = true) int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java index 6dc1250..c44f0b3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNot.java @@ -1,41 +1,63 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class BNot { +public final class BNot implements RemoteProcedure { private BNot() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X = "x"; - int x; + @JsonProperty(X) + private final int x; + + public Args(final int x) { + this.x = x; + } + @JsonIgnore + public int getX() { + return x; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x", x) + .add(X, x) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(final @JsonProperty(value = RESULT, required = true) int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java index 2c79042..f09be7a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOr.java @@ -1,61 +1,89 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; import lombok.Builder; -import lombok.Getter; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; import java.util.Arrays; -public final class BOr { +public final class BOr implements RemoteProcedure { private BOr() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.X_1, Args.X_2, Args.X_I}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X_1 = "x1"; + private static final String X_2 = "x2"; + private static final String X_I = "xi"; + + @JsonProperty(X_1) + private final int x1; - int x1; - int x2; - @Getter(AccessLevel.NONE) int[] xi; + @JsonProperty(X_2) + private final int x2; + + @JsonProperty(X_I) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final int[] xi; @Builder - private Request(final int x1, final int x2, final int[] xi) { + private Args(final int x1, final int x2, final int[] xi) { this.x1 = x1; this.x2 = x2; this.xi = (xi == null) ? null : xi.clone(); } + @JsonIgnore + public int getX1() { + return x1; + } + + @JsonIgnore + public int getX2() { + return x2; + } + + @JsonIgnore public int[] getXi() { return (xi == null) ? null : xi.clone(); } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x1", x1) - .add("x2", x2) - .add("xi", Arrays.toString(xi)) + .add(X_1, x1) + .add(X_2, x2) + .add(X_I, Arrays.toString(xi)) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(final @JsonProperty(value = RESULT, required = true) int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java index 9b933ce..5535dcc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXor.java @@ -1,61 +1,89 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; import lombok.Builder; -import lombok.Getter; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; import java.util.Arrays; -public final class BXor { +public final class BXor implements RemoteProcedure { private BXor() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.X_1, Args.X_2, Args.X_I}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X_1 = "x1"; + private static final String X_2 = "x2"; + private static final String X_I = "xi"; + + @JsonProperty(X_1) + private final int x1; - int x1; - int x2; - @Getter(AccessLevel.NONE) int[] xi; + @JsonProperty(X_2) + private final int x2; + + @JsonProperty(X_I) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final int[] xi; @Builder - private Request(final int x1, final int x2, final int[] xi) { + private Args(final int x1, final int x2, final int[] xi) { this.x1 = x1; this.x2 = x2; this.xi = (xi == null) ? null : xi.clone(); } + @JsonIgnore + public int getX1() { + return x1; + } + + @JsonIgnore + public int getX2() { + return x2; + } + + @JsonIgnore public int[] getXi() { return (xi == null) ? null : xi.clone(); } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x1", x1) - .add("x2", x2) - .add("xi", Arrays.toString(xi)) + .add(X_1, x1) + .add(X_2, x2) + .add(X_I, Arrays.toString(xi)) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; int result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) int result) { + public Result(final @JsonProperty(value = RESULT, required = true) int result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java index 0706045..f1a1ab9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/Test.java @@ -1,51 +1,95 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class Test { +public final class Test implements RemoteProcedure { private Test() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.X, Args.N}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X = "x"; + private static final String N = "n"; - int x; - int n; + @JsonProperty(X) + private final int x; + + @JsonProperty(N) + private final int n; @Builder - private Request(final int x, final int n) { + private Args(final int x, final int n) { this.x = x; this.n = n; } + @JsonIgnore + public int getX() { + return x; + } + + @JsonIgnore + public int getN() { + return n; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x", x) - .add("n", n) + .add(X, x) + .add(N, n) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java index 82efeb6..cbfbf03 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHex.java @@ -1,51 +1,77 @@ package com.enfernuz.quik.lua.rpc.api.messages.bit; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class ToHex { +public final class ToHex implements RemoteProcedure { private ToHex() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.X, Args.N}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String X = "x"; + private static final String N = "n"; - int x; - int n; + @JsonProperty(X) + private final int x; + + @JsonProperty(N) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final Integer n; @Builder - private Request(final int x, final int n) { + private Args(final int x, final Integer n) { this.x = x; this.n = n; } + @JsonIgnore + public int getX() { + return x; + } + + @JsonIgnore + public Integer getN() { + return n; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("x", x) - .add("n", n) + .add(X, x) + .add(N, n) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; - @NonNull String result; + String result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) String result) { + public Result(@JsonProperty(value = RESULT, required = true) @NonNull final String result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java index ec18447..1ad9665 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/C.java @@ -1,43 +1,69 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class C { +public final class C implements RemoteProcedure { private C() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; - @NonNull String datasourceUUID; - int candleIndex; + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - public Request(final String datasourceUUID, final int candleIndex) { + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { this.datasourceUUID = datasourceUUID; this.candleIndex = candleIndex; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if (!(o instanceof Request)) { + } else if (!(o instanceof Args)) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return candleIndex == request.candleIndex && Objects.equals(datasourceUUID, request.datasourceUUID); } @@ -53,13 +79,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) .toString(); } @@ -68,51 +95,23 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { - String value; + private static final String VALUE = "value"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + String value; @JsonCreator - public Result(final @JsonProperty("value") String value) { + public Result(@JsonProperty(value = VALUE, required = true) @NonNull final String value) { this.value = value; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Result) ) { - return false; - } else { - final Result result = (Result) o; - return Objects.equals(value, result.value); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(value); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("value", value) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(VALUE, value) + .toString(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java index 8bb86a4..4ba931a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Close.java @@ -1,43 +1,81 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class Close { +public final class Close implements RemoteProcedure { private Close() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; - @NonNull String datasourceUUID; + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; + + public Args(@NonNull final String datasourceUUID) { + this.datasourceUUID = datasourceUUID; + } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) + .add(DATASOURCE_UUID, datasourceUUID) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java index b8982e7..9c280da 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java @@ -1,17 +1,21 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class CreateDataSource { +public final class CreateDataSource implements RemoteProcedure { private CreateDataSource() {} - public static enum Interval { + public enum Interval { INTERVAL_TICK, INTERVAL_M1, @@ -29,22 +33,36 @@ public static enum Interval { INTERVAL_H4, INTERVAL_D1, INTERVAL_W1, - INTERVAL_MN1; + INTERVAL_MN1 } - @Value - public static class Request { + @JsonPropertyOrder({Args.CLASS_CODE, Args.SEC_CODE, Args.INTERVAL, Args.PARAM}) + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String CLASS_CODE = "class_code"; + private static final String SEC_CODE = "sec_code"; + private static final String INTERVAL = "interval"; + private static final String PARAM = "param"; + + @JsonProperty(CLASS_CODE) + private final String classCode; + + @JsonProperty(SEC_CODE) + private final String secCode; - @NonNull String classCode; - @NonNull String secCode; - @NonNull Interval interval; - String param; + @JsonProperty(INTERVAL) + private final Interval interval; + + @JsonProperty(PARAM) + @JsonInclude(JsonInclude.Include.NON_NULL) + private final String param; @Builder - private Request( - final String classCode, - final String secCode, - final Interval interval, + private Args( + @NonNull final String classCode, + @NonNull final String secCode, + @NonNull final Interval interval, final String param) { this.classCode = classCode; @@ -53,19 +71,44 @@ private Request( this.param = param; } + @JsonIgnore + public String getClassCode() { + return classCode; + } + + @JsonIgnore + public String getSecCode() { + return secCode; + } + + @JsonIgnore + public Interval getInterval() { + return interval; + } + + @JsonIgnore + public String getParam() { + return param; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("interval", interval) - .add("param", param) + .add(CLASS_CODE, classCode) + .add(SEC_CODE, secCode) + .add(INTERVAL, interval) + .add(PARAM, param) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String IS_ERROR = "is_error"; + private static final String ERROR_DESCRIPTION = "error_desc"; String datasourceUUID; boolean error; @@ -74,20 +117,22 @@ public static class Result { @JsonCreator @Builder private Result( - final @JsonProperty(value = "datasource_uuid") String datasourceUUID, - final @JsonProperty(value = "is_error") boolean error, - final @JsonProperty(value = "error_desc") String errorDesc) { + @JsonProperty(value = DATASOURCE_UUID) final String datasourceUUID, + @JsonProperty(value = IS_ERROR, required = true) final boolean error, + @JsonProperty(value = ERROR_DESCRIPTION) final String errorDesc) { + this.datasourceUUID = datasourceUUID; this.error = error; this.errorDesc = errorDesc; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("is_error", error) - .add("error_desc", errorDesc) + .add(DATASOURCE_UUID, datasourceUUID) + .add(IS_ERROR, error) + .add(ERROR_DESCRIPTION, errorDesc) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java index cf5d712..741f887 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/H.java @@ -1,44 +1,72 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Getter; import lombok.NonNull; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class H { +public final class H implements RemoteProcedure { private H() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; - @NonNull - String datasourceUUID; - int candleIndex; + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - public Request(final String datasourceUUID, final int candleIndex) { + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { this.datasourceUUID = datasourceUUID; this.candleIndex = candleIndex; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if (!(o instanceof Request)) { + } else if (!(o instanceof Args)) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return candleIndex == request.candleIndex && Objects.equals(datasourceUUID, request.datasourceUUID); } @@ -54,13 +82,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) .toString(); } @@ -69,51 +98,23 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { - String value; + private static final String VALUE = "value"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + String value; @JsonCreator - public Result(final @JsonProperty("value") String value) { + public Result(@JsonProperty(value = VALUE, required = true) @NonNull final String value) { this.value = value; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Result) ) { - return false; - } else { - final Result result = (Result) o; - return Objects.equals(value, result.value); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(value); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("value", value) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(VALUE, value) + .toString(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java index 62ef3e7..f7e94be 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/L.java @@ -1,44 +1,72 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Getter; import lombok.NonNull; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class L { +public final class L implements RemoteProcedure { private L() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; - @NonNull - String datasourceUUID; - int candleIndex; + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - public Request(final String datasourceUUID, final int candleIndex) { + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { this.datasourceUUID = datasourceUUID; this.candleIndex = candleIndex; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if (!(o instanceof Request)) { + } else if (!(o instanceof Args)) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return candleIndex == request.candleIndex && Objects.equals(datasourceUUID, request.datasourceUUID); } @@ -54,13 +82,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) .toString(); } @@ -69,51 +98,23 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { - String value; + private static final String VALUE = "value"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + String value; @JsonCreator - public Result(final @JsonProperty("value") String value) { + public Result(@JsonProperty(value = VALUE, required = true) @NonNull final String value) { this.value = value; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Result) ) { - return false; - } else { - final Result result = (Result) o; - return Objects.equals(value, result.value); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(value); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("value", value) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(VALUE, value) + .toString(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java index de591f1..333af33 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/O.java @@ -1,44 +1,72 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Getter; import lombok.NonNull; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class O { +public final class O implements RemoteProcedure { private O() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; - @NonNull - String datasourceUUID; - int candleIndex; + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - public Request(final String datasourceUUID, final int candleIndex) { + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { this.datasourceUUID = datasourceUUID; this.candleIndex = candleIndex; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if (!(o instanceof Request)) { + } else if (!(o instanceof Args)) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return candleIndex == request.candleIndex && Objects.equals(datasourceUUID, request.datasourceUUID); } @@ -54,13 +82,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) .toString(); } @@ -69,51 +98,23 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { - String value; + private static final String VALUE = "value"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + String value; @JsonCreator - public Result(final @JsonProperty("value") String value) { + public Result(@JsonProperty(value = VALUE, required = true) @NonNull final String value) { this.value = value; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Result) ) { - return false; - } else { - final Result result = (Result) o; - return Objects.equals(value, result.value); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(value); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("value", value) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(VALUE, value) + .toString(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java index 661ea62..989633d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallback.java @@ -1,43 +1,81 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetEmptyCallback { +public final class SetEmptyCallback implements RemoteProcedure { private SetEmptyCallback() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; - @NonNull String datasourceUUID; + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; + + public Args(@NonNull final String datasourceUUID) { + this.datasourceUUID = datasourceUUID; + } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) + .add(DATASOURCE_UUID, datasourceUUID) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java index 97a7bc5..cba491b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java @@ -1,52 +1,95 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.Builder; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SetUpdateCallback { +public final class SetUpdateCallback implements RemoteProcedure { private SetUpdateCallback() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CALLBACK_FUNCTION_DEFINITION}) + @EqualsAndHashCode + public static class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CALLBACK_FUNCTION_DEFINITION = "f_cb_def"; - @NonNull String datasourceUUID; - @NonNull String fCbDef; + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; + + @JsonProperty(CALLBACK_FUNCTION_DEFINITION) + private final String fCbDef; @Builder - private Request(final String datasourceUUID, final String fCbDef) { + private Args(@NonNull final String datasourceUUID, @NonNull final String fCbDef) { this.datasourceUUID = datasourceUUID; this.fCbDef = fCbDef; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public String getCallbackFunctionDefinition() { + return fCbDef; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("f_cb_def", fCbDef) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CALLBACK_FUNCTION_DEFINITION, fCbDef) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; boolean result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) boolean result) { + public static Result getInstance(@JsonProperty(value = RESULT, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private Result(final boolean result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } + + private static final class InstanceHolder { + + private static final Result TRUE = new Result(true); + private static final Result FALSE = new Result(false); + + // sanity check + static { + assert TRUE.result; + assert !FALSE.result; + } + } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java index 5ced1f8..8914d0c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/Size.java @@ -1,43 +1,64 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class Size { +public final class Size implements RemoteProcedure { private Size() {} - @Value - public static class Request { + @EqualsAndHashCode + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; - @NonNull - String datasourceUUID; + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; + + public Args(@NonNull final String datasourceUUID) { + this.datasourceUUID = datasourceUUID; + } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) + .add(DATASOURCE_UUID, datasourceUUID) .toString(); } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String VALUE = "value"; int value; @JsonCreator - public Result(final @JsonProperty(value = "value", required = true) int value) { + public Result(final @JsonProperty(value = VALUE, required = true) int value) { this.value = value; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("value", value) + .add(VALUE, value) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java index dc1728a..50ed80e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java @@ -1,33 +1,111 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; +import lombok.*; +import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; -public final class T { +import java.util.Objects; + +public final class T implements RemoteProcedure { private T() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; + + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; + + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { + this.datasourceUUID = datasourceUUID; + this.candleIndex = candleIndex; + } + + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + + @Override + public boolean equals(final Object o) { + + if (o == this) { + return true; + } else if (!(o instanceof Args)) { + return false; + } else { + final Args request = (Args) o; + return candleIndex == request.candleIndex && + Objects.equals(datasourceUUID, request.datasourceUUID); + } + } - @NonNull String datasourceUUID; - int candleIndex; + @Override + public int hashCode() { + + if (hashCode == 0) { + hashCode = Objects.hash(datasourceUUID, candleIndex); + } + + return hashCode; + } + @NotNull @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) - .toString(); + + if (asString == null) { + asString = MoreObjects.toStringHelper(this) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) + .toString(); + } + + return asString; } } @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String YEAR = "year"; + private static final String MONTH = "month"; + private static final String DAY = "day"; + private static final String WEEK_DAY = "week_day"; + private static final String HOUR = "hour"; + private static final String MIN = "min"; + private static final String SEC = "sec"; + private static final String MS = "ms"; + private static final String COUNT = "count"; int year; int month; @@ -39,17 +117,17 @@ public static class Result { int ms; int count; - @Builder @JsonCreator - private Result(final @JsonProperty(value = "year", required = true) int year, - final @JsonProperty(value = "month", required = true) int month, - final @JsonProperty(value = "day", required = true) int day, - final @JsonProperty(value = "week_day", required = true) int weekDay, - final @JsonProperty(value = "hour", required = true) int hour, - final @JsonProperty(value = "min", required = true) int min, - final @JsonProperty(value = "sec", required = true) int sec, - final @JsonProperty(value = "ms", required = true) int ms, - final @JsonProperty(value = "count", required = true) int count) { + @Builder + private Result(@JsonProperty(value = YEAR, required = true) final int year, + @JsonProperty(value = MONTH, required = true) final int month, + @JsonProperty(value = DAY, required = true) final int day, + @JsonProperty(value = WEEK_DAY, required = true) final int weekDay, + @JsonProperty(value = HOUR, required = true) final int hour, + @JsonProperty(value = MIN, required = true) final int min, + @JsonProperty(value = SEC, required = true) final int sec, + @JsonProperty(value = MS, required = true) final int ms, + @JsonProperty(value = COUNT, required = true) final int count) { this.year = year; this.month = month; @@ -62,18 +140,19 @@ private Result(final @JsonProperty(value = "year", required = true) int year, this.count = count; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("year", year) - .add("month", month) - .add("day", day) - .add("week_day", weekDay) - .add("hour", hour) - .add("min", min) - .add("sec", sec) - .add("ms", ms) - .add("count", count) + .add(YEAR, year) + .add(MONTH, month) + .add(DAY, day) + .add(WEEK_DAY, weekDay) + .add(HOUR, hour) + .add(MIN, min) + .add(SEC, sec) + .add(MS, ms) + .add(COUNT, count) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java index 3522794..479190a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/V.java @@ -1,44 +1,72 @@ package com.enfernuz.quik.lua.rpc.api.messages.datasource; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Getter; import lombok.NonNull; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; -public final class V { +public final class V implements RemoteProcedure { private V() {} - @Value - public static class Request { + @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CANDLE_INDEX}) + public static final class Args implements RpcArgs { + + private static final String DATASOURCE_UUID = "datasource_uuid"; + private static final String CANDLE_INDEX = "candle_index"; + + @JsonProperty(DATASOURCE_UUID) + private final String datasourceUUID; - @NonNull - String datasourceUUID; - int candleIndex; + @JsonProperty(CANDLE_INDEX) + private final int candleIndex; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - public Request(final String datasourceUUID, final int candleIndex) { + @JsonIgnore + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + public Args(@NonNull final String datasourceUUID, final int candleIndex) { this.datasourceUUID = datasourceUUID; this.candleIndex = candleIndex; } + @JsonIgnore + public String getDatasourceUUID() { + return datasourceUUID; + } + + @JsonIgnore + public int getCandleIndex() { + return candleIndex; + } + @Override public boolean equals(final Object o) { if (o == this) { return true; - } else if (!(o instanceof Request)) { + } else if (!(o instanceof Args)) { return false; } else { - final Request request = (Request) o; + final Args request = (Args) o; return candleIndex == request.candleIndex && Objects.equals(datasourceUUID, request.datasourceUUID); } @@ -54,13 +82,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("datasource_uuid", datasourceUUID) - .add("candle_index", candleIndex) + .add(DATASOURCE_UUID, datasourceUUID) + .add(CANDLE_INDEX, candleIndex) .toString(); } @@ -69,51 +98,23 @@ public String toString() { } @Value - public static class Result { + public static class Result implements RpcResult { - String value; + private static final String VALUE = "value"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + String value; @JsonCreator - public Result(final @JsonProperty("value") String value) { + public Result(@JsonProperty(value = VALUE, required = true) @NonNull final String value) { this.value = value; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Result) ) { - return false; - } else { - final Result result = (Result) o; - return Objects.equals(value, result.value); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(value); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("value", value) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(VALUE, value) + .toString(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java index f1a31b7..633c5c2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDate.java @@ -1,32 +1,36 @@ package com.enfernuz.quik.lua.rpc.api.messages.os; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; +import org.jetbrains.annotations.NotNull; -public final class SysDate { +public final class SysDate implements RemoteProcedure { private SysDate() {} - public static enum Request { INSTANCE; } - @Value - public static class Result { + public static class Result implements RpcResult { + + private static final String RESULT = "result"; - @NonNull DateTimeEntry result; + DateTimeEntry result; @JsonCreator - public Result(final @JsonProperty(value = "result", required = true) DateTimeEntry result) { + public Result(@JsonProperty(value = RESULT, required = true) @NonNull final DateTimeEntry result) { this.result = result; } + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("result", result) + .add(RESULT, result) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java index 645086a..ef0d8d1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalance.java @@ -3,54 +3,63 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; import lombok.Builder; -import lombok.Getter; import lombok.Value; -import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class AccountBalance { - @JsonProperty("firmid") String firmId; - @JsonProperty("sec_code") String secCode; - @JsonProperty("trdaccid") String trdAccId; - @JsonProperty("depaccid") String depAccId; - @JsonProperty("openbal") String openBal; - @JsonProperty("currentpos") String currentPos; - @JsonProperty("plannedpossell") String plannedPosSell; - @JsonProperty("plannedposbuy") String plannedPosBuy; - @JsonProperty("planbal") String planBal; - @JsonProperty("usqtyb") String usqtyb; - @JsonProperty("usqtys") String usqtys; - @JsonProperty("planned") String planned; - @JsonProperty("settlebal") String settleBal; - @JsonProperty("bank_acc_id") String bankAccId; - @JsonProperty(value = "firmuse") int firmUse; + private static final String FIRM_ID = "firmid"; + private static final String SECURITY_CODE = "sec_code"; + private static final String TRADING_ACCOUNT_ID = "trdaccid"; + private static final String DEPOSIT_ACCOUNT_ID = "depaccid"; + private static final String OPEN_BALANCE = "openbal"; + private static final String CURRENT_POSITION = "currentpos"; + private static final String PLANNED_POSITION_SELL = "plannedpossell"; + private static final String PLANNED_POSITION_BUY = "plannedposbuy"; + private static final String PLANNED_BALANCE = "planbal"; + private static final String US_QTY_BOUGHT = "usqtyb"; + private static final String US_QTY_SOLD = "usqtys"; + private static final String PLANNED = "planned"; + private static final String SETTLE_BALANCE = "settlebal"; + private static final String BANK_ACCOUNT_ID = "bank_acc_id"; + private static final String FIRM_USE = "firmuse"; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + String firmId; + String secCode; + String trdAccId; + String depAccId; + String openBal; + String currentPos; + String plannedPosSell; + String plannedPosBuy; + String planBal; + String usqtyb; + String usqtys; + String planned; + String settleBal; + String bankAccId; + int firmUse; - @Builder @JsonCreator + @Builder private AccountBalance( - @JsonProperty("firmid") final String firmId, - @JsonProperty("sec_code") final String secCode, - @JsonProperty("trdaccid") final String trdAccId, - @JsonProperty("depaccid") final String depAccId, - @JsonProperty("openbal") final String openBal, - @JsonProperty("currentpos") final String currentPos, - @JsonProperty("plannedpossell") final String plannedPosSell, - @JsonProperty("plannedposbuy") final String plannedPosBuy, - @JsonProperty("planbal") final String planBal, - @JsonProperty("usqtyb") final String usqtyb, - @JsonProperty("usqtys") final String usqtys, - @JsonProperty("planned") final String planned, - @JsonProperty("settlebal") final String settleBal, - @JsonProperty("bank_acc_id") final String bankAccId, - @JsonProperty(value = "firmuse", required = true) final int firmUse) { + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(TRADING_ACCOUNT_ID) final String trdAccId, + @JsonProperty(DEPOSIT_ACCOUNT_ID) final String depAccId, + @JsonProperty(OPEN_BALANCE) final String openBal, + @JsonProperty(CURRENT_POSITION) final String currentPos, + @JsonProperty(PLANNED_POSITION_SELL) final String plannedPosSell, + @JsonProperty(PLANNED_POSITION_BUY) final String plannedPosBuy, + @JsonProperty(PLANNED_BALANCE) final String planBal, + @JsonProperty(US_QTY_BOUGHT) final String usqtyb, + @JsonProperty(US_QTY_SOLD) final String usqtys, + @JsonProperty(PLANNED) final String planned, + @JsonProperty(SETTLE_BALANCE) final String settleBal, + @JsonProperty(BANK_ACCOUNT_ID) final String bankAccId, + @JsonProperty(value = FIRM_USE, required = true) final int firmUse) { this.firmId = firmId; this.secCode = secCode; @@ -69,82 +78,26 @@ private AccountBalance( this.firmUse = firmUse; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if (!(o instanceof AccountBalance)) { - return false; - } else { - final AccountBalance that = (AccountBalance) o; - return firmUse == that.firmUse && - Objects.equals(firmId, that.firmId) && - Objects.equals(secCode, that.secCode) && - Objects.equals(trdAccId, that.trdAccId) && - Objects.equals(depAccId, that.depAccId) && - Objects.equals(openBal, that.openBal) && - Objects.equals(currentPos, that.currentPos) && - Objects.equals(plannedPosSell, that.plannedPosSell) && - Objects.equals(plannedPosBuy, that.plannedPosBuy) && - Objects.equals(planBal, that.planBal) && - Objects.equals(usqtyb, that.usqtyb) && - Objects.equals(usqtys, that.usqtys) && - Objects.equals(planned, that.planned) && - Objects.equals(settleBal, that.settleBal) && - Objects.equals(bankAccId, that.bankAccId); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - firmId, - secCode, - trdAccId, - depAccId, - openBal, - currentPos, - plannedPosSell, - plannedPosBuy, - planBal, - usqtyb, - usqtys, - planned, - settleBal, - bankAccId, - firmUse - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("sec_code", secCode) - .add("trdaccid", trdAccId) - .add("depaccid", depAccId) - .add("openbal", openBal) - .add("currentpos", currentPos) - .add("plannedpossell", plannedPosSell) - .add("plannedposbuy", plannedPosBuy) - .add("planbal", planBal) - .add("usqtyb", usqtyb) - .add("usqtys", usqtys) - .add("planned", planned) - .add("settlebal", settleBal) - .add("bank_acc_id", bankAccId) - .add("firmuse", firmUse) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(FIRM_ID, firmId) + .add(SECURITY_CODE, secCode) + .add(TRADING_ACCOUNT_ID, trdAccId) + .add(DEPOSIT_ACCOUNT_ID, depAccId) + .add(OPEN_BALANCE, openBal) + .add(CURRENT_POSITION, currentPos) + .add(PLANNED_POSITION_SELL, plannedPosSell) + .add(PLANNED_POSITION_BUY, plannedPosBuy) + .add(PLANNED_BALANCE, planBal) + .add(US_QTY_BOUGHT, usqtyb) + .add(US_QTY_SOLD, usqtys) + .add(PLANNED, planned) + .add(SETTLE_BALANCE, settleBal) + .add(BANK_ACCOUNT_ID, bankAccId) + .add(FIRM_USE, firmUse) + .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java index 4ce529a..b95da81 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPosition.java @@ -3,60 +3,72 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; import lombok.Builder; -import lombok.Getter; import lombok.Value; -import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class AccountPosition { - @JsonProperty("firmid") String firmId; - @JsonProperty("currcode") String currCode; - @JsonProperty("tag") String tag; - @JsonProperty("description") String description; - @JsonProperty("openbal") String openBal; - @JsonProperty("currentpos") String currentPos; - @JsonProperty("plannedpos") String plannedPos; - @JsonProperty("limit1") String limit1; - @JsonProperty("limit2") String limit2; - @JsonProperty("orderbuy") String orderBuy; - @JsonProperty("ordersell") String orderSell; - @JsonProperty("netto") String netto; - @JsonProperty("plannedbal") String plannedBal; - @JsonProperty("debit") String debit; - @JsonProperty("credit") String credit; - @JsonProperty("bank_acc_id") String bankAccId; - @JsonProperty("margincall") String marginCall; - @JsonProperty("settlebal") String settleBal; - - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + private static final String FIRM_ID = "firmid"; + private static final String CURRENCY_CODE = "currcode"; + private static final String TAG = "tag"; + private static final String DESCRIPTION = "description"; + private static final String OPEN_BALANCE = "openbal"; + private static final String CURRENT_POSITION = "currentpos"; + private static final String PLANNED_POSITION = "plannedpos"; + private static final String LIMIT_1 = "limit1"; + private static final String LIMIT_2 = "limit2"; + private static final String ORDER_BUY = "orderbuy"; + private static final String ORDER_SELL = "ordersell"; + private static final String NETTO = "netto"; + private static final String PLANNED_BALANCE = "plannedbal"; + private static final String DEBIT = "debit"; + private static final String CREDIT = "credit"; + private static final String BANK_ACCOUNT_ID = "bank_acc_id"; + private static final String MARGIN_CALL = "margincall"; + private static final String SETTLE_BALANCE = "settlebal"; + + String firmId; + String currCode; + String tag; + String description; + String openBal; + String currentPos; + String plannedPos; + String limit1; + String limit2; + String orderBuy; + String orderSell; + String netto; + String plannedBal; + String debit; + String credit; + String bankAccId; + String marginCall; + String settleBal; - @Builder @JsonCreator + @Builder private AccountPosition( - @JsonProperty("firmid") final String firmId, - @JsonProperty("currcode") final String currCode, - @JsonProperty("tag") final String tag, - @JsonProperty("description") final String description, - @JsonProperty("openbal") final String openBal, - @JsonProperty("currentpos") final String currentPos, - @JsonProperty("plannedpos") final String plannedPos, - @JsonProperty("limit1") final String limit1, - @JsonProperty("limit2") final String limit2, - @JsonProperty("orderbuy") final String orderBuy, - @JsonProperty("ordersell") final String orderSell, - @JsonProperty("netto") final String netto, - @JsonProperty("plannedbal") final String plannedBal, - @JsonProperty("debit") final String debit, - @JsonProperty("credit") final String credit, - @JsonProperty("bank_acc_id") final String bankAccId, - @JsonProperty("margincall") final String marginCall, - @JsonProperty("settlebal") final String settleBal) { + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(CURRENCY_CODE) final String currCode, + @JsonProperty(TAG) final String tag, + @JsonProperty(DESCRIPTION) final String description, + @JsonProperty(OPEN_BALANCE) final String openBal, + @JsonProperty(CURRENT_POSITION) final String currentPos, + @JsonProperty(PLANNED_POSITION) final String plannedPos, + @JsonProperty(LIMIT_1) final String limit1, + @JsonProperty(LIMIT_2) final String limit2, + @JsonProperty(ORDER_BUY) final String orderBuy, + @JsonProperty(ORDER_SELL) final String orderSell, + @JsonProperty(NETTO) final String netto, + @JsonProperty(PLANNED_BALANCE) final String plannedBal, + @JsonProperty(DEBIT) final String debit, + @JsonProperty(CREDIT) final String credit, + @JsonProperty(BANK_ACCOUNT_ID) final String bankAccId, + @JsonProperty(MARGIN_CALL) final String marginCall, + @JsonProperty(SETTLE_BALANCE) final String settleBal) { this.firmId = firmId; this.currCode = currCode; @@ -78,111 +90,29 @@ private AccountPosition( this.settleBal = settleBal; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof AccountPosition) ) { - return false; - } else { - final AccountPosition that = (AccountPosition) o; - return Objects.equals(firmId, that.firmId) && - Objects.equals(currCode, that.currCode) && - Objects.equals(tag, that.tag) && - Objects.equals(description, that.description) && - Objects.equals(openBal, that.openBal) && - Objects.equals(currentPos, that.currentPos) && - Objects.equals(plannedPos, that.plannedPos) && - Objects.equals(limit1, that.limit1) && - Objects.equals(limit2, that.limit2) && - Objects.equals(orderBuy, that.orderBuy) && - Objects.equals(orderSell, that.orderSell) && - Objects.equals(netto, that.netto) && - Objects.equals(plannedBal, that.plannedBal) && - Objects.equals(debit, that.debit) && - Objects.equals(credit, that.credit) && - Objects.equals(bankAccId, that.bankAccId) && - Objects.equals(marginCall, that.marginCall) && - Objects.equals(settleBal, that.settleBal); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - firmId, - currCode, - tag, - description, - openBal, - currentPos, - plannedPos, - limit1, - limit2, - orderBuy, - orderSell, - netto, - plannedBal, - debit, - credit, - bankAccId, - marginCall, - settleBal - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("currcode", currCode) - .add("tag", tag) - .add("description", description) - .add("openbal", openBal) - .add("currentpos", currentPos) - .add("plannedpos", plannedPos) - .add("limit1", limit1) - .add("limit2", limit2) - .add("orderbuy", orderBuy) - .add("ordersell", orderSell) - .add("netto", netto) - .add("plannedbal", plannedBal) - .add("debit", debit) - .add("credit", credit) - .add("bank_acc_id", bankAccId) - .add("margincall", marginCall) - .add("settlebal", settleBal) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(FIRM_ID, firmId) + .add(CURRENCY_CODE, currCode) + .add(TAG, tag) + .add(DESCRIPTION, description) + .add(OPEN_BALANCE, openBal) + .add(CURRENT_POSITION, currentPos) + .add(PLANNED_POSITION, plannedPos) + .add(LIMIT_1, limit1) + .add(LIMIT_2, limit2) + .add(ORDER_BUY, orderBuy) + .add(ORDER_SELL, orderSell) + .add(NETTO, netto) + .add(PLANNED_BALANCE, plannedBal) + .add(DEBIT, debit) + .add(CREDIT, credit) + .add(BANK_ACCOUNT_ID, bankAccId) + .add(MARGIN_CALL, marginCall) + .add(SETTLE_BALANCE, settleBal) + .toString(); } } - - -// string firmid = 1; -// string currcode = 2; -// string tag = 3; -// string description = 4; -// string openbal = 5; // NUMBER in QLUA -// string currentpos = 6; // NUMBER in QLUA -// string plannedpos = 7; // NUMBER in QLUA -// string limit1 = 8; // NUMBER in QLUA -// string limit2 = 9; // NUMBER in QLUA -// string orderbuy = 10; // NUMBER in QLUA -// string ordersell = 11; // NUMBER in QLUA -// string netto = 12; // NUMBER in QLUA -// string plannedbal = 13; // NUMBER in QLUA -// string debit = 14; // NUMBER in QLUA -// string credit = 15; // NUMBER in QLUA -// string bank_acc_id = 16; -// string margincall = 17; // NUMBER in QLUA -// string settlebal = 18; // NUMBER in QLUA \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 765d95e..5ff1a5f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -3,57 +3,76 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.*; -import lombok.experimental.NonFinal; - -import java.util.Objects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import org.jetbrains.annotations.NotNull; @Value public class AllTrade { - @JsonProperty("trade_num") long tradeNum; - @JsonProperty("flags") int flags; - @JsonProperty("price") String price; - @JsonProperty("qty") int qty; - @JsonProperty("value") String value; - @JsonProperty("accruedint") String accruedInt; - @JsonProperty("yield") String yield; - @JsonProperty("settlecode") String settleCode; - @JsonProperty("reporate") String repoRate; - @JsonProperty("repovalue") String repoValue; - @JsonProperty("repo2value") String repo2Value; - @JsonProperty("repoterm") String repoTerm; - @JsonProperty("sec_code") String secCode; - @JsonProperty("class_code") String classCode; - @JsonProperty("datetime") DateTimeEntry datetime; - @JsonProperty("period") int period; - @JsonProperty("open_interest") String openInterest; - @JsonProperty("exchange_code") String exchangeCode; + private static final String TRADE_NUM = "trade_num"; + private static final String FLAGS = "flags"; + private static final String PRICE = "price"; + private static final String QUANTITY = "qty"; + private static final String VALUE = "value"; + private static final String ACCRUED_INTEREST = "accruedint"; + private static final String YIELD = "yield"; + private static final String SETTLE_CODE = "settlecode"; + private static final String REPO_RATE = "reporate"; + private static final String REPO_VALUE = "repovalue"; + private static final String REPO_2_VALUE = "repo2value"; + private static final String REPO_TERM = "repoterm"; + private static final String SECURITY_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String DATETIME = "datetime"; + private static final String PERIOD = "period"; + private static final String OPEN_INTEREST = "open_interest"; + private static final String EXCHANGE_CODE = "exchange_code"; + private static final String EXEC_MARKET = "exec_market"; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + Long tradeNum; + Integer flags; + String price; + Integer qty; + String value; + String accruedInt; + String yield; + String settleCode; + String repoRate; + String repoValue; + String repo2Value; + String repoTerm; + String secCode; + String classCode; + DateTimeEntry datetime; + int period; + String openInterest; + String exchangeCode; + String execMarket; - @Builder @JsonCreator + @Builder private AllTrade( - @JsonProperty(value = "trade_num", required = true) final long tradeNum, - @JsonProperty(value = "flags", required = true) final int flags, - @JsonProperty(value = "price", required = true) @NonNull final String price, - @JsonProperty(value = "qty", required = true) final int qty, - @JsonProperty("value") final String value, - @JsonProperty("accruedint") final String accruedInt, - @JsonProperty("yield") final String yield, - @JsonProperty("settlecode") final String settleCode, - @JsonProperty("reporate") final String repoRate, - @JsonProperty("repovalue") final String repoValue, - @JsonProperty("repo2value") final String repo2Value, - @JsonProperty("repoterm") final String repoTerm, - @JsonProperty("sec_code") final String secCode, - @JsonProperty("class_code") final String classCode, - @JsonProperty(value = "datetime", required = true) @NonNull final DateTimeEntry datetime, - @JsonProperty(value = "period", required = true) final int period, - @JsonProperty("open_interest") final String openInterest, - @JsonProperty("exchange_code") final String exchangeCode) { + @JsonProperty(TRADE_NUM) final Long tradeNum, + @JsonProperty(FLAGS) final Integer flags, + @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(QUANTITY) final Integer qty, + @JsonProperty(VALUE) final String value, + @JsonProperty(ACCRUED_INTEREST) final String accruedInt, + @JsonProperty(YIELD) final String yield, + @JsonProperty(SETTLE_CODE) final String settleCode, + @JsonProperty(REPO_RATE) final String repoRate, + @JsonProperty(REPO_VALUE) final String repoValue, + @JsonProperty(REPO_2_VALUE) final String repo2Value, + @JsonProperty(REPO_TERM) final String repoTerm, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(value = DATETIME, required = true) final DateTimeEntry datetime, + @JsonProperty(value = PERIOD, required = true) final int period, + @JsonProperty(OPEN_INTEREST) final String openInterest, + @JsonProperty(EXCHANGE_CODE) final String exchangeCode, + @JsonProperty(EXEC_MARKET) final String execMarket) { this.tradeNum = tradeNum; this.flags = flags; @@ -73,94 +92,33 @@ private AllTrade( this.period = period; this.openInterest = openInterest; this.exchangeCode = exchangeCode; + this.execMarket = execMarket; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof AllTrade) ) { - return false; - } else { - final AllTrade allTrade = (AllTrade) o; - return tradeNum == allTrade.tradeNum && - flags == allTrade.flags && - qty == allTrade.qty && - period == allTrade.period && - Objects.equals(price, allTrade.price) && - Objects.equals(value, allTrade.value) && - Objects.equals(accruedInt, allTrade.accruedInt) && - Objects.equals(yield, allTrade.yield) && - Objects.equals(settleCode, allTrade.settleCode) && - Objects.equals(repoRate, allTrade.repoRate) && - Objects.equals(repoValue, allTrade.repoValue) && - Objects.equals(repo2Value, allTrade.repo2Value) && - Objects.equals(repoTerm, allTrade.repoTerm) && - Objects.equals(secCode, allTrade.secCode) && - Objects.equals(classCode, allTrade.classCode) && - Objects.equals(datetime, allTrade.datetime) && - Objects.equals(openInterest, allTrade.openInterest) && - Objects.equals(exchangeCode, allTrade.exchangeCode); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = - Objects.hash( - tradeNum, - flags, - price, - qty, - value, - accruedInt, - yield, - settleCode, - repoRate, - repoValue, - repo2Value, - repoTerm, - secCode, - classCode, - datetime, - period, - openInterest, - exchangeCode - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { - if (asString == null) { - asString = MoreObjects.toStringHelper(this) - .add("trade_num", tradeNum) - .add("flags", flags) - .add("price", price) - .add("qty", qty) - .add("value", value) - .add("accruedint", accruedInt) - .add("yield", yield) - .add("settlecode", settleCode) - .add("reporate", repoRate) - .add("repovalue", repoValue) - .add("repo2value", repo2Value) - .add("repoterm", repoTerm) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("datetime", datetime) - .add("period", period) - .add("open_interest", openInterest) - .add("exchange_code", exchangeCode) - .toString(); - } - - return asString; + return MoreObjects.toStringHelper(this) + .add(TRADE_NUM, tradeNum) + .add(FLAGS, flags) + .add(PRICE, price) + .add(QUANTITY, qty) + .add(VALUE, value) + .add(ACCRUED_INTEREST, accruedInt) + .add(YIELD, yield) + .add(SETTLE_CODE, settleCode) + .add(REPO_RATE, repoRate) + .add(REPO_VALUE, repoValue) + .add(REPO_2_VALUE, repo2Value) + .add(REPO_TERM, repoTerm) + .add(SECURITY_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(DATETIME, datetime) + .add(PERIOD, period) + .add(OPEN_INTEREST, openInterest) + .add(EXCHANGE_CODE, exchangeCode) + .add(EXEC_MARKET, execMarket) + .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java index cf7f520..e8967a6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/CandleEntry.java @@ -1,14 +1,25 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class CandleEntry implements Comparable { + private static final String OPEN = "open"; + private static final String CLOSE = "close"; + private static final String HIGH = "high"; + private static final String LOW = "low"; + private static final String VOLUME = "volume"; + private static final String DATETIME = "datetime"; + private static final String DOES_EXIST = "does_exist"; + String open; String close; String high; @@ -17,18 +28,24 @@ public class CandleEntry implements Comparable { DateTimeEntry dateTimeEntry; int doesExist; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private CandleEntry( - final String open, - final String close, - final String high, - final String low, - final String volume, - final DateTimeEntry dateTimeEntry, - final int doesExist) { + @JsonProperty(value = OPEN, required = true) final String open, + @JsonProperty(value = CLOSE, required = true) final String close, + @JsonProperty(value = HIGH, required = true) final String high, + @JsonProperty(value = LOW, required = true) final String low, + @JsonProperty(value = VOLUME, required = true) final String volume, + @JsonProperty(value = DATETIME, required = true) final DateTimeEntry dateTimeEntry, + @JsonProperty(value = DOES_EXIST, required = true) final int doesExist) { this.open = open; this.close = close; @@ -73,18 +90,19 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("open", open) - .add("close", close) - .add("high", high) - .add("low", low) - .add("volume", volume) - .add("datetime", dateTimeEntry) - .add("does_exist", doesExist) + .add(OPEN, open) + .add(CLOSE, close) + .add(HIGH, high) + .add(LOW, low) + .add(VOLUME, volume) + .add(DATETIME, dateTimeEntry) + .add(DOES_EXIST, doesExist) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java index c74870e..5b922ab 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ClassInfo.java @@ -11,6 +11,12 @@ @Value public class ClassInfo { + private static final String FIRM_ID = "firmid"; + private static final String NAME = "name"; + private static final String CODE = "code"; + private static final String NPARS = "npars"; + private static final String NSECS = "nsecs"; + String firmId; String name; String code; @@ -18,19 +24,21 @@ public class ClassInfo { int nsecs; @Getter(AccessLevel.NONE) - private @NonFinal transient int hashCode; + @NonFinal + private transient int hashCode; @Getter(AccessLevel.NONE) - private @NonFinal transient String asString; + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private ClassInfo( - @JsonProperty(value = "firmid") final String firmId, - @JsonProperty(value = "name") final String name, - @JsonProperty(value = "code") final String code, - @JsonProperty(value = "npars", required = true) int npars, - @JsonProperty(value = "nsecs", required = true) int nsecs) { + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(NAME) final String name, + @JsonProperty(CODE) final String code, + @JsonProperty(NPARS) final int npars, + @JsonProperty(NSECS) final int nsecs) { this.firmId = firmId; this.name = name; @@ -71,11 +79,11 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("name", name) - .add("code", code) - .add("npars", npars) - .add("nsecs", nsecs) + .add(FIRM_ID, firmId) + .add(NAME, name) + .add(CODE, code) + .add(NPARS, npars) + .add(NSECS, nsecs) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java index 04dce41..e35b8fb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfo.java @@ -6,22 +6,26 @@ import lombok.AccessLevel; import lombok.Getter; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @Value public class ConnectedEventInfo { - @JsonProperty("flag") + private static final String FLAG = "flag"; + + @JsonProperty(FLAG) @Getter(AccessLevel.NONE) boolean flag; @JsonCreator - public ConnectedEventInfo(@JsonProperty(value = "flag", required = true) final boolean flag) { + public static ConnectedEventInfo getInstance(@JsonProperty(value = FLAG, required = true) final boolean result) { + return result ? InstanceHolder.TRUE : InstanceHolder.FALSE; + } + + private ConnectedEventInfo(final boolean flag) { this.flag = flag; } - @Contract(pure = true) public boolean getFlag() { return flag; } @@ -30,7 +34,19 @@ public boolean getFlag() { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("flag", flag) + .add(FLAG, flag) .toString(); } + + private static final class InstanceHolder { + + private static final ConnectedEventInfo TRUE = new ConnectedEventInfo(true); + private static final ConnectedEventInfo FALSE = new ConnectedEventInfo(false); + + // sanity check + static { + assert TRUE.flag; + assert !FALSE.flag; + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index 94590ea..bd0d592 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -9,37 +9,53 @@ import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class DateTimeEntry implements Comparable { - @JsonProperty("mcs") int mcs; - @JsonProperty("ms") int ms; - @JsonProperty("sec") int sec; - @JsonProperty("min") int min; - @JsonProperty("hour") int hour; - @JsonProperty("day") int day; - @JsonProperty("week_day") int weekDay; - @JsonProperty("month") int month; - @JsonProperty("year") int year; + private static final String MCS = "mcs"; + private static final String MS = "ms"; + private static final String SEC = "sec"; + private static final String MIN = "min"; + private static final String HOUR = "hour"; + private static final String DAY = "day"; + private static final String WEEK_DAY = "week_day"; + private static final String MONTH = "month"; + private static final String YEAR = "year"; + + int mcs; + int ms; + int sec; + int min; + int hour; + int day; + int weekDay; + int month; + int year; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; - - @Builder @JsonCreator + @Builder private DateTimeEntry( - @JsonProperty(value = "mcs", required = true) final int mcs, - @JsonProperty(value = "ms", required = true) final int ms, - @JsonProperty(value = "sec", required = true) final int sec, - @JsonProperty(value = "min", required = true) final int min, - @JsonProperty(value = "hour", required = true) final int hour, - @JsonProperty(value = "day", required = true) final int day, - @JsonProperty(value = "week_day", required = true) final int weekDay, - @JsonProperty(value = "month", required = true) final int month, - @JsonProperty(value = "year", required = true) final int year) { + @JsonProperty(value = MCS, required = true) final int mcs, + @JsonProperty(value = MS, required = true) final int ms, + @JsonProperty(value = SEC, required = true) final int sec, + @JsonProperty(value = MIN, required = true) final int min, + @JsonProperty(value = HOUR, required = true) final int hour, + @JsonProperty(value = DAY, required = true) final int day, + @JsonProperty(value = WEEK_DAY, required = true) final int weekDay, + @JsonProperty(value = MONTH, required = true) final int month, + @JsonProperty(value = YEAR, required = true) final int year) { this.mcs = mcs; this.ms = ms; @@ -99,20 +115,21 @@ public int compareTo(final DateTimeEntry other) { .result(); } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("mcs", mcs) - .add("ms", ms) - .add("sec", sec) - .add("min", min) - .add("hour", hour) - .add("day", day) - .add("week_day", weekDay) - .add("month", month) - .add("year", year) + .add(MCS, mcs) + .add(MS, ms) + .add(SEC, sec) + .add(MIN, min) + .add(HOUR, hour) + .add(DAY, day) + .add(WEEK_DAY, weekDay) + .add(MONTH, month) + .add(YEAR, year) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java index ed0102c..9fec178 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Depo.java @@ -1,17 +1,27 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class Depo { + private static final String DEPO_LIMIT_LOCKED_BUY_VALUE = "depo_limit_locked_buy_value"; + private static final String DEPO_CURRENT_BALANCE = "depo_current_balance"; + private static final String DEPO_LIMIT_LOCKED_BUY = "depo_limit_locked_buy"; + private static final String DEPO_LIMIT_LOCKED = "depo_limit_locked"; + private static final String DEPO_LIMIT_AVAILABLE = "depo_limit_available"; + private static final String DEPO_CURRENT_LIMIT = "depo_current_limit"; + private static final String DEPO_OPEN_BALANCE = "depo_open_balance"; + private static final String DEPO_OPEN_LIMIT = "depo_open_limit"; + String depoLimitLockedBuyValue; String depoCurrentBalance; String depoLimitLockedBuy; @@ -22,21 +32,20 @@ public class Depo { String depoOpenLimit; @Getter(AccessLevel.NONE) - private @NonFinal transient int hashCode; - - @Getter(AccessLevel.NONE) - private @NonFinal transient String asString; + @NonFinal + private transient String asString; + @JsonCreator @Builder private Depo( - final String depoLimitLockedBuyValue, - final String depoCurrentBalance, - final String depoLimitLockedBuy, - final String depoLimitLocked, - final String depoLimitAvailable, - final String depoCurrentLimit, - final String depoOpenBalance, - final String depoOpenLimit) { + @JsonProperty(DEPO_LIMIT_LOCKED_BUY_VALUE) final String depoLimitLockedBuyValue, + @JsonProperty(DEPO_CURRENT_BALANCE) final String depoCurrentBalance, + @JsonProperty(DEPO_LIMIT_LOCKED_BUY) final String depoLimitLockedBuy, + @JsonProperty(DEPO_LIMIT_LOCKED) final String depoLimitLocked, + @JsonProperty(DEPO_LIMIT_AVAILABLE) final String depoLimitAvailable, + @JsonProperty(DEPO_CURRENT_LIMIT) final String depoCurrentLimit, + @JsonProperty(DEPO_OPEN_BALANCE) final String depoOpenBalance, + @JsonProperty(DEPO_OPEN_LIMIT) final String depoOpenLimit) { this.depoLimitLockedBuyValue = depoLimitLockedBuyValue; this.depoCurrentBalance = depoCurrentBalance; @@ -48,58 +57,20 @@ private Depo( this.depoOpenLimit = depoOpenLimit; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Depo) ) { - return false; - } else { - final Depo depo = (Depo) o; - return Objects.equals(depoLimitLockedBuyValue, depo.depoLimitLockedBuyValue) && - Objects.equals(depoCurrentBalance, depo.depoCurrentBalance) && - Objects.equals(depoLimitLockedBuy, depo.depoLimitLockedBuy) && - Objects.equals(depoLimitLocked, depo.depoLimitLocked) && - Objects.equals(depoLimitAvailable, depo.depoLimitAvailable) && - Objects.equals(depoCurrentLimit, depo.depoCurrentLimit) && - Objects.equals(depoOpenBalance, depo.depoOpenBalance) && - Objects.equals(depoOpenLimit, depo.depoOpenLimit); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - depoLimitLockedBuyValue, - depoCurrentBalance, - depoLimitLockedBuy, - depoLimitLocked, - depoLimitAvailable, - depoCurrentLimit, - depoOpenBalance, - depoOpenLimit - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("depo_limit_locked_buy_value", depoLimitLockedBuyValue) - .add("depo_current_balance", depoCurrentBalance) - .add("depo_limit_locked_buy", depoLimitLockedBuy) - .add("depo_limit_locked", depoLimitLocked) - .add("depo_limit_available", depoLimitAvailable) - .add("depo_current_limit", depoCurrentLimit) - .add("depo_open_balance", depoOpenBalance) - .add("depo_open_limit", depoOpenLimit) + .add(DEPO_LIMIT_LOCKED_BUY_VALUE, depoLimitLockedBuyValue) + .add(DEPO_CURRENT_BALANCE, depoCurrentBalance) + .add(DEPO_LIMIT_LOCKED_BUY, depoLimitLockedBuy) + .add(DEPO_LIMIT_LOCKED, depoLimitLocked) + .add(DEPO_LIMIT_AVAILABLE, depoLimitAvailable) + .add(DEPO_CURRENT_LIMIT, depoCurrentLimit) + .add(DEPO_OPEN_BALANCE, depoOpenBalance) + .add(DEPO_OPEN_LIMIT, depoOpenLimit) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java index 506d998..53a61bc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java @@ -1,17 +1,33 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class DepoLimit { + private static final String SECURITY_CODE = "sec_code"; + private static final String TRADING_ACCOUNT_ID = "trdaccid"; + private static final String FIRM_ID = "firmid"; + private static final String CLIENT_CODE = "client_code"; + private static final String OPEN_BALANCE = "openbal"; + private static final String OPEN_LIMIT = "openlimit"; + private static final String CURRENT_BALANCE = "currentbal"; + private static final String CURRENT_LIMIT = "currentlimit"; + private static final String LOCKED_SELL = "locked_sell"; + private static final String LOCKED_BUY = "locked_buy"; + private static final String LOCKED_BUY_VALUE = "locked_buy_value"; + private static final String LOCKED_SELL_VALUE = "locked_sell_value"; + private static final String WEIGHTED_AVERAGE_POSITION_PRICE = "wa_position_price"; + private static final String LIMIT_KIND = "limit_kind"; + String secCode; String trdAccId; String firmId; @@ -24,28 +40,30 @@ public class DepoLimit { int lockedBuy; String lockedBuyValue; String lockedSellValue; - String awgPositionPrice; + String waPositionPrice; int limitKind; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private DepoLimit( - final String secCode, - final String trdAccId, - final String firmId, - final String clientCode, - final int openBal, - final int openLimit, - final int currentBal, - final int currentLimit, - final int lockedSell, - final int lockedBuy, - final String lockedBuyValue, - final String lockedSellValue, - final String awgPositionPrice, - final int limitKind) { + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(TRADING_ACCOUNT_ID) final String trdAccId, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(OPEN_BALANCE) final int openBal, + @JsonProperty(OPEN_LIMIT) final int openLimit, + @JsonProperty(CURRENT_BALANCE) final int currentBal, + @JsonProperty(CURRENT_LIMIT) final int currentLimit, + @JsonProperty(LOCKED_SELL) final int lockedSell, + @JsonProperty(LOCKED_BUY) final int lockedBuy, + @JsonProperty(LOCKED_BUY_VALUE) final String lockedBuyValue, + @JsonProperty(LOCKED_SELL_VALUE) final String lockedSellValue, + @JsonProperty(WEIGHTED_AVERAGE_POSITION_PRICE) final String waPositionPrice, + @JsonProperty(LIMIT_KIND) final int limitKind) { this.secCode = secCode; this.trdAccId = trdAccId; @@ -59,80 +77,30 @@ private DepoLimit( this.lockedBuy = lockedBuy; this.lockedBuyValue = lockedBuyValue; this.lockedSellValue = lockedSellValue; - this.awgPositionPrice = awgPositionPrice; + this.waPositionPrice = waPositionPrice; this.limitKind = limitKind; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof DepoLimit) ) { - return false; - } else { - final DepoLimit depoLimit = (DepoLimit) o; - return openBal == depoLimit.openBal && - openLimit == depoLimit.openLimit && - currentBal == depoLimit.currentBal && - currentLimit == depoLimit.currentLimit && - lockedSell == depoLimit.lockedSell && - lockedBuy == depoLimit.lockedBuy && - limitKind == depoLimit.limitKind && - Objects.equals(secCode, depoLimit.secCode) && - Objects.equals(trdAccId, depoLimit.trdAccId) && - Objects.equals(firmId, depoLimit.firmId) && - Objects.equals(clientCode, depoLimit.clientCode) && - Objects.equals(lockedBuyValue, depoLimit.lockedBuyValue) && - Objects.equals(lockedSellValue, depoLimit.lockedSellValue) && - Objects.equals(awgPositionPrice, depoLimit.awgPositionPrice); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - secCode, - trdAccId, - firmId, - clientCode, - openBal, - openLimit, - currentBal, - currentLimit, - lockedSell, - lockedBuy, - lockedBuyValue, - lockedSellValue, - awgPositionPrice, - limitKind - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("sec_code", secCode) - .add("trdaccid", trdAccId) - .add("firmid", firmId) - .add("client_code", clientCode) - .add("openbal", openBal) - .add("openlimit", openLimit) - .add("currentbal", currentBal) - .add("currentlimit", currentLimit) - .add("locked_sell", lockedSell) - .add("locked_buy", lockedBuy) - .add("locked_buy_value", lockedBuyValue) - .add("locked_sell_value", lockedSellValue) - .add("awg_position_price", awgPositionPrice) - .add("limit_kind", limitKind) + .add(SECURITY_CODE, secCode) + .add(TRADING_ACCOUNT_ID, trdAccId) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(OPEN_BALANCE, openBal) + .add(OPEN_LIMIT, openLimit) + .add(CURRENT_BALANCE, currentBal) + .add(CURRENT_LIMIT, currentLimit) + .add(LOCKED_SELL, lockedSell) + .add(LOCKED_BUY, lockedBuy) + .add(LOCKED_BUY_VALUE, lockedBuyValue) + .add(LOCKED_SELL_VALUE, lockedSellValue) + .add(WEIGHTED_AVERAGE_POSITION_PRICE, waPositionPrice) + .add(LIMIT_KIND, limitKind) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java index 2b71df0..dfe661d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java @@ -1,33 +1,42 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class DepoLimitDelete { + private static final String SECURITY_CODE = "sec_code"; + private static final String TRADING_ACCOUNT_ID = "trdaccid"; + private static final String FIRM_ID = "firmid"; + private static final String CLIENT_CODE = "client_code"; + private static final String LIMIT_KIND = "limit_kind"; + String secCode; String trdAccId; String firmId; String clientCode; int limitKind; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private DepoLimitDelete( - final String secCode, - final String trdAccId, - final String firmId, - final String clientCode, - final int limitKind) { + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(TRADING_ACCOUNT_ID) final String trdAccId, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(value = LIMIT_KIND, required = true) final int limitKind) { this.secCode = secCode; this.trdAccId = trdAccId; @@ -36,43 +45,17 @@ private DepoLimitDelete( this.limitKind = limitKind; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof DepoLimitDelete) ) { - return false; - } else { - final DepoLimitDelete that = (DepoLimitDelete) o; - return limitKind == that.limitKind && - Objects.equals(secCode, that.secCode) && - Objects.equals(trdAccId, that.trdAccId) && - Objects.equals(firmId, that.firmId) && - Objects.equals(clientCode, that.clientCode); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(secCode, trdAccId, firmId, clientCode, limitKind); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("sec_code", secCode) - .add("trdaccid", trdAccId) - .add("firmid", firmId) - .add("client_code", clientCode) - .add("limit_kind", limitKind) + .add(SECURITY_CODE, secCode) + .add(TRADING_ACCOUNT_ID, trdAccId) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(LIMIT_KIND, limitKind) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index a3b4e4b..9c331c4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -1,35 +1,34 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.*; import lombok.experimental.NonFinal; -import java.util.Objects; - @Value public class Firm { - @JsonProperty("firm_id") String firmId; - @JsonProperty("firm_name") String firmName; - @JsonProperty("status") int status; - @JsonProperty("exchange") String exchange; + private static final String FIRM_ID = "firmid"; + private static final String FIRM_NAME = "firm_name"; + private static final String STATUS = "status"; + private static final String EXCHANGE = "exchange"; - @Getter(AccessLevel.NONE) - private @NonFinal transient int hashCode; + String firmId; + String firmName; + Integer status; + String exchange; @Getter(AccessLevel.NONE) private @NonFinal transient String asString; - @Builder @JsonCreator + @Builder private Firm( - @JsonProperty(value = "firm_id", required = true) @NonNull final String firmId, - @JsonProperty("firm_name") final String firmName, - @JsonProperty(value = "status", required = true) int status, - @JsonProperty("exchange") final String exchange) { + @JsonProperty(value = FIRM_ID) final String firmId, + @JsonProperty(FIRM_NAME) final String firmName, + @JsonProperty(STATUS) final Integer status, + @JsonProperty(EXCHANGE) final String exchange) { this.firmId = firmId; this.firmName = firmName; @@ -37,41 +36,15 @@ private Firm( this.exchange = exchange; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Firm) ) { - return false; - } else { - final Firm other = (Firm) o; - return Integer.compare(status, other.status) == 0 - && Objects.equals(firmId, other.firmId) - && Objects.equals(exchange, other.exchange) - && Objects.equals(firmName, other.firmName); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(firmId, firmName, status, exchange); - } - - return hashCode; - } - @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("firm_name", firmName) - .add("status", status) - .add("exchange", exchange) + .add(FIRM_ID, firmId) + .add(FIRM_NAME, firmName) + .add(STATUS, status) + .add(EXCHANGE, exchange) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java index fca232f..fa2a3fb 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java @@ -1,70 +1,85 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class FuturesClientHolding { - @JsonProperty("firmid") String firmId; - @JsonProperty("trdaccid") String trdAccId; - @JsonProperty("sec_code") String secCode; - @JsonProperty("type") int type; - @JsonProperty("startbuy") String startBuy; - @JsonProperty("startsell") String startSell; - @JsonProperty("todaybuy") String todayBuy; - @JsonProperty("todaysell") String todaySell; - @JsonProperty("totalnet") String totalNet; - @JsonProperty("openbuys") int openBuys; - @JsonProperty("opensells") int openSells; - @JsonProperty("cbplused") String cbplUsed; - @JsonProperty("cbplplanned") String cbplPlanned; - @JsonProperty("varmargin") String varMargin; - @JsonProperty("avrposnprice") String avrPosnPrice; - @JsonProperty("positionvalue") String positionValue; - @JsonProperty("real_varmargin") String realVarMargin; - @JsonProperty("total_varmargin") String totalVarMargin; - @JsonProperty("session_status") int sessionStatus; - - @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient int hashCode; + private static final String FIRM_ID = "firmid"; + private static final String TRADING_ACCOUNT_ID = "trdaccid"; + private static final String SECURITY_CODE = "sec_code"; + private static final String TYPE = "type"; + private static final String START_BUY = "startbuy"; + private static final String START_SELL = "startsell"; + private static final String START_NET = "startnet"; + private static final String TODAY_BUY = "todaybuy"; + private static final String TODAY_SELL = "todaysell"; + private static final String TOTAL_NET = "totalnet"; + private static final String OPEN_BUYS = "openbuys"; + private static final String OPEN_SELLS = "opensells"; + private static final String CBP_L_USED = "cbplused"; + private static final String CBP_L_PLANNED = "cbplplanned"; + private static final String VAR_MARGIN = "varmargin"; + private static final String AVR_POSITION_PRICE = "avrposnprice"; + private static final String POSITION_VALUE = "positionvalue"; + private static final String REAL_VAR_MARGIN = "real_varmargin"; + private static final String TOTAL_VAR_MARGIN = "total_varmargin"; + private static final String SESSION_STATUS = "session_status"; + + String firmId; + String trdAccId; + String secCode; + int type; + String startBuy; + String startSell; + String todayBuy; + String todaySell; + String totalNet; + int openBuys; + int openSells; + String cbplUsed; + String cbplPlanned; + String varMargin; + String avrPosnPrice; + String positionValue; + String realVarMargin; + String totalVarMargin; + int sessionStatus; @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient String asString; + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private FuturesClientHolding( - @JsonProperty("firmid") String firmId, - @JsonProperty("trdaccid") String trdAccId, - @JsonProperty("sec_code") String secCode, - @JsonProperty(value = "type", required = true) int type, - @JsonProperty("startbuy") String startBuy, - @JsonProperty("startsell") String startSell, - @JsonProperty("todaybuy") String todayBuy, - @JsonProperty("todaysell") String todaySell, - @JsonProperty("totalnet") String totalNet, - @JsonProperty(value = "openbuys", required = true) int openBuys, - @JsonProperty(value = "opensells", required = true) int openSells, - @JsonProperty("cbplused") String cbplUsed, - @JsonProperty("cbplplanned") String cbplPlanned, - @JsonProperty("varmargin") String varMargin, - @JsonProperty("avrposnprice") String avrPosnPrice, - @JsonProperty("positionvalue") String positionValue, - @JsonProperty("real_varmargin") String realVarMargin, - @JsonProperty("total_varmargin") String totalVarMargin, - @JsonProperty(value = "session_status", required = true) int sessionStatus) { + @JsonProperty(FIRM_ID) String firmId, + @JsonProperty(TRADING_ACCOUNT_ID) String trdAccId, + @JsonProperty(SECURITY_CODE) String secCode, + @JsonProperty(value = TYPE, required = true) int type, + @JsonProperty(START_BUY) String startBuy, + @JsonProperty(START_SELL) String startSell, + @JsonProperty(TODAY_BUY) String todayBuy, + @JsonProperty(TODAY_SELL) String todaySell, + @JsonProperty(TOTAL_NET) String totalNet, + @JsonProperty(value = OPEN_BUYS, required = true) int openBuys, + @JsonProperty(value = OPEN_SELLS, required = true) int openSells, + @JsonProperty(CBP_L_USED) String cbplUsed, + @JsonProperty(CBP_L_PLANNED) String cbplPlanned, + @JsonProperty(VAR_MARGIN) String varMargin, + @JsonProperty(AVR_POSITION_PRICE) String avrPosnPrice, + @JsonProperty(POSITION_VALUE) String positionValue, + @JsonProperty(REAL_VAR_MARGIN) String realVarMargin, + @JsonProperty(TOTAL_VAR_MARGIN) String totalVarMargin, + @JsonProperty(value = SESSION_STATUS, required = true) int sessionStatus) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -87,91 +102,31 @@ private FuturesClientHolding( this.sessionStatus = sessionStatus; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof FuturesClientHolding) ) { - return false; - } else { - final FuturesClientHolding that = (FuturesClientHolding) o; - return type == that.type && - openBuys == that.openBuys && - openSells == that.openSells && - sessionStatus == that.sessionStatus && - Objects.equals(firmId, that.firmId) && - Objects.equals(trdAccId, that.trdAccId) && - Objects.equals(secCode, that.secCode) && - Objects.equals(startBuy, that.startBuy) && - Objects.equals(startSell, that.startSell) && - Objects.equals(todayBuy, that.todayBuy) && - Objects.equals(todaySell, that.todaySell) && - Objects.equals(totalNet, that.totalNet) && - Objects.equals(cbplUsed, that.cbplUsed) && - Objects.equals(cbplPlanned, that.cbplPlanned) && - Objects.equals(varMargin, that.varMargin) && - Objects.equals(avrPosnPrice, that.avrPosnPrice) && - Objects.equals(positionValue, that.positionValue) && - Objects.equals(realVarMargin, that.realVarMargin) && - Objects.equals(totalVarMargin, that.totalVarMargin); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - return Objects.hash( - firmId, - trdAccId, - secCode, - type, - startBuy, - startSell, - todayBuy, - todaySell, - totalNet, - openBuys, - openSells, - cbplUsed, - cbplPlanned, - varMargin, - avrPosnPrice, - positionValue, - realVarMargin, - totalVarMargin, - sessionStatus - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("trdaccid", trdAccId) - .add("sec_code", secCode) - .add("type", type) - .add("startbuy", startBuy) - .add("startsell", startSell) - .add("todaybuy", todayBuy) - .add("todaysell", todaySell) - .add("totalnet", totalNet) - .add("openbuys", openBuys) - .add("opensells", openSells) - .add("cbplused", cbplUsed) - .add("cbplplanned", cbplPlanned) - .add("varmargin", varMargin) - .add("avrposnprice", avrPosnPrice) - .add("positionvalue", positionValue) - .add("real_varmargin", realVarMargin) - .add("total_varmargin", totalVarMargin) - .add("session_status", sessionStatus) + .add(FIRM_ID, firmId) + .add(TRADING_ACCOUNT_ID, trdAccId) + .add(SECURITY_CODE, secCode) + .add(TYPE, type) + .add(START_BUY, startBuy) + .add(START_SELL, startSell) + .add(TODAY_BUY, todayBuy) + .add(TODAY_SELL, todaySell) + .add(TOTAL_NET, totalNet) + .add(OPEN_BUYS, openBuys) + .add(OPEN_SELLS, openSells) + .add(CBP_L_USED, cbplUsed) + .add(CBP_L_PLANNED, cbplPlanned) + .add(VAR_MARGIN, varMargin) + .add(AVR_POSITION_PRICE, avrPosnPrice) + .add(POSITION_VALUE, positionValue) + .add(REAL_VAR_MARGIN, realVarMargin) + .add(TOTAL_VAR_MARGIN, totalVarMargin) + .add(SESSION_STATUS, sessionStatus) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java index 4d85366..74b18a9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimit.java @@ -1,66 +1,75 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class FuturesLimit { - @JsonProperty("firmid") String firmId; - @JsonProperty("trdaccid") String trdAccId; - @JsonProperty("limit_type") int limitType; - @JsonProperty("liquidity_coef") String liquidityCoef; - @JsonProperty("cbp_prev_limit") String cbpPrevLimit; - @JsonProperty("cbplimit") String cbpLimit; - @JsonProperty("cbplused") String cbplUsed; - @JsonProperty("cbplplanned") String cbplPlanned; - @JsonProperty("varmargin") String varMargin; - @JsonProperty("accruedint") String accruedInt; - @JsonProperty("cbplused_for_orders") String cbplUsedForOrders; - @JsonProperty("cbplused_for_positions") String cbplUsedForPositions; - @JsonProperty("options_premium") String optionsPremium; - @JsonProperty("ts_comission") String tsComission; - @JsonProperty("kgo") String kgo; - @JsonProperty("currcode") String currCode; - @JsonProperty("real_varmargin") String realVarMargin; - - @Getter(AccessLevel.NONE) - @JsonIgnore - private @NonFinal transient int hashCode; + private static final String FIRM_ID = "firmid"; + private static final String TRADING_ACCOUNT_ID = "trdaccid"; + private static final String LIMIT_TYPE = "limit_type"; + private static final String LIQUIDITY_COEF = "liquidity_coef"; + private static final String CBP_PREV_LIMIT = "cbp_prev_limit"; + private static final String CBP_LIMIT = "cbplimit"; + private static final String CBP_L_USED = "cbplused"; + private static final String CBP_L_PLANNED = "cbplplanned"; + private static final String VAR_MARGIN = "varmargin"; + private static final String ACCRUED_INTEREST = "accruedint"; + private static final String CBP_L_USED_FOR_ORDERS = "cbplused_for_orders"; + private static final String CBP_L_USED_FOR_POSITIONS = "cbplused_for_positions"; + private static final String OPTIONS_PREMIUM = "options_premium"; + private static final String TS_COMISSION = "ts_comission"; + private static final String K_GO = "kgo"; + private static final String CURRENCY_CODE = "currcode"; + private static final String REAL_VAR_MARGIN = "real_varmargin"; + + String firmId; + String trdAccId; + int limitType; + String liquidityCoef; + String cbpPrevLimit; + String cbpLimit; + String cbplUsed; + String cbplPlanned; + String varMargin; + String accruedInt; + String cbplUsedForOrders; + String cbplUsedForPositions; + String optionsPremium; + String tsComission; + String kgo; + String currCode; + String realVarMargin; @Getter(AccessLevel.NONE) - @JsonIgnore - private @NonFinal transient String asString; + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private FuturesLimit( - final @JsonProperty("firmid") String firmId, - final @JsonProperty("trdaccid") String trdAccId, - final @JsonProperty(value = "limit_type", required = true) int limitType, - final @JsonProperty("liquidity_coef") String liquidityCoef, - final @JsonProperty("cbp_prev_limit") String cbpPrevLimit, - final @JsonProperty("cbplimit") String cbpLimit, - final @JsonProperty("cbplused") String cbplUsed, - final @JsonProperty("cbplplanned") String cbplPlanned, - final @JsonProperty("varmargin") String varMargin, - final @JsonProperty("accruedint") String accruedInt, - final @JsonProperty("cbplused_for_orders") String cbplUsedForOrders, - final @JsonProperty("cbplused_for_positions") String cbplUsedForPositions, - final @JsonProperty("options_premium") String optionsPremium, - final @JsonProperty("ts_comission") String tsComission, - final @JsonProperty("kgo") String kgo, - final @JsonProperty("currcode") String currCode, - final @JsonProperty("real_varmargin") String realVarMargin) { + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, + @JsonProperty(value = TRADING_ACCOUNT_ID, required = true) @NonNull final String trdAccId, + @JsonProperty(value = LIMIT_TYPE, required = true) final int limitType, + final @JsonProperty(LIQUIDITY_COEF) String liquidityCoef, + final @JsonProperty(CBP_PREV_LIMIT) String cbpPrevLimit, + final @JsonProperty(CBP_LIMIT) String cbpLimit, + final @JsonProperty(CBP_L_USED) String cbplUsed, + final @JsonProperty(CBP_L_PLANNED) String cbplPlanned, + final @JsonProperty(VAR_MARGIN) String varMargin, + final @JsonProperty(ACCRUED_INTEREST) String accruedInt, + final @JsonProperty(CBP_L_USED_FOR_ORDERS) String cbplUsedForOrders, + final @JsonProperty(CBP_L_USED_FOR_POSITIONS) String cbplUsedForPositions, + final @JsonProperty(OPTIONS_PREMIUM) String optionsPremium, + final @JsonProperty(TS_COMISSION) String tsComission, + final @JsonProperty(K_GO) String kgo, + final @JsonProperty(value = CURRENCY_CODE, required = true) @NonNull String currCode, + final @JsonProperty(REAL_VAR_MARGIN) String realVarMargin) { this.firmId = firmId; this.trdAccId = trdAccId; @@ -81,85 +90,29 @@ private FuturesLimit( this.realVarMargin = realVarMargin; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof FuturesLimit) ) { - return false; - } else { - final FuturesLimit that = (FuturesLimit) o; - return limitType == that.limitType && - Objects.equals(firmId, that.firmId) && - Objects.equals(trdAccId, that.trdAccId) && - Objects.equals(liquidityCoef, that.liquidityCoef) && - Objects.equals(cbpPrevLimit, that.cbpPrevLimit) && - Objects.equals(cbpLimit, that.cbpLimit) && - Objects.equals(cbplUsed, that.cbplUsed) && - Objects.equals(cbplPlanned, that.cbplPlanned) && - Objects.equals(varMargin, that.varMargin) && - Objects.equals(accruedInt, that.accruedInt) && - Objects.equals(cbplUsedForOrders, that.cbplUsedForOrders) && - Objects.equals(cbplUsedForPositions, that.cbplUsedForPositions) && - Objects.equals(optionsPremium, that.optionsPremium) && - Objects.equals(tsComission, that.tsComission) && - Objects.equals(kgo, that.kgo) && - Objects.equals(currCode, that.currCode) && - Objects.equals(realVarMargin, that.realVarMargin); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - firmId, - trdAccId, - limitType, - liquidityCoef, - cbpPrevLimit, - cbpLimit, - cbplUsed, - cbplPlanned, - varMargin, - accruedInt, - cbplUsedForOrders, - cbplUsedForPositions, - optionsPremium, - tsComission, - kgo, - currCode, - realVarMargin - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("trdaccid", trdAccId) - .add("limit_type", limitType) - .add("liquidity_coef", liquidityCoef) - .add("cbp_prev_limit", cbpPrevLimit) - .add("cbplimit", cbpLimit) - .add("cbplused", cbplUsed) - .add("cbplplanned", cbplPlanned) - .add("varmargin", varMargin) - .add("accruedint", accruedInt) - .add("cbplused_for_orders", cbplUsedForOrders) - .add("cbplused_for_positions", cbplUsedForPositions) - .add("options_premium", optionsPremium) - .add("ts_comission", tsComission) - .add("kgo", kgo) - .add("currcode", currCode) - .add("real_varmargin", realVarMargin) + .add(FIRM_ID, firmId) + .add(TRADING_ACCOUNT_ID, trdAccId) + .add(LIMIT_TYPE, limitType) + .add(LIQUIDITY_COEF, liquidityCoef) + .add(CBP_PREV_LIMIT, cbpPrevLimit) + .add(CBP_LIMIT, cbpLimit) + .add(CBP_L_USED, cbplUsed) + .add(CBP_L_PLANNED, cbplPlanned) + .add(VAR_MARGIN, varMargin) + .add(ACCRUED_INTEREST, accruedInt) + .add(CBP_L_USED_FOR_ORDERS, cbplUsedForOrders) + .add(CBP_L_USED_FOR_POSITIONS, cbplUsedForPositions) + .add(OPTIONS_PREMIUM, optionsPremium) + .add(TS_COMISSION, tsComission) + .add(K_GO, kgo) + .add(CURRENCY_CODE, currCode) + .add(REAL_VAR_MARGIN, realVarMargin) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java index 236590e..58be70a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -7,54 +9,35 @@ import lombok.Value; import lombok.experimental.NonFinal; -import java.util.Objects; - @Value public class FuturesLimitDelete { + private static final String FIRM_ID = "firmid"; + private static final String LIMIT_TYPE = "limit_type"; + String firmId; int limitType; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder - private FuturesLimitDelete(final String firmId, final int limitType) { + private FuturesLimitDelete( + @JsonProperty(value = FIRM_ID, required = true) final String firmId, + @JsonProperty(value = LIMIT_TYPE, required = true) final int limitType) { this.firmId = firmId; this.limitType = limitType; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof FuturesLimitDelete) ) { - return false; - } else { - final FuturesLimitDelete that = (FuturesLimitDelete) o; - return limitType == that.limitType && - Objects.equals(firmId, that.firmId); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(firmId, limitType); - } - - return hashCode; - } - @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("firmid", firmId) - .add("limit_type", limitType) + .add(FIRM_ID, firmId) + .add(LIMIT_TYPE, limitType) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java index b76e6b8..1b6429e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Money.java @@ -10,36 +10,47 @@ import lombok.Value; import lombok.experimental.NonFinal; import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class Money { - @JsonProperty("money_open_limit") String moneyOpenLimit; - @JsonProperty("money_limit_locked_nonmarginal_value") String moneyLimitLockedNonMarginalValue; - @JsonProperty("money_limit_locked") String moneyLimitLocked; - @JsonProperty("money_open_balance") String moneyOpenBalance; - @JsonProperty("money_current_limit") String moneyCurrentLimit; - @JsonProperty("money_current_balance") String moneyCurrentBalance; - @JsonProperty("money_limit_available") String moneyLimitAvailable; + private static final String MONEY_OPEN_LIMIT = "money_open_limit"; + private static final String MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE = "money_limit_locked_nonmarginal_value"; + private static final String MONEY_LIMIT_LOCKED = "money_limit_locked"; + private static final String MONEY_OPEN_BALANCE = "money_open_balance"; + private static final String MONEY_CURRENT_LIMIT = "money_current_limit"; + private static final String MONEY_CURRENT_BALANCE = "money_current_balance"; + private static final String MONEY_LIMIT_AVAILABLE = "money_limit_available"; + + String moneyOpenLimit; + String moneyLimitLockedNonMarginalValue; + String moneyLimitLocked; + String moneyOpenBalance; + String moneyCurrentLimit; + String moneyCurrentBalance; + String moneyLimitAvailable; @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient int hashCode; + @NonFinal + private transient int hashCode; @Getter(AccessLevel.NONE) - private @JsonIgnore @NonFinal transient String asString; + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private Money( - final @JsonProperty("money_open_limit") String moneyOpenLimit, - final @JsonProperty("money_limit_locked_nonmarginal_value") String moneyLimitLockedNonMarginalValue, - final @JsonProperty("money_limit_locked") String moneyLimitLocked, - final @JsonProperty("money_open_balance") String moneyOpenBalance, - final @JsonProperty("money_current_limit") String moneyCurrentLimit, - final @JsonProperty("money_current_balance") String moneyCurrentBalance, - final @JsonProperty("money_limit_available") String moneyLimitAvailable) { + @JsonProperty(MONEY_OPEN_LIMIT) final String moneyOpenLimit, + @JsonProperty(MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE) final String moneyLimitLockedNonMarginalValue, + @JsonProperty(MONEY_LIMIT_LOCKED) final String moneyLimitLocked, + @JsonProperty(MONEY_OPEN_BALANCE) final String moneyOpenBalance, + @JsonProperty(MONEY_CURRENT_LIMIT) final String moneyCurrentLimit, + @JsonProperty(MONEY_CURRENT_BALANCE) final String moneyCurrentBalance, + @JsonProperty(MONEY_LIMIT_AVAILABLE) final String moneyLimitAvailable) { this.moneyOpenLimit = moneyOpenLimit; this.moneyLimitLockedNonMarginalValue = moneyLimitLockedNonMarginalValue; @@ -50,7 +61,6 @@ private Money( this.moneyLimitAvailable = moneyLimitAvailable; } - @Contract(value = "null -> false", pure = true) @Override public boolean equals(final Object o) { @@ -88,18 +98,19 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("money_open_limit", moneyOpenLimit) - .add("money_limit_locked_nonmarginal_value", moneyLimitLockedNonMarginalValue) - .add("money_limit_locked", moneyLimitLocked) - .add("money_open_balance", moneyOpenBalance) - .add("money_current_limit", moneyCurrentLimit) - .add("money_current_balance", moneyCurrentBalance) - .add("money_limit_available", moneyLimitAvailable) + .add(MONEY_OPEN_LIMIT, moneyOpenLimit) + .add(MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE, moneyLimitLockedNonMarginalValue) + .add(MONEY_LIMIT_LOCKED, moneyLimitLocked) + .add(MONEY_OPEN_BALANCE, moneyOpenBalance) + .add(MONEY_CURRENT_LIMIT, moneyCurrentLimit) + .add(MONEY_CURRENT_BALANCE, moneyCurrentBalance) + .add(MONEY_LIMIT_AVAILABLE, moneyLimitAvailable) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java index 6b8fc47..fe96e31 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimit.java @@ -1,17 +1,32 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class MoneyLimit { + private static final String CURR_CODE = "currcode"; + private static final String TAG = "tag"; + private static final String FIRM_ID = "firmid"; + private static final String CLIENT_CODE = "client_code"; + private static final String OPEN_BAL = "openbal"; + private static final String OPEN_LIMIT = "openlimit"; + private static final String CURRENT_BAL = "currentbal"; + private static final String CURRENT_LIMIT = "currentlimit"; + private static final String LOCKED = "locked"; + private static final String LOCKED_VALUE_COEF = "locked_value_coef"; + private static final String LOCKED_MARGIN_VALUE = "locked_margin_value"; + private static final String LEVERAGE = "leverage"; + private static final String LIMIT_KIND = "limit_kind"; + private static final String WEIGHED_AVERAGE_POSITION_PRICE = "wa_position_price"; + private static final String ORDERS_COLLATERAL = "orders_collateral"; + private static final String POSITIONS_COLLATERAL = "positions_collateral"; + String currCode; String tag; String firmId; @@ -25,25 +40,33 @@ public class MoneyLimit { String lockedMarginValue; String leverage; int limitKind; + String waPositionPrice; + String ordersCollateral; + String positionsCollateral; - private @NonFinal @Getter(AccessLevel.NONE) transient int hashCode; - private @NonFinal @Getter(AccessLevel.NONE) transient String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private MoneyLimit( - final String currCode, - final String tag, - final String firmId, - final String clientCode, - final String openBal, - final String openLimit, - final String currentBal, - final String currentLimit, - final String locked, - final String lockedValueCoef, - final String lockedMarginValue, - final String leverage, - final int limitKind) { + @JsonProperty(value = CURR_CODE, required = true) @NonNull final String currCode, + @JsonProperty(value = TAG, required = true) @NonNull final String tag, + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, + @JsonProperty(value = CLIENT_CODE, required = true) @NonNull final String clientCode, + @JsonProperty(OPEN_BAL) final String openBal, + @JsonProperty(OPEN_LIMIT) final String openLimit, + @JsonProperty(CURRENT_BAL) final String currentBal, + @JsonProperty(CURRENT_LIMIT) final String currentLimit, + @JsonProperty(LOCKED) final String locked, + @JsonProperty(LOCKED_VALUE_COEF) final String lockedValueCoef, + @JsonProperty(LOCKED_MARGIN_VALUE) final String lockedMarginValue, + @JsonProperty(LEVERAGE) final String leverage, + @JsonProperty(value = LIMIT_KIND, required = true) final int limitKind, + @JsonProperty(WEIGHED_AVERAGE_POSITION_PRICE) final String waPositionPrice, + @JsonProperty(ORDERS_COLLATERAL) final String ordersCollateral, + @JsonProperty(POSITIONS_COLLATERAL) final String positionsCollateral) { this.currCode = currCode; this.tag = tag; @@ -58,75 +81,33 @@ private MoneyLimit( this.lockedMarginValue = lockedMarginValue; this.leverage = leverage; this.limitKind = limitKind; + this.waPositionPrice = waPositionPrice; + this.ordersCollateral = ordersCollateral; + this.positionsCollateral = positionsCollateral; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof MoneyLimit) ) { - return false; - } else { - final MoneyLimit other = (MoneyLimit) o; - return Integer.compare(limitKind, other.limitKind) == 0 && - Objects.equals(currCode, other.currCode) && - Objects.equals(tag, other.tag) && - Objects.equals(firmId, other.firmId) && - Objects.equals(clientCode, other.clientCode) && - Objects.equals(openBal, other.openBal) && - Objects.equals(openLimit, other.openLimit) && - Objects.equals(currentBal, other.currentBal) && - Objects.equals(currentLimit, other.currentLimit) && - Objects.equals(locked, other.locked) && - Objects.equals(lockedValueCoef, other.lockedValueCoef) && - Objects.equals(lockedMarginValue, other.lockedMarginValue) && - Objects.equals(leverage, other.leverage); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - currCode, - tag, - firmId, - clientCode, - openBal, - openLimit, - currentBal, - currentLimit, - locked, - lockedValueCoef, - lockedMarginValue, - leverage, - limitKind - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("currcode", currCode) - .add("tag", tag) - .add("firmid", firmId) - .add("client_code", clientCode) - .add("openbal", openBal) - .add("openlimit", openLimit) - .add("currentbal", currentBal) - .add("currentlimit", currentLimit) - .add("locked", locked) - .add("locked_value_coef", lockedValueCoef) - .add("locked_margin_value", lockedMarginValue) - .add("leverage", leverage) - .add("limit_kind", limitKind) + .add(CURR_CODE, currCode) + .add(TAG, tag) + .add(FIRM_ID, firmId) + .add(CLIENT_CODE, clientCode) + .add(OPEN_BAL, openBal) + .add(OPEN_LIMIT, openLimit) + .add(CURRENT_BAL, currentBal) + .add(CURRENT_LIMIT, currentLimit) + .add(LOCKED, locked) + .add(LOCKED_VALUE_COEF, lockedValueCoef) + .add(LOCKED_MARGIN_VALUE, lockedMarginValue) + .add(LEVERAGE, leverage) + .add(LIMIT_KIND, limitKind) + .add(WEIGHED_AVERAGE_POSITION_PRICE, waPositionPrice) + .add(ORDERS_COLLATERAL, ordersCollateral) + .add(POSITIONS_COLLATERAL, positionsCollateral) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java index 3d60d13..cdbc8f9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyLimitDelete.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -7,27 +9,33 @@ import lombok.Value; import lombok.experimental.NonFinal; -import java.util.Objects; - @Value public class MoneyLimitDelete { + private static final String CURRENCY_CODE = "currcode"; + private static final String TAG = "tag"; + private static final String CLIENT_CODE = "client_code"; + private static final String FIRM_ID = "firmid"; + private static final String LIMIT_KIND = "limit_kind"; + String currCode; String tag; String clientCode; String firmId; int limitKind; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private MoneyLimitDelete( - final String currCode, - final String tag, - final String clientCode, - final String firmId, - final int limitKind) { + @JsonProperty(CURRENCY_CODE) final String currCode, + @JsonProperty(TAG) final String tag, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(value = LIMIT_KIND, required = true) final int limitKind) { this.currCode = currCode; this.tag = tag; @@ -36,43 +44,16 @@ private MoneyLimitDelete( this.limitKind = limitKind; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof MoneyLimitDelete) ) { - return false; - } else { - final MoneyLimitDelete that = (MoneyLimitDelete) o; - return limitKind == that.limitKind && - Objects.equals(currCode, that.currCode) && - Objects.equals(tag, that.tag) && - Objects.equals(clientCode, that.clientCode) && - Objects.equals(firmId, that.firmId); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash(currCode, tag, clientCode, firmId, limitKind); - } - - return hashCode; - } - @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("currcode", currCode) - .add("tag", tag) - .add("client_code", clientCode) - .add("firmid", firmId) - .add("limit_kind", limitKind) + .add(CURRENCY_CODE, currCode) + .add(TAG, tag) + .add(CLIENT_CODE, clientCode) + .add(FIRM_ID, firmId) + .add(LIMIT_KIND, limitKind) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java index 3b645cb..897d770 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegDeal.java @@ -1,17 +1,80 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class NegDeal { + private static final String NEG_DEAL_NUM = "neg_deal_num"; + private static final String NEG_DEAL_TIME = "neg_deal_time"; + private static final String FLAGS = "flags"; + private static final String BROKER_REF = "brokerref"; + private static final String USER_ID = "userid"; + private static final String FIRM_ID = "firmid"; + private static final String COUNTERPARTY_USER_ID = "cpuserid"; + private static final String COUNTERPARTY_FIRM_ID = "cpfirmid"; + private static final String ACCOUNT = "account"; + private static final String PRICE = "price"; + private static final String QUANTITY = "qty"; + private static final String MATCH_REF = "matchref"; + private static final String SETTLE_CODE = "settlecode"; + private static final String YIELD = "yield"; + private static final String ACCRUED_INTEREST = "accruedint"; + private static final String VALUE = "value"; + private static final String PRICE_2 = "price2"; + private static final String REPO_RATE = "reporate"; + private static final String REFUND_RATE = "refundrate"; + private static final String TRANSACTION_ID = "trans_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String REPO_ENTRY = "repoentry"; + private static final String REPO_VALUE = "repovalue"; + private static final String REPO_2_VALUE = "repo2value"; + private static final String REPO_TERM = "repoterm"; + private static final String START_DISCOUNT = "start_discount"; + private static final String LOWER_DISCOUNT = "lower_discount"; + private static final String UPPER_DISCOUNT = "upper_discount"; + private static final String BLOCK_SECURITIES = "block_securities"; + private static final String UID = "uid"; + private static final String WITHDRAW_TIME = "withdraw_time"; + private static final String NEG_DEAL_DATE = "neg_deal_date"; + private static final String BALANCE = "balance"; + private static final String ORIGIN_REPO_VALUE = "origin_repovalue"; + private static final String ORIGIN_QUANTITY = "origin_qty"; + private static final String ORIGIN_DISCOUNT = "origin_discount"; + private static final String NEG_DEAL_ACTIVATION_DATE = "neg_deal_activation_date"; + private static final String NEG_DEAL_ACTIVATION_TIME = "neg_deal_activation_time"; + private static final String QUOTE_N_O = "quoteno"; + private static final String SETTLE_CURRENCY = "settle_currency"; + private static final String SECURITY_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String BANK_ACCOUNT_ID = "bank_acc_id"; + private static final String WITHDRAW_DATE = "withdraw_date"; + private static final String LINKED_ORDER = "linkedorder"; + private static final String ACTIVATION_DATE_TIME = "activation_date_time"; + private static final String WITHDRAW_DATE_TIME = "withdraw_date_time"; + private static final String DATE_TIME = "date_time"; + private static final String L_SECURITY_CODE = "lseccode"; + private static final String CANCELED_UID = "canceled_uid"; + private static final String SYSTEM_REF = "system_ref"; + private static final String PRICE_CURRENCY = "price_currency"; + private static final String ORDER_EXCHANGE_CODE = "order_exchange_code"; + private static final String EXT_REF = "extref"; + private static final String PERIOD = "period"; + private static final String CLIENT_QUALIFIER = "client_qualifier"; + private static final String CLIENT_SHORT_CODE = "client_short_code"; + private static final String INVESTMENT_DECISION_MAKER_QUALIFIER = "investment_decision_maker_qualifier"; + private static final String INVESTMENT_DECISION_MAKER_SHORT_CODE = "investment_decision_maker_short_code"; + private static final String EXECUTING_TRADER_QUALIFIER = "executing_trader_qualifier"; + private static final String EXECUTING_TRADER_SHORT_CODE = "executing_trader_short_code"; + long negDealNum; String negDealTime; int flags; @@ -60,60 +123,88 @@ public class NegDeal { DateTimeEntry activationDateTime; DateTimeEntry withdrawDateTime; DateTimeEntry dateTime; + String lSecCode; + String canceledUid; + String systemRef; + String priceCurrency; + String orderExchangeCode; + String extRef; + String period; + int clientQualifier; + String clientShortCode; + int investmentDecisionMakerQualifier; + String investmentDecisionMakerShortCode; + int executingTraderQualifier; + String executingTraderShortCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private NegDeal( - final long negDealNum, - final String negDealTime, - final int flags, - final String brokerRef, - final String userId, - final String firmId, - final String cpUserId, - final String cpFirmId, - final String account, - final String price, - final int qty, - final String matchRef, - final String settleCode, - final String yield, - final String accruedInt, - final String value, - final String price2, - final String repoRate, - final String refundRate, - final String transId, - final String clientCode, - final int repoEntry, - final String repoValue, - final String repo2Value, - final String repoTerm, - final String startDiscount, - final String lowerDiscount, - final String upperDiscount, - final String blockSecurities, - final String uid, - final String withdrawTime, - final String negDealDate, - final String balance, - final String originRepoValue, - final String originQty, - final String originDiscount, - final String negDealActivationDate, - final String negDealActivationTime, - final String quoteNo, - final String settleCurrency, - final String secCode, - final String classCode, - final String bankAccId, - final String withdrawDate, - final String linkedOrder, - final DateTimeEntry activationDateTime, - final DateTimeEntry withdrawDateTime, - final DateTimeEntry dateTime) { + @JsonProperty(value = NEG_DEAL_NUM, required = true) final long negDealNum, + @JsonProperty(NEG_DEAL_TIME) final String negDealTime, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(USER_ID) final String userId, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(COUNTERPARTY_USER_ID) final String cpUserId, + @JsonProperty(COUNTERPARTY_FIRM_ID) final String cpFirmId, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(value = QUANTITY, required = true) final int qty, + @JsonProperty(MATCH_REF) final String matchRef, + @JsonProperty(SETTLE_CODE) final String settleCode, + @JsonProperty(YIELD) final String yield, + @JsonProperty(ACCRUED_INTEREST) final String accruedInt, + @JsonProperty(VALUE) final String value, + @JsonProperty(PRICE_2) final String price2, + @JsonProperty(REPO_RATE) final String repoRate, + @JsonProperty(REFUND_RATE) final String refundRate, + @JsonProperty(TRANSACTION_ID) final String transId, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(REPO_ENTRY) final int repoEntry, + @JsonProperty(REPO_VALUE) final String repoValue, + @JsonProperty(REPO_2_VALUE) final String repo2Value, + @JsonProperty(REPO_TERM) final String repoTerm, + @JsonProperty(START_DISCOUNT) final String startDiscount, + @JsonProperty(LOWER_DISCOUNT) final String lowerDiscount, + @JsonProperty(UPPER_DISCOUNT) final String upperDiscount, + @JsonProperty(BLOCK_SECURITIES) final String blockSecurities, + @JsonProperty(UID) final String uid, + @JsonProperty(WITHDRAW_TIME) final String withdrawTime, + @JsonProperty(NEG_DEAL_DATE) final String negDealDate, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(ORIGIN_REPO_VALUE) final String originRepoValue, + @JsonProperty(ORIGIN_QUANTITY) final String originQty, + @JsonProperty(ORIGIN_DISCOUNT) final String originDiscount, + @JsonProperty(NEG_DEAL_ACTIVATION_DATE) final String negDealActivationDate, + @JsonProperty(NEG_DEAL_ACTIVATION_TIME) final String negDealActivationTime, + @JsonProperty(QUOTE_N_O) final String quoteNo, + @JsonProperty(SETTLE_CURRENCY) final String settleCurrency, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(BANK_ACCOUNT_ID) final String bankAccId, + @JsonProperty(WITHDRAW_DATE) final String withdrawDate, + @JsonProperty(LINKED_ORDER) final String linkedOrder, + @JsonProperty(ACTIVATION_DATE_TIME) final DateTimeEntry activationDateTime, + @JsonProperty(WITHDRAW_DATE_TIME) final DateTimeEntry withdrawDateTime, + @JsonProperty(DATE_TIME) final DateTimeEntry dateTime, + @JsonProperty(L_SECURITY_CODE) final String lSecCode, + @JsonProperty(CANCELED_UID) final String canceledUid, + @JsonProperty(SYSTEM_REF) final String systemRef, + @JsonProperty(PRICE_CURRENCY) final String priceCurrency, + @JsonProperty(ORDER_EXCHANGE_CODE) final String orderExchangeCode, + @JsonProperty(EXT_REF) final String extRef, + @JsonProperty(PERIOD) final String period, + @JsonProperty(value = CLIENT_QUALIFIER, required = true) final int clientQualifier, + @JsonProperty(CLIENT_SHORT_CODE) final String clientShortCode, + @JsonProperty(value = INVESTMENT_DECISION_MAKER_QUALIFIER, required = true) final int investmentDecisionMakerQualifier, + @JsonProperty(INVESTMENT_DECISION_MAKER_SHORT_CODE) final String investmentDecisionMakerShortCode, + @JsonProperty(value = EXECUTING_TRADER_QUALIFIER, required = true) final int executingTraderQualifier, + @JsonProperty(EXECUTING_TRADER_SHORT_CODE) final String executingTraderShortCode) { this.negDealNum = negDealNum; this.negDealTime = negDealTime; @@ -163,180 +254,88 @@ private NegDeal( this.activationDateTime = activationDateTime; this.withdrawDateTime = withdrawDateTime; this.dateTime = dateTime; + this.lSecCode = lSecCode; + this.canceledUid = canceledUid; + this.systemRef = systemRef; + this.priceCurrency = priceCurrency; + this.orderExchangeCode = orderExchangeCode; + this.extRef = extRef; + this.period = period; + this.clientQualifier = clientQualifier; + this.clientShortCode = clientShortCode; + this.investmentDecisionMakerQualifier = investmentDecisionMakerQualifier; + this.investmentDecisionMakerShortCode = investmentDecisionMakerShortCode; + this.executingTraderQualifier = executingTraderQualifier; + this.executingTraderShortCode = executingTraderShortCode; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof NegDeal) ) { - return false; - } else { - final NegDeal negDeal = (NegDeal) o; - return negDealNum == negDeal.negDealNum && - flags == negDeal.flags && - qty == negDeal.qty && - repoEntry == negDeal.repoEntry && - Objects.equals(negDealTime, negDeal.negDealTime) && - Objects.equals(brokerRef, negDeal.brokerRef) && - Objects.equals(userId, negDeal.userId) && - Objects.equals(firmId, negDeal.firmId) && - Objects.equals(cpUserId, negDeal.cpUserId) && - Objects.equals(cpFirmId, negDeal.cpFirmId) && - Objects.equals(account, negDeal.account) && - Objects.equals(price, negDeal.price) && - Objects.equals(matchRef, negDeal.matchRef) && - Objects.equals(settleCode, negDeal.settleCode) && - Objects.equals(yield, negDeal.yield) && - Objects.equals(accruedInt, negDeal.accruedInt) && - Objects.equals(value, negDeal.value) && - Objects.equals(price2, negDeal.price2) && - Objects.equals(repoRate, negDeal.repoRate) && - Objects.equals(refundRate, negDeal.refundRate) && - Objects.equals(transId, negDeal.transId) && - Objects.equals(clientCode, negDeal.clientCode) && - Objects.equals(repoValue, negDeal.repoValue) && - Objects.equals(repo2Value, negDeal.repo2Value) && - Objects.equals(repoTerm, negDeal.repoTerm) && - Objects.equals(startDiscount, negDeal.startDiscount) && - Objects.equals(lowerDiscount, negDeal.lowerDiscount) && - Objects.equals(upperDiscount, negDeal.upperDiscount) && - Objects.equals(blockSecurities, negDeal.blockSecurities) && - Objects.equals(uid, negDeal.uid) && - Objects.equals(withdrawTime, negDeal.withdrawTime) && - Objects.equals(negDealDate, negDeal.negDealDate) && - Objects.equals(balance, negDeal.balance) && - Objects.equals(originRepoValue, negDeal.originRepoValue) && - Objects.equals(originQty, negDeal.originQty) && - Objects.equals(originDiscount, negDeal.originDiscount) && - Objects.equals(negDealActivationDate, negDeal.negDealActivationDate) && - Objects.equals(negDealActivationTime, negDeal.negDealActivationTime) && - Objects.equals(quoteNo, negDeal.quoteNo) && - Objects.equals(settleCurrency, negDeal.settleCurrency) && - Objects.equals(secCode, negDeal.secCode) && - Objects.equals(classCode, negDeal.classCode) && - Objects.equals(bankAccId, negDeal.bankAccId) && - Objects.equals(withdrawDate, negDeal.withdrawDate) && - Objects.equals(linkedOrder, negDeal.linkedOrder) && - Objects.equals(activationDateTime, negDeal.activationDateTime) && - Objects.equals(withdrawDateTime, negDeal.withdrawDateTime) && - Objects.equals(dateTime, negDeal.dateTime); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - negDealNum, - negDealTime, - flags, - brokerRef, - userId, - firmId, - cpUserId, - cpFirmId, - account, - price, - qty, - matchRef, - settleCode, - yield, - accruedInt, - value, - price2, - repoRate, - refundRate, - transId, - clientCode, - repoEntry, - repoValue, - repo2Value, - repoTerm, - startDiscount, - lowerDiscount, - upperDiscount, - blockSecurities, - uid, - withdrawTime, - negDealDate, - balance, - originRepoValue, - originQty, - originDiscount, - negDealActivationDate, - negDealActivationTime, - quoteNo, - settleCurrency, - secCode, - classCode, - bankAccId, - withdrawDate, - linkedOrder, - activationDateTime, - withdrawDateTime, - dateTime - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("neg_deal_num", negDealNum) - .add("neg_deal_time", negDealTime) - .add("flags", flags) - .add("brokerref", brokerRef) - .add("userid", userId) - .add("firmid", firmId) - .add("cpuserid", cpUserId) - .add("cpfirmid", cpFirmId) - .add("account", account) - .add("price", price) - .add("qty", qty) - .add("matchref", matchRef) - .add("settlecode", settleCode) - .add("yield", yield) - .add("accruedint", accruedInt) - .add("value", value) - .add("price2", price2) - .add("reporate", repoRate) - .add("refundrate", refundRate) - .add("trans_id", transId) - .add("client_code", clientCode) - .add("repoentry", repoEntry) - .add("repovalue", repoValue) - .add("repo2value", repo2Value) - .add("repoterm", repoTerm) - .add("start_discount", startDiscount) - .add("lower_discount", lowerDiscount) - .add("upper_discount", upperDiscount) - .add("block_securities", blockSecurities) - .add("uid", uid) - .add("withdraw_time", withdrawTime) - .add("neg_deal_date", negDealDate) - .add("balance", balance) - .add("origin_repovalue", originRepoValue) - .add("origin_qty", originQty) - .add("origin_discount", originDiscount) - .add("neg_deal_activation_date", negDealActivationDate) - .add("neg_deal_activation_time", negDealActivationTime) - .add("quoteno", quoteNo) - .add("settle_currency", settleCurrency) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("bank_acc_id", bankAccId) - .add("withdraw_date", withdrawDate) - .add("linkedorder", linkedOrder) - .add("activation_date_time", activationDateTime) - .add("withdraw_date_time", withdrawDateTime) - .add("date_time", dateTime) + .add(NEG_DEAL_NUM, negDealNum) + .add(NEG_DEAL_TIME, negDealTime) + .add(FLAGS, flags) + .add(BROKER_REF, brokerRef) + .add(USER_ID, userId) + .add(FIRM_ID, firmId) + .add(COUNTERPARTY_USER_ID, cpUserId) + .add(COUNTERPARTY_FIRM_ID, cpFirmId) + .add(ACCOUNT, account) + .add(PRICE, price) + .add(QUANTITY, qty) + .add(MATCH_REF, matchRef) + .add(SETTLE_CODE, settleCode) + .add(YIELD, yield) + .add(ACCRUED_INTEREST, accruedInt) + .add(VALUE, value) + .add(PRICE_2, price2) + .add(REPO_RATE, repoRate) + .add(REFUND_RATE, refundRate) + .add(TRANSACTION_ID, transId) + .add(CLIENT_CODE, clientCode) + .add(REPO_ENTRY, repoEntry) + .add(REPO_VALUE, repoValue) + .add(REPO_2_VALUE, repo2Value) + .add(REPO_TERM, repoTerm) + .add(START_DISCOUNT, startDiscount) + .add(LOWER_DISCOUNT, lowerDiscount) + .add(UPPER_DISCOUNT, upperDiscount) + .add(BLOCK_SECURITIES, blockSecurities) + .add(UID, uid) + .add(WITHDRAW_TIME, withdrawTime) + .add(NEG_DEAL_DATE, negDealDate) + .add(BALANCE, balance) + .add(ORIGIN_REPO_VALUE, originRepoValue) + .add(ORIGIN_QUANTITY, originQty) + .add(ORIGIN_DISCOUNT, originDiscount) + .add(NEG_DEAL_ACTIVATION_DATE, negDealActivationDate) + .add(NEG_DEAL_ACTIVATION_TIME, negDealActivationTime) + .add(QUOTE_N_O, quoteNo) + .add(SETTLE_CURRENCY, settleCurrency) + .add(SECURITY_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(BANK_ACCOUNT_ID, bankAccId) + .add(WITHDRAW_DATE, withdrawDate) + .add(LINKED_ORDER, linkedOrder) + .add(ACTIVATION_DATE_TIME, activationDateTime) + .add(WITHDRAW_DATE_TIME, withdrawDateTime) + .add(DATE_TIME, dateTime) + .add(L_SECURITY_CODE, lSecCode) + .add(CANCELED_UID, canceledUid) + .add(SYSTEM_REF, systemRef) + .add(PRICE_CURRENCY, priceCurrency) + .add(ORDER_EXCHANGE_CODE, orderExchangeCode) + .add(EXT_REF, extRef) + .add(PERIOD, period) + .add(CLIENT_QUALIFIER, clientQualifier) + .add(CLIENT_SHORT_CODE, clientShortCode) + .add(INVESTMENT_DECISION_MAKER_QUALIFIER, investmentDecisionMakerQualifier) + .add(INVESTMENT_DECISION_MAKER_SHORT_CODE, investmentDecisionMakerShortCode) + .add(EXECUTING_TRADER_QUALIFIER, executingTraderQualifier) + .add(EXECUTING_TRADER_SHORT_CODE, executingTraderShortCode) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java index c20e7d2..977fd5e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java @@ -1,17 +1,81 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class NegTrade { + private static final String TRADE_NUMBER = "trade_num"; + private static final String TRADE_DATE = "trade_date"; + private static final String SETTLE_DATE = "settle_date"; + private static final String FLAGS = "flags"; + private static final String BROKER_REF = "brokerref"; + private static final String FIRM_ID = "firmid"; + private static final String ACCOUNT = "account"; + private static final String COUNTERPARTY_FIRM_ID = "cpfirmid"; + private static final String COUNTERPARTY_ACCOUNT = "cpaccount"; + private static final String PRICE = "price"; + private static final String QUANTITY = "qty"; + private static final String VALUE = "value"; + private static final String SETTLE_CODE = "settlecode"; + private static final String REPORT_NUMBER = "report_num"; + private static final String COUNTERPARTY_REPORT_NUMBER = "cpreport_num"; + private static final String ACCRUED_INTEREST = "accruedint"; + private static final String REPO_TRADE_NUMBER = "repotradeno"; + private static final String PRICE_1 = "price1"; + private static final String REPO_RATE = "reporate"; + private static final String PRICE_2 = "price2"; + private static final String CLIENT_CODE = "client_code"; + private static final String TS_COMMISSION = "ts_comission"; + private static final String BALANCE = "balance"; + private static final String SETTLE_TIME = "settle_time"; + private static final String AMOUNT = "amount"; + private static final String REPO_VALUE = "repovalue"; + private static final String REPO_TERM = "repoterm"; + private static final String REPO_2_VALUE = "repo2value"; + private static final String RETURN_VALUE = "return_value"; + private static final String DISCOUNT = "discount"; + private static final String LOWER_DISCOUNT = "lower_discount"; + private static final String UPPER_DISCOUNT = "upper_discount"; + private static final String BLOCK_SECURITIES = "block_securities"; + private static final String URGENCY_FLAG = "urgency_flag"; + private static final String TYPE = "type"; + private static final String OPERATION_TYPE = "operation_type"; + private static final String EXPECTED_DISCOUNT = "expected_discount"; + private static final String EXPECTED_QUANTITY = "expected_quantity"; + private static final String EXPECTED_REPO_VALUE = "expected_repovalue"; + private static final String EXPECTED_REPO_2_VALUE = "expected_repo2value"; + private static final String EXPECTED_RETURN_VALUE = "expected_return_value"; + private static final String ORDER_NUMBER = "order_num"; + private static final String REPORT_TRADE_DATE = "report_trade_date"; + private static final String SETTLED = "settled"; + private static final String CLEARING_TYPE = "clearing_type"; + private static final String REPORT_COMMISSION = "report_comission"; + private static final String COUPON_PAYMENT = "coupon_payment"; + private static final String PRINCIPAL_PAYMENT = "principal_payment"; + private static final String PRINCIPAL_PAYMENT_DATE = "principal_payment_date"; + private static final String NEXT_DAY_SETTLE = "nextdaysettle"; + private static final String SETTLE_CURRENCY = "settle_currency"; + private static final String SECURITY_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String COMP_VAL = "compval"; + private static final String PARENT_TRADE_NUMBER = "parenttradeno"; + private static final String BANK_ID = "bankid"; + private static final String BANK_ACCOUNT_ID = "bankaccid"; + private static final String PRECISE_BALANCE = "precisebalance"; + private static final String CONFIRM_TIME = "confirmtime"; + private static final String EX_FLAGS = "ex_flags"; + private static final String CONFIRM_REPORT = "confirmreport"; + private static final String EXT_REF = "extref"; + long tradeNum; String tradeDate; String settleDate; @@ -73,73 +137,77 @@ public class NegTrade { String confirmTime; int exFlags; String confirmReport; + String extRef; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private NegTrade( - final long tradeNum, - final String tradeDate, - final String settleDate, - final int flags, - final String brokerRef, - final String firmId, - final String account, - final String cpFirmId, - final String cpAccount, - final String price, - final int qty, - final String value, - final String settleCode, - final String reportNum, - final String cpReportNum, - final String accruedInt, - final String repoTradeNo, - final String price1, - final String repoRate, - final String price2, - final String clientCode, - final String tsComission, - final String balance, - final String settleTime, - final String amount, - final String repoValue, - final String repoTerm, - final String repo2Value, - final String returnValue, - final String discount, - final String lowerDiscount, - final String upperDiscount, - final String blockSecurities, - final String urgencyFlag, - final int type, - final int operationType, - final String expectedDiscount, - final String expectedQuantity, - final String expectedRepoValue, - final String expectedRepo2Value, - final String expectedReturnValue, - final String orderNum, - final String reportTradeDate, - final int settled, - final int clearingType, - final String reportComission, - final String couponPayment, - final String principalPayment, - final String principalPaymentDate, - final String nextDaySettle, - final String settleCurrency, - final String secCode, - final String classCode, - final String compVal, - final String parentTradeNo, - final String bankId, - final String bankAccId, - final String preciseBalance, - final String confirmTime, - final int exFlags, - final String confirmReport) { + @JsonProperty(value = TRADE_NUMBER, required = true) final long tradeNum, + @JsonProperty(TRADE_DATE) final String tradeDate, + @JsonProperty(SETTLE_DATE) final String settleDate, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(COUNTERPARTY_FIRM_ID) final String cpFirmId, + @JsonProperty(COUNTERPARTY_ACCOUNT) final String cpAccount, + @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(value = QUANTITY, required = true) final int qty, + @JsonProperty(VALUE) final String value, + @JsonProperty(SETTLE_CODE) final String settleCode, + @JsonProperty(REPORT_NUMBER) final String reportNum, + @JsonProperty(COUNTERPARTY_REPORT_NUMBER) final String cpReportNum, + @JsonProperty(ACCRUED_INTEREST) final String accruedInt, + @JsonProperty(REPO_TRADE_NUMBER) final String repoTradeNo, + @JsonProperty(PRICE_1) final String price1, + @JsonProperty(REPO_RATE) final String repoRate, + @JsonProperty(PRICE_2) final String price2, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(TS_COMMISSION) final String tsComission, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(SETTLE_TIME) final String settleTime, + @JsonProperty(AMOUNT) final String amount, + @JsonProperty(REPO_VALUE) final String repoValue, + @JsonProperty(REPO_TERM) final String repoTerm, + @JsonProperty(REPO_2_VALUE) final String repo2Value, + @JsonProperty(RETURN_VALUE) final String returnValue, + @JsonProperty(DISCOUNT) final String discount, + @JsonProperty(LOWER_DISCOUNT) final String lowerDiscount, + @JsonProperty(UPPER_DISCOUNT) final String upperDiscount, + @JsonProperty(BLOCK_SECURITIES) final String blockSecurities, + @JsonProperty(URGENCY_FLAG) final String urgencyFlag, + @JsonProperty(value = TYPE, required = true) final int type, + @JsonProperty(value = OPERATION_TYPE, required = true) final int operationType, + @JsonProperty(EXPECTED_DISCOUNT) final String expectedDiscount, + @JsonProperty(EXPECTED_QUANTITY) final String expectedQuantity, + @JsonProperty(EXPECTED_REPO_VALUE) final String expectedRepoValue, + @JsonProperty(EXPECTED_REPO_2_VALUE) final String expectedRepo2Value, + @JsonProperty(EXPECTED_RETURN_VALUE) final String expectedReturnValue, + @JsonProperty(ORDER_NUMBER) final String orderNum, + @JsonProperty(REPORT_TRADE_DATE) final String reportTradeDate, + @JsonProperty(value = SETTLED, required = true) final int settled, + @JsonProperty(value = CLEARING_TYPE, required = true) final int clearingType, + @JsonProperty(REPORT_COMMISSION) final String reportComission, + @JsonProperty(COUPON_PAYMENT) final String couponPayment, + @JsonProperty(PRINCIPAL_PAYMENT) final String principalPayment, + @JsonProperty(PRINCIPAL_PAYMENT_DATE) final String principalPaymentDate, + @JsonProperty(NEXT_DAY_SETTLE) final String nextDaySettle, + @JsonProperty(SETTLE_CURRENCY) final String settleCurrency, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(COMP_VAL) final String compVal, + @JsonProperty(PARENT_TRADE_NUMBER) final String parentTradeNo, + @JsonProperty(BANK_ID) final String bankId, + @JsonProperty(BANK_ACCOUNT_ID) final String bankAccId, + @JsonProperty(PRECISE_BALANCE) final String preciseBalance, + @JsonProperty(CONFIRM_TIME) final String confirmTime, + @JsonProperty(value = EX_FLAGS, required = true) final int exFlags, + @JsonProperty(CONFIRM_REPORT) final String confirmReport, + @JsonProperty(EXT_REF) final String extRef) { this.tradeNum = tradeNum; this.tradeDate = tradeDate; @@ -202,219 +270,77 @@ private NegTrade( this.confirmTime = confirmTime; this.exFlags = exFlags; this.confirmReport = confirmReport; + this.extRef = extRef; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof NegTrade) ) { - return false; - } else { - final NegTrade negTrade = (NegTrade) o; - return tradeNum == negTrade.tradeNum && - flags == negTrade.flags && - qty == negTrade.qty && - type == negTrade.type && - operationType == negTrade.operationType && - settled == negTrade.settled && - clearingType == negTrade.clearingType && - exFlags == negTrade.exFlags && - Objects.equals(tradeDate, negTrade.tradeDate) && - Objects.equals(settleDate, negTrade.settleDate) && - Objects.equals(brokerRef, negTrade.brokerRef) && - Objects.equals(firmId, negTrade.firmId) && - Objects.equals(account, negTrade.account) && - Objects.equals(cpFirmId, negTrade.cpFirmId) && - Objects.equals(cpAccount, negTrade.cpAccount) && - Objects.equals(price, negTrade.price) && - Objects.equals(value, negTrade.value) && - Objects.equals(settleCode, negTrade.settleCode) && - Objects.equals(reportNum, negTrade.reportNum) && - Objects.equals(cpReportNum, negTrade.cpReportNum) && - Objects.equals(accruedInt, negTrade.accruedInt) && - Objects.equals(repoTradeNo, negTrade.repoTradeNo) && - Objects.equals(price1, negTrade.price1) && - Objects.equals(repoRate, negTrade.repoRate) && - Objects.equals(price2, negTrade.price2) && - Objects.equals(clientCode, negTrade.clientCode) && - Objects.equals(tsComission, negTrade.tsComission) && - Objects.equals(balance, negTrade.balance) && - Objects.equals(settleTime, negTrade.settleTime) && - Objects.equals(amount, negTrade.amount) && - Objects.equals(repoValue, negTrade.repoValue) && - Objects.equals(repoTerm, negTrade.repoTerm) && - Objects.equals(repo2Value, negTrade.repo2Value) && - Objects.equals(returnValue, negTrade.returnValue) && - Objects.equals(discount, negTrade.discount) && - Objects.equals(lowerDiscount, negTrade.lowerDiscount) && - Objects.equals(upperDiscount, negTrade.upperDiscount) && - Objects.equals(blockSecurities, negTrade.blockSecurities) && - Objects.equals(urgencyFlag, negTrade.urgencyFlag) && - Objects.equals(expectedDiscount, negTrade.expectedDiscount) && - Objects.equals(expectedQuantity, negTrade.expectedQuantity) && - Objects.equals(expectedRepoValue, negTrade.expectedRepoValue) && - Objects.equals(expectedRepo2Value, negTrade.expectedRepo2Value) && - Objects.equals(expectedReturnValue, negTrade.expectedReturnValue) && - Objects.equals(orderNum, negTrade.orderNum) && - Objects.equals(reportTradeDate, negTrade.reportTradeDate) && - Objects.equals(reportComission, negTrade.reportComission) && - Objects.equals(couponPayment, negTrade.couponPayment) && - Objects.equals(principalPayment, negTrade.principalPayment) && - Objects.equals(principalPaymentDate, negTrade.principalPaymentDate) && - Objects.equals(nextDaySettle, negTrade.nextDaySettle) && - Objects.equals(settleCurrency, negTrade.settleCurrency) && - Objects.equals(secCode, negTrade.secCode) && - Objects.equals(classCode, negTrade.classCode) && - Objects.equals(compVal, negTrade.compVal) && - Objects.equals(parentTradeNo, negTrade.parentTradeNo) && - Objects.equals(bankId, negTrade.bankId) && - Objects.equals(bankAccId, negTrade.bankAccId) && - Objects.equals(preciseBalance, negTrade.preciseBalance) && - Objects.equals(confirmTime, negTrade.confirmTime) && - Objects.equals(confirmReport, negTrade.confirmReport); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - tradeNum, - tradeDate, - settleDate, - flags, - brokerRef, - firmId, - account, - cpFirmId, - cpAccount, - price, - qty, - value, - settleCode, - reportNum, - cpReportNum, - accruedInt, - repoTradeNo, - price1, - repoRate, - price2, - clientCode, - tsComission, - balance, - settleTime, - amount, - repoValue, - repoTerm, - repo2Value, - returnValue, - discount, - lowerDiscount, - upperDiscount, - blockSecurities, - urgencyFlag, - type, - operationType, - expectedDiscount, - expectedQuantity, - expectedRepoValue, - expectedRepo2Value, - expectedReturnValue, - orderNum, - reportTradeDate, - settled, - clearingType, - reportComission, - couponPayment, - principalPayment, - principalPaymentDate, - nextDaySettle, - settleCurrency, - secCode, - classCode, - compVal, - parentTradeNo, - bankId, - bankAccId, - preciseBalance, - confirmTime, - exFlags, - confirmReport - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("trade_num", tradeNum) - .add("trade_date", tradeDate) - .add("settle_date", settleDate) - .add("flags", flags) - .add("brokerref", brokerRef) - .add("firmid", firmId) - .add("account", account) - .add("cpfirmid", cpFirmId) - .add("cpaccount", cpAccount) - .add("price", price) - .add("qty", qty) - .add("value", value) - .add("settlecode", settleCode) - .add("report_num", reportNum) - .add("cpreport_num", cpReportNum) - .add("accruedint", accruedInt) - .add("repotradeno", repoTradeNo) - .add("price1", price1) - .add("reporate", repoRate) - .add("price2", price2) - .add("client_code", clientCode) - .add("ts_comission", tsComission) - .add("balance", balance) - .add("settle_time", settleTime) - .add("amount", amount) - .add("repovalue", repoValue) - .add("repoterm", repoTerm) - .add("repo2value", repo2Value) - .add("return_value", returnValue) - .add("discount", discount) - .add("lower_discount", lowerDiscount) - .add("upper_discount", upperDiscount) - .add("block_securities", blockSecurities) - .add("urgency_flag", urgencyFlag) - .add("type", type) - .add("operation_type", operationType) - .add("expected_discount", expectedDiscount) - .add("expected_quantity", expectedQuantity) - .add("expected_repovalue", expectedRepoValue) - .add("expected_repo2value", expectedRepo2Value) - .add("expected_return_value", expectedReturnValue) - .add("order_num", orderNum) - .add("report_trade_date", reportTradeDate) - .add("settled", settled) - .add("clearing_type", clearingType) - .add("report_comission", reportComission) - .add("coupon_payment", couponPayment) - .add("principal_payment", principalPayment) - .add("principal_payment_date", principalPaymentDate) - .add("nextdaysettle", nextDaySettle) - .add("settle_currency", settleCurrency) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("compval", compVal) - .add("parenttradeno", parentTradeNo) - .add("bankid", bankId) - .add("bankaccid", bankAccId) - .add("precisebalance", preciseBalance) - .add("confirmtime", confirmTime) - .add("ex_flags", exFlags) - .add("confirmreport", confirmReport) + .add(TRADE_NUMBER, tradeNum) + .add(TRADE_DATE, tradeDate) + .add(SETTLE_DATE, settleDate) + .add(FLAGS, flags) + .add(BROKER_REF, brokerRef) + .add(FIRM_ID, firmId) + .add(ACCOUNT, account) + .add(COUNTERPARTY_FIRM_ID, cpFirmId) + .add(COUNTERPARTY_ACCOUNT, cpAccount) + .add(PRICE, price) + .add(QUANTITY, qty) + .add(VALUE, value) + .add(SETTLE_CODE, settleCode) + .add(REPORT_NUMBER, reportNum) + .add(COUNTERPARTY_REPORT_NUMBER, cpReportNum) + .add(ACCRUED_INTEREST, accruedInt) + .add(REPO_TRADE_NUMBER, repoTradeNo) + .add(PRICE_1, price1) + .add(REPO_RATE, repoRate) + .add(PRICE_2, price2) + .add(CLIENT_CODE, clientCode) + .add(TS_COMMISSION, tsComission) + .add(BALANCE, balance) + .add(SETTLE_TIME, settleTime) + .add(AMOUNT, amount) + .add(REPO_VALUE, repoValue) + .add(REPO_TERM, repoTerm) + .add(REPO_2_VALUE, repo2Value) + .add(RETURN_VALUE, returnValue) + .add(DISCOUNT, discount) + .add(LOWER_DISCOUNT, lowerDiscount) + .add(UPPER_DISCOUNT, upperDiscount) + .add(BLOCK_SECURITIES, blockSecurities) + .add(URGENCY_FLAG, urgencyFlag) + .add(TYPE, type) + .add(OPERATION_TYPE, operationType) + .add(EXPECTED_DISCOUNT, expectedDiscount) + .add(EXPECTED_QUANTITY, expectedQuantity) + .add(EXPECTED_REPO_VALUE, expectedRepoValue) + .add(EXPECTED_REPO_2_VALUE, expectedRepo2Value) + .add(EXPECTED_RETURN_VALUE, expectedReturnValue) + .add(ORDER_NUMBER, orderNum) + .add(REPORT_TRADE_DATE, reportTradeDate) + .add(SETTLED, settled) + .add(CLEARING_TYPE, clearingType) + .add(REPORT_COMMISSION, reportComission) + .add(COUPON_PAYMENT, couponPayment) + .add(PRINCIPAL_PAYMENT, principalPayment) + .add(PRINCIPAL_PAYMENT_DATE, principalPaymentDate) + .add(NEXT_DAY_SETTLE, nextDaySettle) + .add(SETTLE_CURRENCY, settleCurrency) + .add(SECURITY_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(COMP_VAL, compVal) + .add(PARENT_TRADE_NUMBER, parentTradeNo) + .add(BANK_ID, bankId) + .add(BANK_ACCOUNT_ID, bankAccId) + .add(PRECISE_BALANCE, preciseBalance) + .add(CONFIRM_TIME, confirmTime) + .add(EX_FLAGS, exFlags) + .add(CONFIRM_REPORT, confirmReport) + .add(EXT_REF, extRef) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java index 705023e..db4e135 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Order.java @@ -1,17 +1,79 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class Order { + private static final String ORDER_NUM = "order_num"; + private static final String FLAGS = "flags"; + private static final String BROKER_REF = "brokerref"; + private static final String USER_ID = "userid"; + private static final String FIRM_ID = "firmid"; + private static final String ACCOUNT = "account"; + private static final String PRICE = "price"; + private static final String QTY = "qty"; + private static final String BALANCE = "balance"; + private static final String VALUE = "value"; + private static final String ACCRUED_INT = "accruedint"; + private static final String YIELD = "yield"; + private static final String TRANS_ID = "trans_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String PRICE_2 = "price2"; + private static final String SETTLE_CODE = "settlecode"; + private static final String UID = "uid"; + private static final String CANCELED_UID = "canceled_uid"; + private static final String EXCHANGE_CODE = "exchange_code"; + private static final String ACTIVATION_TIME = "activation_time"; + private static final String LINKED_ORDER = "linkedorder"; + private static final String EXPIRY = "expiry"; + private static final String SEC_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String DATE_TIME = "datetime"; + private static final String WITHDRAW_DATE_TIME = "withdraw_datetime"; + private static final String BANK_ACC_ID = "bank_acc_id"; + private static final String VALUE_ENTRY_TYPE = "value_entry_type"; + private static final String REPO_TERM = "repoterm"; + private static final String REPO_VALUE = "repovalue"; + private static final String REPO_2_VALUE = "repo2value"; + private static final String REPO_VALUE_BALANCE = "repo_value_balance"; + private static final String START_DISCOUNT = "start_discount"; + private static final String REJECT_REASON = "reject_reason"; + private static final String EXT_ORDER_FLAGS = "ext_order_flags"; + private static final String MIN_QTY = "min_qty"; + private static final String EXEC_TYPE = "exec_type"; + private static final String SIDE_QUALIFIER = "side_qualifier"; + private static final String ACCOUNT_TYPE = "acnt_type"; + private static final String CAPACITY = "capacity"; + private static final String PASSIVE_ONLY_ORDER = "passive_only_order"; + private static final String VISIBLE = "visible"; + private static final String AWG_PRICE = "awg_price"; + private static final String EXPIRY_TIME = "expiry_time"; + private static final String REVISION_NUMBER = "revision_number"; + private static final String PRICE_CURRENCY = "price_currency"; + private static final String EXT_ORDER_STATUS = "ext_order_status"; + private static final String ACCEPTED_UID = "accepted_uid"; + private static final String FILLED_VALUE = "filled_value"; + private static final String EXT_REF = "extref"; + private static final String SETTLE_CURRENCY = "settle_currency"; + private static final String ON_BEHALF_OF_UID = "on_behalf_of_uid"; + private static final String CLIENT_QUALIFIER = "client_qualifier"; + private static final String CLIENT_SHORT_CODE = "client_short_code"; + private static final String INVESTMENT_DECISION_MAKER_QUALIFIER = "investment_decision_maker_qualifier"; + private static final String INVESTMENT_DECISION_MAKER_SHORT_CODE = "investment_decision_maker_short_code"; + private static final String EXECUTING_TRADER_QUALIFIER = "executing_trader_qualifier"; + private static final String EXECUTING_TRADER_SHORT_CODE = "executing_trader_short_code"; + long orderNum; int flags; String brokerRef; @@ -54,54 +116,92 @@ public class Order { int capacity; int passiveOnlyOrder; int visible; + String awgPrice; + String expiryTime; + String revisionNumber; + String priceCurrency; + int extOrderStatus; + String acceptedUid; + String filledValue; + String extRef; + String settleCurrency; + String onBehalfOfUid; + int clientQualifier; + String clientShortCode; + int investmentDecisionMakerQualifier; + String investmentDecisionMakerShortCode; + int executingTraderQualifier; + String executingTraderShortCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private Order( - final long orderNum, - final int flags, - final String brokerRef, - final String userId, - final String firmId, - final String account, - final String price, - final int qty, - final String balance, - final String value, - final String accruedInt, - final String yield, - final String transId, - final String clientCode, - final String price2, - final String settleCode, - final String uid, - final String canceledUid, - final String exchangeCode, - final String activationTime, - final String linkedOrder, - final String expiry, - final String secCode, - final String classCode, - final DateTimeEntry datetime, - final DateTimeEntry withdrawDatetime, - final String bankAccId, - final int valueEntryType, - final String repoTerm, - final String repoValue, - final String repo2Value, - final String repoValueBalance, - final String startDiscount, - final String rejectReason, - final String extOrderFlags, - final int minQty, - final int execType, - final int sideQualifier, - final int acntType, - final int capacity, - final int passiveOnlyOrder, - final int visible) { + @JsonProperty(value = ORDER_NUM, required = true) final long orderNum, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(USER_ID) final String userId, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(value = QTY, required = true) final int qty, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(value = VALUE, required = true) final String value, + @JsonProperty(ACCRUED_INT) final String accruedInt, + @JsonProperty(YIELD) final String yield, + @JsonProperty(TRANS_ID) final String transId, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(PRICE_2) final String price2, + @JsonProperty(SETTLE_CODE) final String settleCode, + @JsonProperty(UID) final String uid, + @JsonProperty(CANCELED_UID) final String canceledUid, + @JsonProperty(EXCHANGE_CODE) final String exchangeCode, + @JsonProperty(ACTIVATION_TIME) final String activationTime, + @JsonProperty(LINKED_ORDER) final String linkedOrder, + @JsonProperty(EXPIRY) final String expiry, + @JsonProperty(value = SEC_CODE, required = true) final String secCode, + @JsonProperty(value = CLASS_CODE, required = true) final String classCode, + @JsonProperty(value = DATE_TIME, required = true) final DateTimeEntry datetime, + @JsonProperty(WITHDRAW_DATE_TIME) final DateTimeEntry withdrawDatetime, + @JsonProperty(BANK_ACC_ID) final String bankAccId, + @JsonProperty(value = VALUE_ENTRY_TYPE, required = true) final int valueEntryType, + @JsonProperty(REPO_TERM) final String repoTerm, + @JsonProperty(REPO_VALUE) final String repoValue, + @JsonProperty(REPO_2_VALUE) final String repo2Value, + @JsonProperty(REPO_VALUE_BALANCE) final String repoValueBalance, + @JsonProperty(START_DISCOUNT) final String startDiscount, + @JsonProperty(REJECT_REASON) final String rejectReason, + @JsonProperty(EXT_ORDER_FLAGS) final String extOrderFlags, + @JsonProperty(value = MIN_QTY, required = true) final int minQty, + @JsonProperty(value = EXEC_TYPE, required = true) final int execType, + @JsonProperty(value = SIDE_QUALIFIER, required = true) final int sideQualifier, + @JsonProperty(value = ACCOUNT_TYPE, required = true) final int acntType, + @JsonProperty(value = CAPACITY, required = true) final int capacity, + @JsonProperty(value = PASSIVE_ONLY_ORDER, required = true) final int passiveOnlyOrder, + @JsonProperty(value = VISIBLE, required = true) final int visible, + @JsonProperty(AWG_PRICE) final String awgPrice, + @JsonProperty(EXPIRY_TIME) final String expiryTime, + @JsonProperty(REVISION_NUMBER) final String revisionNumber, + @JsonProperty(PRICE_CURRENCY) final String priceCurrency, + @JsonProperty(value = EXT_ORDER_STATUS, required = true) final int extOrderStatus, + @JsonProperty(ACCEPTED_UID) final String acceptedUid, + @JsonProperty(FILLED_VALUE) final String filledValue, + @JsonProperty(EXT_REF) final String extRef, + @JsonProperty(SETTLE_CURRENCY) final String settleCurrency, + @JsonProperty(ON_BEHALF_OF_UID) final String onBehalfOfUid, + @JsonProperty(CLIENT_QUALIFIER) final int clientQualifier, + @JsonProperty(CLIENT_SHORT_CODE) final String clientShortCode, + @JsonProperty(INVESTMENT_DECISION_MAKER_QUALIFIER) final int investmentDecisionMakerQualifier, + @JsonProperty(INVESTMENT_DECISION_MAKER_SHORT_CODE) final String investmentDecisionMakerShortCode, + @JsonProperty(EXECUTING_TRADER_QUALIFIER) final int executingTraderQualifier, + @JsonProperty(EXECUTING_TRADER_SHORT_CODE) final String executingTraderShortCode) { this.orderNum = orderNum; this.flags = flags; @@ -145,60 +245,87 @@ private Order( this.capacity = capacity; this.passiveOnlyOrder = passiveOnlyOrder; this.visible = visible; + this.awgPrice = awgPrice; + this.expiryTime = expiryTime; + this.revisionNumber = revisionNumber; + this.priceCurrency = priceCurrency; + this.extOrderStatus = extOrderStatus; + this.acceptedUid = acceptedUid; + this.filledValue = filledValue; + this.extRef = extRef; + this.settleCurrency = settleCurrency; + this.onBehalfOfUid = onBehalfOfUid; + this.clientQualifier = clientQualifier; + this.clientShortCode = clientShortCode; + this.investmentDecisionMakerQualifier = investmentDecisionMakerQualifier; + this.investmentDecisionMakerShortCode = investmentDecisionMakerShortCode; + this.executingTraderQualifier = executingTraderQualifier; + this.executingTraderShortCode = executingTraderShortCode; } @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Order) ) { - return false; - } else { - final Order order = (Order) o; - return orderNum == order.orderNum && - flags == order.flags && - qty == order.qty && - valueEntryType == order.valueEntryType && - minQty == order.minQty && - execType == order.execType && - sideQualifier == order.sideQualifier && - acntType == order.acntType && - capacity == order.capacity && - passiveOnlyOrder == order.passiveOnlyOrder && - visible == order.visible && - Objects.equals(brokerRef, order.brokerRef) && - Objects.equals(userId, order.userId) && - Objects.equals(firmId, order.firmId) && - Objects.equals(account, order.account) && - Objects.equals(price, order.price) && - Objects.equals(balance, order.balance) && - Objects.equals(value, order.value) && - Objects.equals(accruedInt, order.accruedInt) && - Objects.equals(yield, order.yield) && - Objects.equals(transId, order.transId) && - Objects.equals(clientCode, order.clientCode) && - Objects.equals(price2, order.price2) && - Objects.equals(settleCode, order.settleCode) && - Objects.equals(uid, order.uid) && - Objects.equals(canceledUid, order.canceledUid) && - Objects.equals(exchangeCode, order.exchangeCode) && - Objects.equals(activationTime, order.activationTime) && - Objects.equals(linkedOrder, order.linkedOrder) && - Objects.equals(expiry, order.expiry) && - Objects.equals(secCode, order.secCode) && - Objects.equals(classCode, order.classCode) && - Objects.equals(datetime, order.datetime) && - Objects.equals(withdrawDatetime, order.withdrawDatetime) && - Objects.equals(bankAccId, order.bankAccId) && - Objects.equals(repoTerm, order.repoTerm) && - Objects.equals(repoValue, order.repoValue) && - Objects.equals(repo2Value, order.repo2Value) && - Objects.equals(repoValueBalance, order.repoValueBalance) && - Objects.equals(startDiscount, order.startDiscount) && - Objects.equals(rejectReason, order.rejectReason) && - Objects.equals(extOrderFlags, order.extOrderFlags); - } + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Order order = (Order) o; + return orderNum == order.orderNum && + flags == order.flags && + qty == order.qty && + valueEntryType == order.valueEntryType && + minQty == order.minQty && + execType == order.execType && + sideQualifier == order.sideQualifier && + acntType == order.acntType && + capacity == order.capacity && + passiveOnlyOrder == order.passiveOnlyOrder && + visible == order.visible && + extOrderStatus == order.extOrderStatus && + clientQualifier == order.clientQualifier && + investmentDecisionMakerQualifier == order.investmentDecisionMakerQualifier && + executingTraderQualifier == order.executingTraderQualifier && + Objects.equals(brokerRef, order.brokerRef) && + Objects.equals(userId, order.userId) && + Objects.equals(firmId, order.firmId) && + Objects.equals(account, order.account) && + Objects.equals(price, order.price) && + Objects.equals(balance, order.balance) && + Objects.equals(value, order.value) && + Objects.equals(accruedInt, order.accruedInt) && + Objects.equals(yield, order.yield) && + Objects.equals(transId, order.transId) && + Objects.equals(clientCode, order.clientCode) && + Objects.equals(price2, order.price2) && + Objects.equals(settleCode, order.settleCode) && + Objects.equals(uid, order.uid) && + Objects.equals(canceledUid, order.canceledUid) && + Objects.equals(exchangeCode, order.exchangeCode) && + Objects.equals(activationTime, order.activationTime) && + Objects.equals(linkedOrder, order.linkedOrder) && + Objects.equals(expiry, order.expiry) && + Objects.equals(secCode, order.secCode) && + Objects.equals(classCode, order.classCode) && + Objects.equals(datetime, order.datetime) && + Objects.equals(withdrawDatetime, order.withdrawDatetime) && + Objects.equals(bankAccId, order.bankAccId) && + Objects.equals(repoTerm, order.repoTerm) && + Objects.equals(repoValue, order.repoValue) && + Objects.equals(repo2Value, order.repo2Value) && + Objects.equals(repoValueBalance, order.repoValueBalance) && + Objects.equals(startDiscount, order.startDiscount) && + Objects.equals(rejectReason, order.rejectReason) && + Objects.equals(extOrderFlags, order.extOrderFlags) && + Objects.equals(awgPrice, order.awgPrice) && + Objects.equals(expiryTime, order.expiryTime) && + Objects.equals(revisionNumber, order.revisionNumber) && + Objects.equals(priceCurrency, order.priceCurrency) && + Objects.equals(acceptedUid, order.acceptedUid) && + Objects.equals(filledValue, order.filledValue) && + Objects.equals(extRef, order.extRef) && + Objects.equals(settleCurrency, order.settleCurrency) && + Objects.equals(onBehalfOfUid, order.onBehalfOfUid) && + Objects.equals(clientShortCode, order.clientShortCode) && + Objects.equals(investmentDecisionMakerShortCode, order.investmentDecisionMakerShortCode) && + Objects.equals(executingTraderShortCode, order.executingTraderShortCode); } @Override @@ -247,60 +374,93 @@ public int hashCode() { acntType, capacity, passiveOnlyOrder, - visible + visible, + awgPrice, + expiryTime, + revisionNumber, + priceCurrency, + extOrderStatus, + acceptedUid, + filledValue, + extRef, + settleCurrency, + onBehalfOfUid, + clientQualifier, + clientShortCode, + investmentDecisionMakerQualifier, + investmentDecisionMakerShortCode, + executingTraderQualifier, + executingTraderShortCode ); } return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("order_num", orderNum) - .add("flags", flags) - .add("brokerref", brokerRef) - .add("userid", userId) - .add("firmid", firmId) - .add("account", account) - .add("price", price) - .add("qty", qty) - .add("balance", balance) - .add("value", value) - .add("accruedint", accruedInt) - .add("yield", yield) - .add("trans_id", transId) - .add("client_code", clientCode) - .add("price2", price2) - .add("settlecode", settleCode) - .add("uid", uid) - .add("canceled_uid", canceledUid) - .add("exchange_code", exchangeCode) - .add("activation_time", activationTime) - .add("linkedorder", linkedOrder) - .add("expiry", expiry) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("datetime", datetime) - .add("withdraw_datetime", withdrawDatetime) - .add("bank_acc_id", bankAccId) - .add("value_entry_type", valueEntryType) - .add("repoterm", repoTerm) - .add("repovalue", repoValue) - .add("repo2value", repo2Value) - .add("repo_value_balance", repoValueBalance) - .add("start_discount", startDiscount) - .add("reject_reason", rejectReason) - .add("ext_order_flags", extOrderFlags) - .add("min_qty", minQty) - .add("exec_type", execType) - .add("side_qualifier", sideQualifier) - .add("acnt_type", acntType) - .add("capacity", capacity) - .add("passive_only_order", passiveOnlyOrder) - .add("visible", visible) + .add(ORDER_NUM, orderNum) + .add(FLAGS, flags) + .add(BROKER_REF, brokerRef) + .add(USER_ID, userId) + .add(FIRM_ID, firmId) + .add(ACCOUNT, account) + .add(PRICE, price) + .add(QTY, qty) + .add(BALANCE, balance) + .add(VALUE, value) + .add(ACCRUED_INT, accruedInt) + .add(YIELD, yield) + .add(TRANS_ID, transId) + .add(CLIENT_CODE, clientCode) + .add(PRICE_2, price2) + .add(SETTLE_CODE, settleCode) + .add(UID, uid) + .add(CANCELED_UID, canceledUid) + .add(EXCHANGE_CODE, exchangeCode) + .add(ACTIVATION_TIME, activationTime) + .add(LINKED_ORDER, linkedOrder) + .add(EXPIRY, expiry) + .add(SEC_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(DATE_TIME, datetime) + .add(WITHDRAW_DATE_TIME, withdrawDatetime) + .add(BANK_ACC_ID, bankAccId) + .add(VALUE_ENTRY_TYPE, valueEntryType) + .add(REPO_TERM, repoTerm) + .add(REPO_VALUE, repoValue) + .add(REPO_2_VALUE, repo2Value) + .add(REPO_VALUE_BALANCE, repoValueBalance) + .add(START_DISCOUNT, startDiscount) + .add(REJECT_REASON, rejectReason) + .add(EXT_ORDER_FLAGS, extOrderFlags) + .add(MIN_QTY, minQty) + .add(EXEC_TYPE, execType) + .add(SIDE_QUALIFIER, sideQualifier) + .add(ACCOUNT_TYPE, acntType) + .add(CAPACITY, capacity) + .add(PASSIVE_ONLY_ORDER, passiveOnlyOrder) + .add(VISIBLE, visible) + .add(AWG_PRICE, awgPrice) + .add(EXPIRY_TIME, expiryTime) + .add(REVISION_NUMBER, revisionNumber) + .add(PRICE_CURRENCY, priceCurrency) + .add(EXT_ORDER_STATUS, extOrderStatus) + .add(ACCEPTED_UID, acceptedUid) + .add(FILLED_VALUE, filledValue) + .add(EXT_REF, extRef) + .add(SETTLE_CURRENCY, settleCurrency) + .add(ON_BEHALF_OF_UID, onBehalfOfUid) + .add(CLIENT_QUALIFIER, clientQualifier) + .add(CLIENT_SHORT_CODE, clientShortCode) + .add(INVESTMENT_DECISION_MAKER_QUALIFIER, investmentDecisionMakerQualifier) + .add(INVESTMENT_DECISION_MAKER_SHORT_CODE, investmentDecisionMakerShortCode) + .add(EXECUTING_TRADER_QUALIFIER, executingTraderQualifier) + .add(EXECUTING_TRADER_SHORT_CODE, executingTraderShortCode) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java index e94a778..7013dbc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ParamEventInfo.java @@ -1,25 +1,37 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class ParamEventInfo { + private static final String CLASS_CODE = "class_code"; + private static final String SECURITY_CODE = "sec_code"; + String classCode; String secCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder - private ParamEventInfo(final String classCode, final String secCode) { + private ParamEventInfo( + @JsonProperty(value = CLASS_CODE, required = true) @NonNull final String classCode, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode) { + this.classCode = classCode; this.secCode = secCode; } @@ -48,13 +60,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE, classCode) + .add(SECURITY_CODE, secCode) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java index f50e1c5..f07453e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfo.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.*; @@ -11,99 +10,140 @@ @Value public class PortfolioInfo { - - @JsonProperty("is_leverage") String isLeverage; - @JsonProperty("in_assets") String inAssets; - @JsonProperty("leverage") String leverage; - @JsonProperty("open_limit") String openLimit; - @JsonProperty("val_short") String valShort; - @JsonProperty("val_long") String valLong; - @JsonProperty("val_long_margin") String valLongMargin; - @JsonProperty("val_long_asset") String valLongAsset; - @JsonProperty("assets") String assets; - @JsonProperty("cur_leverage") String curLeverage; - @JsonProperty("margin") String margin; - @JsonProperty("lim_all") String limAll; - @JsonProperty("av_lim_all") String avLimAll; - @JsonProperty("locked_buy") String lockedBuy; - @JsonProperty("locked_buy_margin") String lockedBuyMargin; - @JsonProperty("locked_buy_asset") String lockedBuyAsset; - @JsonProperty("locked_sell") String lockedSell; - @JsonProperty("locked_value_coef") String lockedValueCoef; - @JsonProperty("in_all_assets") String inAllAssets; - @JsonProperty("all_assets") String allAssets; - @JsonProperty("profit_loss") String profitLoss; - @JsonProperty("rate_change") String rateChange; - @JsonProperty("lim_buy") String limBuy; - @JsonProperty("lim_sell") String limSell; - @JsonProperty("lim_non_margin") String limNonMargin; - @JsonProperty("lim_buy_asset") String limBuyAsset; - @JsonProperty("val_short_net") String valShortNet; - @JsonProperty("val_long_net") String valLongNet; - @JsonProperty("total_money_bal") String totalMoneyBal; - @JsonProperty("total_locked_money") String totalLockedMoney; - @JsonProperty("haircuts") String haircuts; - @JsonProperty("assets_without_hc") String assetsWithoutHc; - @JsonProperty("status_coef") String statusCoef; - @JsonProperty("varmargin") String varMargin; - @JsonProperty("go_for_positions") String goForPositions; - @JsonProperty("go_for_orders") String goForOrders; - @JsonProperty("rate_futures") String rateFutures; - @JsonProperty("is_qual_client") String isQualClient; - @JsonProperty("is_futures") String isFutures; - @JsonProperty("curr_tag") String currTag; + + private static final String IS_LEVERAGE = "is_leverage"; + private static final String IN_ASSETS = "in_assets"; + private static final String LEVERAGE = "leverage"; + private static final String OPEN_LIMIT = "open_limit"; + private static final String VAL_SHORT = "val_short"; + private static final String VAL_LONG = "val_long"; + private static final String VAL_LONG_MARGIN = "val_long_margin"; + private static final String VAL_LONG_ASSET = "val_long_asset"; + private static final String ASSETS = "assets"; + private static final String CUR_LEVERAGE = "cur_leverage"; + private static final String MARGIN = "margin"; + private static final String LIM_ALL = "lim_all"; + private static final String AV_LIM_ALL = "av_lim_all"; + private static final String LOCKED_BUY = "locked_buy"; + private static final String LOCKED_BUY_MARGIN = "locked_buy_margin"; + private static final String LOCKED_BUY_ASSET = "locked_buy_asset"; + private static final String LOCKED_SELL = "locked_sell"; + private static final String LOCKED_VALUE_COEF = "locked_value_coef"; + private static final String IN_ALL_ASSETS = "in_all_assets"; + private static final String ALL_ASSETS = "all_assets"; + private static final String PROFIT_LOSS = "profit_loss"; + private static final String RATE_CHANGE = "rate_change"; + private static final String LIM_BUY = "lim_buy"; + private static final String LIM_SELL = "lim_sell"; + private static final String LIM_NON_MARGIN = "lim_non_margin"; + private static final String LIM_BUY_ASSET = "lim_buy_asset"; + private static final String VAL_SHORT_NET = "val_short_net"; + private static final String VAL_LONG_NET = "val_long_net"; + private static final String TOTAL_MONEY_BAL = "total_money_bal"; + private static final String TOTAL_LOCKED_MONEY = "total_locked_money"; + private static final String HAIRCUTS = "haircuts"; + private static final String ASSETS_WITHOUT_HC = "assets_without_hc"; + private static final String STATUS_COEF = "status_coef"; + private static final String VAR_MARGIN = "varmargin"; + private static final String GO_FOR_POSITIONS = "go_for_positions"; + private static final String GO_FOR_ORDERS = "go_for_orders"; + private static final String RATE_FUTURES = "rate_futures"; + private static final String IS_QUAL_CLIENT = "is_qual_client"; + private static final String IS_FUTURES = "is_futures"; + private static final String CURR_TAG = "curr_tag"; + + String isLeverage; + String inAssets; + String leverage; + String openLimit; + String valShort; + String valLong; + String valLongMargin; + String valLongAsset; + String assets; + String curLeverage; + String margin; + String limAll; + String avLimAll; + String lockedBuy; + String lockedBuyMargin; + String lockedBuyAsset; + String lockedSell; + String lockedValueCoef; + String inAllAssets; + String allAssets; + String profitLoss; + String rateChange; + String limBuy; + String limSell; + String limNonMargin; + String limBuyAsset; + String valShortNet; + String valLongNet; + String totalMoneyBal; + String totalLockedMoney; + String haircuts; + String assetsWithoutHc; + String statusCoef; + String varMargin; + String goForPositions; + String goForOrders; + String rateFutures; + String isQualClient; + String isFutures; + String currTag; @Getter(AccessLevel.NONE) - @JsonIgnore - private @NonFinal transient int hashCode; + @NonFinal + private transient int hashCode; @Getter(AccessLevel.NONE) - @JsonIgnore - private @NonFinal transient String asString; + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private PortfolioInfo( - final @JsonProperty("is_leverage") String isLeverage, - final @JsonProperty("in_assets") String inAssets, - final @JsonProperty("leverage") String leverage, - final @JsonProperty("open_limit") String openLimit, - final @JsonProperty("val_short") String valShort, - final @JsonProperty("val_long") String valLong, - final @JsonProperty("val_long_margin") String valLongMargin, - final @JsonProperty("val_long_asset") String valLongAsset, - final @JsonProperty("assets") String assets, - final @JsonProperty("cur_leverage") String curLeverage, - final @JsonProperty("margin") String margin, - final @JsonProperty("lim_all") String limAll, - final @JsonProperty("av_lim_all") String avLimAll, - final @JsonProperty("locked_buy") String lockedBuy, - final @JsonProperty("locked_buy_margin") String lockedBuyMargin, - final @JsonProperty("locked_buy_asset") String lockedBuyAsset, - final @JsonProperty("locked_sell") String lockedSell, - final @JsonProperty("locked_value_coef") String lockedValueCoef, - final @JsonProperty("in_all_assets") String inAllAssets, - final @JsonProperty("all_assets") String allAssets, - final @JsonProperty("profit_loss") String profitLoss, - final @JsonProperty("rate_change") String rateChange, - final @JsonProperty("lim_buy") String limBuy, - final @JsonProperty("lim_sell") String limSell, - final @JsonProperty("lim_non_margin") String limNonMargin, - final @JsonProperty("lim_buy_asset") String limBuyAsset, - final @JsonProperty("val_short_net") String valShortNet, - final @JsonProperty("val_long_net") String valLongNet, - final @JsonProperty("total_money_bal") String totalMoneyBal, - final @JsonProperty("total_locked_money") String totalLockedMoney, - final @JsonProperty("haircuts") String haircuts, - final @JsonProperty("assets_without_hc") String assetsWithoutHc, - final @JsonProperty("status_coef") String statusCoef, - final @JsonProperty("varmargin") String varMargin, - final @JsonProperty("go_for_positions") String goForPositions, - final @JsonProperty("go_for_orders") String goForOrders, - final @JsonProperty("rate_futures") String rateFutures, - final @JsonProperty("is_qual_client") String isQualClient, - final @JsonProperty("is_futures") String isFutures, - final @JsonProperty("curr_tag") String currTag) { + @JsonProperty(IS_LEVERAGE) final String isLeverage, + @JsonProperty(IN_ASSETS) final String inAssets, + @JsonProperty(LEVERAGE) final String leverage, + @JsonProperty(OPEN_LIMIT) final String openLimit, + @JsonProperty(VAL_SHORT) final String valShort, + @JsonProperty(VAL_LONG) final String valLong, + @JsonProperty(VAL_LONG_MARGIN) final String valLongMargin, + @JsonProperty(VAL_LONG_ASSET) final String valLongAsset, + @JsonProperty(ASSETS) final String assets, + @JsonProperty(CUR_LEVERAGE) final String curLeverage, + @JsonProperty(MARGIN) final String margin, + @JsonProperty(LIM_ALL) final String limAll, + @JsonProperty(AV_LIM_ALL) final String avLimAll, + @JsonProperty(LOCKED_BUY) final String lockedBuy, + @JsonProperty(LOCKED_BUY_MARGIN) final String lockedBuyMargin, + @JsonProperty(LOCKED_BUY_ASSET) final String lockedBuyAsset, + @JsonProperty(LOCKED_SELL) final String lockedSell, + @JsonProperty(LOCKED_VALUE_COEF) final String lockedValueCoef, + @JsonProperty(IN_ALL_ASSETS) final String inAllAssets, + @JsonProperty(ALL_ASSETS) final String allAssets, + @JsonProperty(PROFIT_LOSS) final String profitLoss, + @JsonProperty(RATE_CHANGE) final String rateChange, + @JsonProperty(LIM_BUY) final String limBuy, + @JsonProperty(LIM_SELL) final String limSell, + @JsonProperty(LIM_NON_MARGIN) final String limNonMargin, + @JsonProperty(LIM_BUY_ASSET) final String limBuyAsset, + @JsonProperty(VAL_SHORT_NET) final String valShortNet, + @JsonProperty(VAL_LONG_NET) final String valLongNet, + @JsonProperty(TOTAL_MONEY_BAL) final String totalMoneyBal, + @JsonProperty(TOTAL_LOCKED_MONEY) final String totalLockedMoney, + @JsonProperty(HAIRCUTS) final String haircuts, + @JsonProperty(ASSETS_WITHOUT_HC) final String assetsWithoutHc, + @JsonProperty(STATUS_COEF) final String statusCoef, + @JsonProperty(VAR_MARGIN) final String varMargin, + @JsonProperty(GO_FOR_POSITIONS) final String goForPositions, + @JsonProperty(GO_FOR_ORDERS) final String goForOrders, + @JsonProperty(RATE_FUTURES) final String rateFutures, + @JsonProperty(IS_QUAL_CLIENT) final String isQualClient, + @JsonProperty(IS_FUTURES) final String isFutures, + @JsonProperty(CURR_TAG) final String currTag) { this.isLeverage = isLeverage; this.inAssets = inAssets; @@ -255,46 +295,46 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("is_leverage", isLeverage) - .add("in_assets", inAssets) - .add("leverage", leverage) - .add("open_limit", openLimit) - .add("val_short", valShort) - .add("val_long", valLong) - .add("val_long_margin", valLongMargin) - .add("val_long_asset", valLongAsset) - .add("assets", assets) - .add("cur_leverage", curLeverage) - .add("margin", margin) - .add("lim_all", limAll) - .add("av_lim_all", avLimAll) - .add("locked_buy", lockedBuy) - .add("locked_buy_margin", lockedBuyMargin) - .add("locked_buy_asset", lockedBuyAsset) - .add("locked_sell", lockedSell) - .add("locked_value_coef", lockedValueCoef) - .add("in_all_assets", inAllAssets) - .add("all_assets", allAssets) - .add("profit_loss", profitLoss) - .add("rate_change", rateChange) - .add("lim_buy", limBuy) - .add("lim_sell", limSell) - .add("lim_non_margin", limNonMargin) - .add("lim_buy_asset", limBuyAsset) - .add("val_short_net", valShortNet) - .add("val_long_net", valLongNet) - .add("total_money_bal", totalMoneyBal) - .add("total_locked_money", totalLockedMoney) - .add("haircuts", haircuts) - .add("assets_without_hc", assetsWithoutHc) - .add("status_coef", statusCoef) - .add("varmargin", varMargin) - .add("go_for_positions", goForPositions) - .add("go_for_orders", goForOrders) - .add("rate_futures", rateFutures) - .add("is_qual_client", isQualClient) - .add("is_futures", isFutures) - .add("curr_tag", currTag) + .add(IS_LEVERAGE, isLeverage) + .add(IN_ASSETS, inAssets) + .add(LEVERAGE, leverage) + .add(OPEN_LIMIT, openLimit) + .add(VAL_SHORT, valShort) + .add(VAL_LONG, valLong) + .add(VAL_LONG_MARGIN, valLongMargin) + .add(VAL_LONG_ASSET, valLongAsset) + .add(ASSETS, assets) + .add(CUR_LEVERAGE, curLeverage) + .add(MARGIN, margin) + .add(LIM_ALL, limAll) + .add(AV_LIM_ALL, avLimAll) + .add(LOCKED_BUY, lockedBuy) + .add(LOCKED_BUY_MARGIN, lockedBuyMargin) + .add(LOCKED_BUY_ASSET, lockedBuyAsset) + .add(LOCKED_SELL, lockedSell) + .add(LOCKED_VALUE_COEF, lockedValueCoef) + .add(IN_ALL_ASSETS, inAllAssets) + .add(ALL_ASSETS, allAssets) + .add(PROFIT_LOSS, profitLoss) + .add(RATE_CHANGE, rateChange) + .add(LIM_BUY, limBuy) + .add(LIM_SELL, limSell) + .add(LIM_NON_MARGIN, limNonMargin) + .add(LIM_BUY_ASSET, limBuyAsset) + .add(VAL_SHORT_NET, valShortNet) + .add(VAL_LONG_NET, valLongNet) + .add(TOTAL_MONEY_BAL, totalMoneyBal) + .add(TOTAL_LOCKED_MONEY, totalLockedMoney) + .add(HAIRCUTS, haircuts) + .add(ASSETS_WITHOUT_HC, assetsWithoutHc) + .add(STATUS_COEF, statusCoef) + .add(VAR_MARGIN, varMargin) + .add(GO_FOR_POSITIONS, goForPositions) + .add(GO_FOR_ORDERS, goForOrders) + .add(RATE_FUTURES, rateFutures) + .add(IS_QUAL_CLIENT, isQualClient) + .add(IS_FUTURES, isFutures) + .add(CURR_TAG, currTag) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java index faa1cc2..4e407d8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/QuoteEventInfo.java @@ -1,25 +1,37 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value public class QuoteEventInfo { + private static final String CLASS_CODE = "class_code"; + private static final String SECURITY_CODE = "sec_code"; + String classCode; String secCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder - private QuoteEventInfo(final String classCode, final String secCode) { + private QuoteEventInfo( + @JsonProperty(value = CLASS_CODE,required = true) @NonNull final String classCode, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode) { + this.classCode = classCode; this.secCode = secCode; } @@ -48,13 +60,14 @@ public int hashCode() { return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("class_code", classCode) - .add("sec_code", secCode) + .add(CLASS_CODE, classCode) + .add(SECURITY_CODE, secCode) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/RequestEnvelope.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/RequestEnvelope.java new file mode 100644 index 0000000..199d9b5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/RequestEnvelope.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.RemoteProcedureClassJsonSerde; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.google.common.base.MoreObjects; +import lombok.NonNull; +import lombok.Value; +import org.jetbrains.annotations.NotNull; + +import static com.fasterxml.jackson.annotation.JsonInclude.Include; + +@Value +public class RequestEnvelope { + + @JsonProperty("method") + @JsonSerialize(using = RemoteProcedureClassJsonSerde.Serializer.class) + Class remoteProcedureClass; + + @JsonProperty("args") + @JsonInclude(Include.NON_NULL) + RpcArgs args; + + public RequestEnvelope(@NonNull @NotNull final Class remoteProcedureClass, final RpcArgs args) { + + this.remoteProcedureClass = remoteProcedureClass; + this.args = args; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("remoteProcedureClass", remoteProcedureClass) + .add("args", args) + .toString(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java index 22cd394..96242f6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/ResponseEnvelope.java @@ -1,12 +1,15 @@ package com.enfernuz.quik.lua.rpc.api.structures; import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.serde.json.jackson.ResponseEnvelopeJsonDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.google.common.base.MoreObjects; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +@JsonDeserialize(using = ResponseEnvelopeJsonDeserializer.class) @Value public class ResponseEnvelope { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java index 0388dee..606f98a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Security.java @@ -14,18 +14,18 @@ @Value public class Security { - private static final String CODE_FIELD = "code"; - private static final String NAME_FIELD = "name"; - private static final String SHORT_NAME_FIELD = "short_name"; - private static final String CLASS_CODE_FIELD = "class_code"; - private static final String CLASS_NAME_FIELD = "class_name"; - private static final String FACE_VALUE_FIELD = "face_value"; - private static final String FACE_UNIT_FIELD = "face_unit"; - private static final String SCALE_FIELD = "scale"; - private static final String MAT_DATE_FIELD = "mat_date"; - private static final String LOT_SIZE_FIELD = "lot_size"; - private static final String ISIN_CODE_FIELD = "isin_code"; - private static final String MIN_PRICE_STEP_FIELD = "min_price_step"; + private static final String CODE = "code"; + private static final String NAME = "name"; + private static final String SHORT_NAME = "short_name"; + private static final String CLASS_CODE = "class_code"; + private static final String CLASS_NAME = "class_name"; + private static final String FACE_VALUE = "face_value"; + private static final String FACE_UNIT = "face_unit"; + private static final String SCALE = "scale"; + private static final String MATURITY_DATE = "mat_date"; + private static final String LOT_SIZE = "lot_size"; + private static final String ISIN_CODE = "isin_code"; + private static final String MIN_PRICE_STEP = "min_price_step"; String code; String name; @@ -40,24 +40,29 @@ public class Security { String isinCode; String minPriceStep; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; - @Builder @JsonCreator + @Builder private Security( - @JsonProperty(CODE_FIELD) final String code, - @JsonProperty(NAME_FIELD) final String name, - @JsonProperty(SHORT_NAME_FIELD) final String shortName, - @JsonProperty(CLASS_CODE_FIELD) final String classCode, - @JsonProperty(CLASS_NAME_FIELD) final String className, - @JsonProperty(FACE_VALUE_FIELD) final String faceValue, - @JsonProperty(FACE_UNIT_FIELD) final String faceUnit, - @JsonProperty(SCALE_FIELD) final String scale, - @JsonProperty(MAT_DATE_FIELD) final String matDate, - @JsonProperty(LOT_SIZE_FIELD) final String lotSize, - @JsonProperty(ISIN_CODE_FIELD) final String isinCode, - @JsonProperty(MIN_PRICE_STEP_FIELD) final String minPriceStep) { + @JsonProperty(CODE) final String code, + @JsonProperty(NAME) final String name, + @JsonProperty(SHORT_NAME) final String shortName, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(CLASS_NAME) final String className, + @JsonProperty(FACE_VALUE) final String faceValue, + @JsonProperty(FACE_UNIT) final String faceUnit, + @JsonProperty(SCALE) final String scale, + @JsonProperty(MATURITY_DATE) final String matDate, + @JsonProperty(LOT_SIZE) final String lotSize, + @JsonProperty(ISIN_CODE) final String isinCode, + @JsonProperty(MIN_PRICE_STEP) final String minPriceStep) { this.code = code; this.name = name; @@ -125,18 +130,18 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add(CODE_FIELD, code) - .add(NAME_FIELD, name) - .add(SHORT_NAME_FIELD, shortName) - .add(CLASS_CODE_FIELD, classCode) - .add(CLASS_NAME_FIELD, className) - .add(FACE_VALUE_FIELD, faceValue) - .add(FACE_UNIT_FIELD, faceUnit) - .add(SCALE_FIELD, scale) - .add(MAT_DATE_FIELD, matDate) - .add(LOT_SIZE_FIELD, lotSize) - .add(ISIN_CODE_FIELD, isinCode) - .add(MIN_PRICE_STEP_FIELD, minPriceStep) + .add(CODE, code) + .add(NAME, name) + .add(SHORT_NAME, shortName) + .add(CLASS_CODE, classCode) + .add(CLASS_NAME, className) + .add(FACE_VALUE, faceValue) + .add(FACE_UNIT, faceUnit) + .add(SCALE, scale) + .add(MATURITY_DATE, matDate) + .add(LOT_SIZE, lotSize) + .add(ISIN_CODE, isinCode) + .add(MIN_PRICE_STEP, minPriceStep) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java index e454c3a..e272a67 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopEventInfo.java @@ -1,17 +1,63 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.Value; +import org.jetbrains.annotations.NotNull; @Value public class StopEventInfo { - int signal; + private static final String FLAG = "flag"; + private static final int FLAG_FROM_DIALOG_WINDOW = 1; + private static final int FLAG_FROM_TERMINAL_CLOSURE = 2; + + int flag; + + @JsonCreator + public static StopEventInfo getInstance(@JsonProperty(value = FLAG, required = true) final int flag) { + + switch (flag) { + case FLAG_FROM_DIALOG_WINDOW: + return InstanceHolder.FROM_DIALOG_WINDOW; + case FLAG_FROM_TERMINAL_CLOSURE: + return InstanceHolder.FROM_TERMINAL_CLOSURE; + default: + return new StopEventInfo(flag); + } + } + + private StopEventInfo(final int flag) { + this.flag = flag; + } + + public boolean isFromDialogWindow() { + return flag == FLAG_FROM_DIALOG_WINDOW; + } + + public boolean isFromTerminalClosure() { + return flag == FLAG_FROM_TERMINAL_CLOSURE; + } + + @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("signal", signal) + .add(FLAG, flag) .toString(); } + + private static final class InstanceHolder { + + private static final StopEventInfo FROM_DIALOG_WINDOW = new StopEventInfo(FLAG_FROM_DIALOG_WINDOW); + private static final StopEventInfo FROM_TERMINAL_CLOSURE = new StopEventInfo(FLAG_FROM_TERMINAL_CLOSURE); + + // sanity check + static { + assert FROM_DIALOG_WINDOW.isFromDialogWindow(); + assert FROM_TERMINAL_CLOSURE.isFromTerminalClosure(); + } + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java index 83080fa..e6e4371 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/StopOrder.java @@ -1,16 +1,54 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; +import org.jetbrains.annotations.NotNull; import java.util.Objects; @Value -public class StopOrder { +public class StopOrder implements Comparable { + + private static final String ORDER_NUMBER = "order_num"; + private static final String ORDER_TIME = "ordertime"; + private static final String FLAGS = "flags"; + private static final String BROKER_REF = "brokerref"; + private static final String FIRM_ID = "firmid"; + private static final String ACCOUNT = "account"; + private static final String CONDITION = "condition"; + private static final String CONDITION_PRICE = "condition_price"; + private static final String PRICE = "price"; + private static final String QUANTITY = "qty"; + private static final String LINKED_ORDER = "linkedorder"; + private static final String EXPIRY = "expiry"; + private static final String TRANSACTION_ID = "trans_id"; + private static final String CLIENT_CODE = "client_code"; + private static final String CO_ORDER_NUMBER = "co_order_num"; + private static final String CO_ORDER_PRICE = "co_order_price"; + private static final String STOP_ORDER_TYPE = "stop_order_type"; + private static final String ORDER_DATE = "orderdate"; + private static final String ALL_TRADE_NUMBER = "alltrade_num"; + private static final String STOP_FLAGS = "stopflags"; + private static final String OFFSET = "offset"; + private static final String SPREAD = "spread"; + private static final String BALANCE = "balance"; + private static final String UID = "uid"; + private static final String FILLED_QUANTITY = "filled_qty"; + private static final String WITHDRAW_TIME = "withdraw_time"; + private static final String CONDITION_PRICE_2 = "condition_price2"; + private static final String ACTIVE_FROM_TIME = "active_from_time"; + private static final String ACTIVE_TO_TIME = "active_to_time"; + private static final String SECURITY_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String CONDITION_SECURITY_CODE = "condition_sec_code"; + private static final String CONDITION_CLASS_CODE = "condition_class_code"; + private static final String CANCELED_UID = "canceled_uid"; + private static final String ORDER_DATE_TIME = "order_date_time"; + private static final String WITHDRAW_DATE_TIME = "withdraw_datetime"; + private static final String ACTIVATION_DATE_TIME = "activation_date_time"; long orderNum; String orderTime; @@ -48,48 +86,56 @@ public class StopOrder { String canceledUid; DateTimeEntry orderDateTime; DateTimeEntry withdrawDateTime; + DateTimeEntry activationDateTime; + + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private StopOrder( - final long orderNum, - final String orderTime, - final int flags, - final String brokerRef, - final String firmId, - final String account, - final int condition, - final String conditionPrice, - final String price, - final int qty, - final String linkedOrder, - final String expiry, - final String transId, - final String clientCode, - final String coOrderNum, - final String coOrderPrice, - final int stopOrderType, - final String orderDate, - final String allTradeNum, - final int stopFlags, - final String offset, - final String spread, - final String balance, - final String uid, - final int filledQty, - final String withdrawTime, - final String conditionPrice2, - final String activeFromTime, - final String activeToTime, - final String secCode, - final String classCode, - final String conditionSecCode, - final String conditionClassCode, - final String canceledUid, - final DateTimeEntry orderDateTime, - final DateTimeEntry withdrawDateTime) { + @JsonProperty(value = ORDER_NUMBER, required = true) final long orderNum, + @JsonProperty(ORDER_TIME) final String orderTime, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(value = CONDITION, required = true) final int condition, + @JsonProperty(value = CONDITION_PRICE, required = true) @NonNull final String conditionPrice, + @JsonProperty(value = PRICE, required = true) @NonNull final String price, + @JsonProperty(value = QUANTITY, required = true) final int qty, + @JsonProperty(LINKED_ORDER) final String linkedOrder, + @JsonProperty(EXPIRY) final String expiry, + @JsonProperty(TRANSACTION_ID) final String transId, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(CO_ORDER_NUMBER) final String coOrderNum, + @JsonProperty(CO_ORDER_PRICE) final String coOrderPrice, + @JsonProperty(value = STOP_ORDER_TYPE, required = true) final int stopOrderType, + @JsonProperty(ORDER_DATE) final String orderDate, + @JsonProperty(ALL_TRADE_NUMBER) final String allTradeNum, + @JsonProperty(value = STOP_FLAGS, required = true) final int stopFlags, + @JsonProperty(OFFSET) final String offset, + @JsonProperty(SPREAD) final String spread, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(UID) final String uid, + @JsonProperty(value = FILLED_QUANTITY, required = true) final int filledQty, + @JsonProperty(WITHDRAW_TIME) final String withdrawTime, + @JsonProperty(CONDITION_PRICE_2) final String conditionPrice2, + @JsonProperty(ACTIVE_FROM_TIME) final String activeFromTime, + @JsonProperty(ACTIVE_TO_TIME) final String activeToTime, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(CONDITION_SECURITY_CODE) final String conditionSecCode, + @JsonProperty(CONDITION_CLASS_CODE) final String conditionClassCode, + @JsonProperty(CANCELED_UID) final String canceledUid, + @JsonProperty(value = ORDER_DATE_TIME, required = true) @NonNull final DateTimeEntry orderDateTime, + @JsonProperty(WITHDRAW_DATE_TIME) final DateTimeEntry withdrawDateTime, + @JsonProperty(ACTIVATION_DATE_TIME) final DateTimeEntry activationDateTime) { this.orderNum = orderNum; this.orderTime = orderTime; @@ -127,6 +173,12 @@ private StopOrder( this.canceledUid = canceledUid; this.orderDateTime = orderDateTime; this.withdrawDateTime = withdrawDateTime; + this.activationDateTime = activationDateTime; + } + + @Override + public int compareTo(@NotNull final StopOrder other) { + return orderDateTime.compareTo(other.orderDateTime); } @Override @@ -173,7 +225,8 @@ public boolean equals(final Object o) { Objects.equals(conditionClassCode, stopOrder.conditionClassCode) && Objects.equals(canceledUid, stopOrder.canceledUid) && Objects.equals(orderDateTime, stopOrder.orderDateTime) && - Objects.equals(withdrawDateTime, stopOrder.withdrawDateTime); + Objects.equals(withdrawDateTime, stopOrder.withdrawDateTime) && + Objects.equals(activationDateTime, stopOrder.activationDateTime); } } @@ -217,54 +270,57 @@ public int hashCode() { conditionClassCode, canceledUid, orderDateTime, - withdrawDateTime + withdrawDateTime, + activationDateTime ); } return hashCode; } + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("order_num", orderNum) - .add("ordertime", orderTime) - .add("flags", flags) - .add("brokerref", brokerRef) - .add("firmid", firmId) - .add("account", account) - .add("condition", condition) - .add("condition_price", conditionPrice) - .add("price", price) - .add("qty", qty) - .add("linkedorder", linkedOrder) - .add("expiry", expiry) - .add("trans_id", transId) - .add("client_code", clientCode) - .add("co_order_num", coOrderNum) - .add("co_order_price", coOrderPrice) - .add("stop_order_type", stopOrderType) - .add("orderdate", orderDate) - .add("alltrade_num", allTradeNum) - .add("stopflags", stopFlags) - .add("offset", offset) - .add("spread", spread) - .add("balance", balance) - .add("uid", uid) - .add("filled_qty", filledQty) - .add("withdraw_time", withdrawTime) - .add("condition_price2", conditionPrice2) - .add("active_from_time", activeFromTime) - .add("active_to_time", activeToTime) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("condition_sec_code", conditionSecCode) - .add("condition_class_code", conditionClassCode) - .add("canceled_uid", canceledUid) - .add("order_date_time", orderDateTime) - .add("withdraw_datetime", withdrawDateTime) + .add(ORDER_NUMBER, orderNum) + .add(ORDER_TIME, orderTime) + .add(FLAGS, flags) + .add(BROKER_REF, brokerRef) + .add(FIRM_ID, firmId) + .add(ACCOUNT, account) + .add(CONDITION, condition) + .add(CONDITION_PRICE, conditionPrice) + .add(PRICE, price) + .add(QUANTITY, qty) + .add(LINKED_ORDER, linkedOrder) + .add(EXPIRY, expiry) + .add(TRANSACTION_ID, transId) + .add(CLIENT_CODE, clientCode) + .add(CO_ORDER_NUMBER, coOrderNum) + .add(CO_ORDER_PRICE, coOrderPrice) + .add(STOP_ORDER_TYPE, stopOrderType) + .add(ORDER_DATE, orderDate) + .add(ALL_TRADE_NUMBER, allTradeNum) + .add(STOP_FLAGS, stopFlags) + .add(OFFSET, offset) + .add(SPREAD, spread) + .add(BALANCE, balance) + .add(UID, uid) + .add(FILLED_QUANTITY, filledQty) + .add(WITHDRAW_TIME, withdrawTime) + .add(CONDITION_PRICE_2, conditionPrice2) + .add(ACTIVE_FROM_TIME, activeFromTime) + .add(ACTIVE_TO_TIME, activeToTime) + .add(SECURITY_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(CONDITION_SECURITY_CODE, conditionSecCode) + .add(CONDITION_CLASS_CODE, conditionClassCode) + .add(CANCELED_UID, canceledUid) + .add(ORDER_DATE_TIME, orderDateTime) + .add(WITHDRAW_DATE_TIME, withdrawDateTime) + .add(ACTIVATION_DATE_TIME, activationDateTime) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java index e9c0014..22b7088 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Trade.java @@ -1,5 +1,7 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; @@ -7,11 +9,80 @@ import lombok.Value; import lombok.experimental.NonFinal; -import java.util.Objects; - @Value public class Trade { + private static final String TRADE_NUM = "trade_num"; + private static final String ORDER_NUM = "order_num"; + private static final String BROKER_REF = "brokerref"; + private static final String USER_ID = "userid"; + private static final String FIRM_ID = "firmid"; + private static final String CANCELED_UID = "canceled_uid"; + private static final String ACCOUNT = "account"; + private static final String PRICE = "price"; + private static final String QUANTITY = "qty"; + private static final String VALUE = "value"; + private static final String ACCRUED_INTEREST = "accruedint"; + private static final String YIELD = "yield"; + private static final String SETTLE_CODE = "settlecode"; + private static final String COUNTERPARTY_FIRM_ID = "cpfirmid"; + private static final String FLAGS = "flags"; + private static final String PRICE_2 = "price2"; + private static final String REPO_RATE = "reporate"; + private static final String CLIENT_CODE = "client_code"; + private static final String ACCRUED_2 = "accrued2"; + private static final String REPO_TERM = "repoterm"; + private static final String REPO_VALUE = "repovalue"; + private static final String REPO_2_VALUE = "repo2value"; + private static final String START_DISCOUNT = "start_discount"; + private static final String LOWER_DISCOUNT = "lower_discount"; + private static final String UPPER_DISCOUNT = "upper_discount"; + private static final String BLOCK_SECURITIES = "block_securities"; + private static final String CLEARING_COMISSION = "clearing_comission"; + private static final String EXCHANGE_COMISSION = "exchange_comission"; + private static final String TECH_CENTER_COMISSION = "tech_center_comission"; + private static final String SETTLE_DATE = "settle_date"; + private static final String SETTLE_CURRENCY = "settle_currency"; + private static final String TRADE_CURRENCY = "trade_currency"; + private static final String EXCHANGE_CODE = "exchange_code"; + private static final String STATION_ID = "station_id"; + private static final String SECURITY_CODE = "sec_code"; + private static final String CLASS_CODE = "class_code"; + private static final String DATETIME = "datetime"; + private static final String BANK_ACC_ID = "bank_acc_id"; + private static final String BROKER_COMISSION = "broker_comission"; + private static final String LINKED_TRADE = "linked_trade"; + private static final String PERIOD = "period"; + private static final String TRANS_ID = "trans_id"; + private static final String KIND = "kind"; + private static final String CLEARING_BANK_ACC_ID = "clearing_bank_accid"; + private static final String CANCELED_DATETIME = "canceled_datetime"; + private static final String CLEARING_FIRM_ID = "clearing_firmid"; + private static final String SYSTEM_REF = "system_ref"; + private static final String UID = "uid"; + private static final String L_SECURITY_CODE = "lseccode"; + private static final String ORDER_REVISION_NUMBER = "order_revision_number"; + private static final String ORDER_QUANTITY = "order_qty"; + private static final String ORDER_PRICE = "order_price"; + private static final String ORDER_EXCHANGE_CODE = "order_exchange_code"; + private static final String EXEC_MARKET = "exec_market"; + private static final String LIQUIDITY_INDICATOR = "liquidity_indicator"; + private static final String EXT_REF = "extref"; + private static final String EXT_TRADE_FLAGS = "ext_trade_flags"; + private static final String ON_BEHALF_OF_UID = "on_behalf_of_uid"; + private static final String CLIENT_QUALIFIER = "client_qualifier"; + private static final String CLIENT_SHORT_CODE = "client_short_code"; + private static final String INVESTMENT_DECISION_MAKER_QUALIFIER = "investment_decision_maker_qualifier"; + private static final String INVESTMENT_DECISION_MAKER_SHORT_CODE = "investment_decision_maker_short_code"; + private static final String EXECUTING_TRADER_QUALIFIER = "executing_trader_qualifier"; + private static final String EXECUTING_TRADER_SHORT_CODE = "executing_trader_short_code"; + private static final String WAIVER_FLAG = "waiver_flag"; + private static final String MLEG_BASE_SID = "mleg_base_sid"; + private static final String SIDE_QUALIFIER = "side_qualifier"; + private static final String OTC_POST_TRADE_INDICATOR = "otc_post_trade_indicator"; + private static final String CAPACITY = "capacity"; + private static final String CROSS_RATE = "cross_rate"; + long tradeNum; long orderNum; String brokerRef; @@ -60,60 +131,110 @@ public class Trade { String clearingFirmId; String systemRef; String uid; + String lSecCode; + String orderRevisionNumber; + String orderQty; + String orderPrice; + String orderExchangeCode; + String execMarket; + int liquidityIndicator; + String extRef; + String extTradeFlags; + String onBehalfOfUid; + int clientQualifier; + String clientShortCode; + int investmentDecisionMakerQualifier; + String investmentDecisionMakerShortCode; + int executingTraderQualifier; + String executingTraderShortCode; + int waiverFlag; + String mlegBaseSid; + int sideQualifier; + int otcPostTradeIndicator; + int capacity; + String crossRate; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient int hashCode; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + + @JsonCreator @Builder private Trade( - final long tradeNum, - final long orderNum, - final String brokerRef, - final String userId, - final String firmId, - final String canceledUid, - final String account, - final String price, - final int qty, - final String value, - final String accruedInt, - final String yield, - final String settleCode, - final String cpFirmId, - final int flags, - final String price2, - final String repoRate, - final String clientCode, - final String accrued2, - final String repoTerm, - final String repoValue, - final String repo2Value, - final String startDiscount, - final String lowerDiscount, - final String upperDiscount, - final String blockSecurities, - final String clearingComission, - final String exchangeComission, - final String techCenterComission, - final String settleDate, - final String settleCurrency, - final String tradeCurrency, - final String exchangeCode, - final String stationId, - final String secCode, - final String classCode, - final DateTimeEntry datetime, - final String bankAccId, - final String brokerComission, - final String linkedTrade, - final int period, - final String transId, - final int kind, - final String clearingBankAccId, - final DateTimeEntry canceledDatetime, - final String clearingFirmId, - final String systemRef, - final String uid) { + @JsonProperty(value = TRADE_NUM, required = true) final long tradeNum, + @JsonProperty(value = ORDER_NUM, required = true) final long orderNum, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(USER_ID) final String userId, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(CANCELED_UID) final String canceledUid, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(value = QUANTITY, required = true) final int qty, + @JsonProperty(value = VALUE, required = true) final String value, + @JsonProperty(ACCRUED_INTEREST) final String accruedInt, + @JsonProperty(YIELD) final String yield, + @JsonProperty(SETTLE_CODE) final String settleCode, + @JsonProperty(COUNTERPARTY_FIRM_ID) final String cpFirmId, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(PRICE_2) final String price2, + @JsonProperty(REPO_RATE) final String repoRate, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(ACCRUED_2) final String accrued2, + @JsonProperty(REPO_TERM) final String repoTerm, + @JsonProperty(REPO_VALUE) final String repoValue, + @JsonProperty(REPO_2_VALUE) final String repo2Value, + @JsonProperty(START_DISCOUNT) final String startDiscount, + @JsonProperty(LOWER_DISCOUNT) final String lowerDiscount, + @JsonProperty(UPPER_DISCOUNT) final String upperDiscount, + @JsonProperty(BLOCK_SECURITIES) final String blockSecurities, + @JsonProperty(CLEARING_COMISSION) final String clearingComission, + @JsonProperty(EXCHANGE_COMISSION) final String exchangeComission, + @JsonProperty(TECH_CENTER_COMISSION) final String techCenterComission, + @JsonProperty(SETTLE_DATE) final String settleDate, + @JsonProperty(SETTLE_CURRENCY) final String settleCurrency, + @JsonProperty(TRADE_CURRENCY) final String tradeCurrency, + @JsonProperty(EXCHANGE_CODE) final String exchangeCode, + @JsonProperty(STATION_ID) final String stationId, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(value = DATETIME, required = true) final DateTimeEntry datetime, + @JsonProperty(BANK_ACC_ID) final String bankAccId, + @JsonProperty(BROKER_COMISSION) final String brokerComission, + @JsonProperty(LINKED_TRADE) final String linkedTrade, + @JsonProperty(value = PERIOD, required = true) final int period, + @JsonProperty(TRANS_ID) final String transId, + @JsonProperty(value = KIND, required = true) final int kind, + @JsonProperty(CLEARING_BANK_ACC_ID) final String clearingBankAccId, + @JsonProperty(CANCELED_DATETIME) final DateTimeEntry canceledDatetime, + @JsonProperty(CLEARING_FIRM_ID) final String clearingFirmId, + @JsonProperty(SYSTEM_REF) final String systemRef, + @JsonProperty(UID) final String uid, + @JsonProperty(L_SECURITY_CODE) final String lSecCode, + @JsonProperty(ORDER_REVISION_NUMBER) final String orderRevisionNumber, + @JsonProperty(ORDER_QUANTITY) final String orderQty, + @JsonProperty(ORDER_PRICE) final String orderPrice, + @JsonProperty(ORDER_EXCHANGE_CODE) final String orderExchangeCode, + @JsonProperty(EXEC_MARKET) final String execMarket, + @JsonProperty(value = LIQUIDITY_INDICATOR, required = true) final int liquidityIndicator, + @JsonProperty(EXT_REF) final String extRef, + @JsonProperty(EXT_TRADE_FLAGS) final String extTradeFlags, + @JsonProperty(ON_BEHALF_OF_UID) final String onBehalfOfUid, + @JsonProperty(value = CLIENT_QUALIFIER, required = true) final int clientQualifier, + @JsonProperty(CLIENT_SHORT_CODE) final String clientShortCode, + @JsonProperty(value = INVESTMENT_DECISION_MAKER_QUALIFIER, required = true) final int investmentDecisionMakerQualifier, + @JsonProperty(INVESTMENT_DECISION_MAKER_SHORT_CODE) final String investmentDecisionMakerShortCode, + @JsonProperty(value = EXECUTING_TRADER_QUALIFIER, required = true) final int executingTraderQualifier, + @JsonProperty(EXECUTING_TRADER_SHORT_CODE) final String executingTraderShortCode, + @JsonProperty(value = WAIVER_FLAG, required = true) final int waiverFlag, + @JsonProperty(MLEG_BASE_SID) final String mlegBaseSid, + @JsonProperty(value = SIDE_QUALIFIER, required = true) final int sideQualifier, + @JsonProperty(value = OTC_POST_TRADE_INDICATOR, required = true) final int otcPostTradeIndicator, + @JsonProperty(value = CAPACITY, required = true) final int capacity, + @JsonProperty(CROSS_RATE) final String crossRate) { this.tradeNum = tradeNum; this.orderNum = orderNum; @@ -163,125 +284,28 @@ private Trade( this.clearingFirmId = clearingFirmId; this.systemRef = systemRef; this.uid = uid; - } - - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof Trade) ) { - return false; - } else { - final Trade trade = (Trade) o; - return tradeNum == trade.tradeNum && - orderNum == trade.orderNum && - qty == trade.qty && - flags == trade.flags && - period == trade.period && - kind == trade.kind && - Objects.equals(brokerRef, trade.brokerRef) && - Objects.equals(userId, trade.userId) && - Objects.equals(firmId, trade.firmId) && - Objects.equals(canceledUid, trade.canceledUid) && - Objects.equals(account, trade.account) && - Objects.equals(price, trade.price) && - Objects.equals(value, trade.value) && - Objects.equals(accruedInt, trade.accruedInt) && - Objects.equals(yield, trade.yield) && - Objects.equals(settleCode, trade.settleCode) && - Objects.equals(cpFirmId, trade.cpFirmId) && - Objects.equals(price2, trade.price2) && - Objects.equals(repoRate, trade.repoRate) && - Objects.equals(clientCode, trade.clientCode) && - Objects.equals(accrued2, trade.accrued2) && - Objects.equals(repoTerm, trade.repoTerm) && - Objects.equals(repoValue, trade.repoValue) && - Objects.equals(repo2Value, trade.repo2Value) && - Objects.equals(startDiscount, trade.startDiscount) && - Objects.equals(lowerDiscount, trade.lowerDiscount) && - Objects.equals(upperDiscount, trade.upperDiscount) && - Objects.equals(blockSecurities, trade.blockSecurities) && - Objects.equals(clearingComission, trade.clearingComission) && - Objects.equals(exchangeComission, trade.exchangeComission) && - Objects.equals(techCenterComission, trade.techCenterComission) && - Objects.equals(settleDate, trade.settleDate) && - Objects.equals(settleCurrency, trade.settleCurrency) && - Objects.equals(tradeCurrency, trade.tradeCurrency) && - Objects.equals(exchangeCode, trade.exchangeCode) && - Objects.equals(stationId, trade.stationId) && - Objects.equals(secCode, trade.secCode) && - Objects.equals(classCode, trade.classCode) && - Objects.equals(datetime, trade.datetime) && - Objects.equals(bankAccId, trade.bankAccId) && - Objects.equals(brokerComission, trade.brokerComission) && - Objects.equals(linkedTrade, trade.linkedTrade) && - Objects.equals(transId, trade.transId) && - Objects.equals(clearingBankAccId, trade.clearingBankAccId) && - Objects.equals(canceledDatetime, trade.canceledDatetime) && - Objects.equals(clearingFirmId, trade.clearingFirmId) && - Objects.equals(systemRef, trade.systemRef) && - Objects.equals(uid, trade.uid); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - tradeNum, - orderNum, - brokerRef, - userId, - firmId, - canceledUid, - account, - price, - qty, - value, - accruedInt, - yield, - settleCode, - cpFirmId, - flags, - price2, - repoRate, - clientCode, - accrued2, - repoTerm, - repoValue, - repo2Value, - startDiscount, - lowerDiscount, - upperDiscount, - blockSecurities, - clearingComission, - exchangeComission, - techCenterComission, - settleDate, - settleCurrency, - tradeCurrency, - exchangeCode, - stationId, - secCode, - classCode, - datetime, - bankAccId, - brokerComission, - linkedTrade, - period, - transId, - kind, - clearingBankAccId, - canceledDatetime, - clearingFirmId, - systemRef, - uid - ); - } - - return hashCode; + this.lSecCode = lSecCode; + this.orderRevisionNumber = orderRevisionNumber; + this.orderQty = orderQty; + this.orderPrice = orderPrice; + this.orderExchangeCode = orderExchangeCode; + this.execMarket = execMarket; + this.liquidityIndicator = liquidityIndicator; + this.extRef = extRef; + this.extTradeFlags = extTradeFlags; + this.onBehalfOfUid = onBehalfOfUid; + this.clientQualifier = clientQualifier; + this.clientShortCode = clientShortCode; + this.investmentDecisionMakerQualifier = investmentDecisionMakerQualifier; + this.investmentDecisionMakerShortCode = investmentDecisionMakerShortCode; + this.executingTraderQualifier = executingTraderQualifier; + this.executingTraderShortCode = executingTraderShortCode; + this.waiverFlag = waiverFlag; + this.mlegBaseSid = mlegBaseSid; + this.sideQualifier = sideQualifier; + this.otcPostTradeIndicator = otcPostTradeIndicator; + this.capacity = capacity; + this.crossRate = crossRate; } @Override @@ -289,54 +313,76 @@ public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("trade_num", tradeNum) - .add("order_num", orderNum) - .add("brokerref", brokerRef) - .add("userid", userId) - .add("firmid", firmId) - .add("canceled_uid", canceledUid) - .add("account", account) - .add("price", price) - .add("qty", qty) - .add("value", value) - .add("accruedint", accruedInt) - .add("yield", yield) - .add("settlecode", settleCode) - .add("cpfirmid", cpFirmId) - .add("flags", flags) - .add("price2", price2) - .add("reporate", repoRate) - .add("client_code", clientCode) - .add("accrued2", accrued2) - .add("repoterm", repoTerm) - .add("repovalue", repoValue) - .add("repo2value", repo2Value) - .add("start_discount", startDiscount) - .add("lower_discount", lowerDiscount) - .add("upper_discount", upperDiscount) - .add("block_securities", blockSecurities) - .add("clearing_comission", clearingComission) - .add("exchange_comission", exchangeComission) - .add("tech_center_comission", techCenterComission) - .add("settle_date", settleDate) - .add("settle_currency", settleCurrency) - .add("trade_currency", tradeCurrency) - .add("exchange_code", exchangeCode) - .add("station_id", stationId) - .add("sec_code", secCode) - .add("class_code", classCode) - .add("datetime", datetime) - .add("bank_acc_id", bankAccId) - .add("broker_comission", brokerComission) - .add("linked_trade", linkedTrade) - .add("period", period) - .add("trans_id", transId) - .add("kind", kind) - .add("clearing_bank_accid", clearingBankAccId) - .add("canceled_datetime", canceledDatetime) - .add("clearing_firmid", clearingFirmId) - .add("system_ref", systemRef) - .add("uid", uid) + .add(TRADE_NUM, tradeNum) + .add(ORDER_NUM, orderNum) + .add(BROKER_REF, brokerRef) + .add(USER_ID, userId) + .add(FIRM_ID, firmId) + .add(CANCELED_UID, canceledUid) + .add(ACCOUNT, account) + .add(PRICE, price) + .add(QUANTITY, qty) + .add(VALUE, value) + .add(ACCRUED_INTEREST, accruedInt) + .add(YIELD, yield) + .add(SETTLE_CODE, settleCode) + .add(COUNTERPARTY_FIRM_ID, cpFirmId) + .add(FLAGS, flags) + .add(PRICE_2, price2) + .add(REPO_RATE, repoRate) + .add(CLIENT_CODE, clientCode) + .add(ACCRUED_2, accrued2) + .add(REPO_TERM, repoTerm) + .add(REPO_VALUE, repoValue) + .add(REPO_2_VALUE, repo2Value) + .add(START_DISCOUNT, startDiscount) + .add(LOWER_DISCOUNT, lowerDiscount) + .add(UPPER_DISCOUNT, upperDiscount) + .add(BLOCK_SECURITIES, blockSecurities) + .add(CLEARING_COMISSION, clearingComission) + .add(EXCHANGE_COMISSION, exchangeComission) + .add(TECH_CENTER_COMISSION, techCenterComission) + .add(SETTLE_DATE, settleDate) + .add(SETTLE_CURRENCY, settleCurrency) + .add(TRADE_CURRENCY, tradeCurrency) + .add(EXCHANGE_CODE, exchangeCode) + .add(STATION_ID, stationId) + .add(SECURITY_CODE, secCode) + .add(CLASS_CODE, classCode) + .add(DATETIME, datetime) + .add(BANK_ACC_ID, bankAccId) + .add(BROKER_COMISSION, brokerComission) + .add(LINKED_TRADE, linkedTrade) + .add(PERIOD, period) + .add(TRANS_ID, transId) + .add(KIND, kind) + .add(CLEARING_BANK_ACC_ID, clearingBankAccId) + .add(CANCELED_DATETIME, canceledDatetime) + .add(CLEARING_FIRM_ID, clearingFirmId) + .add(SYSTEM_REF, systemRef) + .add(UID, uid) + .add(L_SECURITY_CODE, lSecCode) + .add(ORDER_REVISION_NUMBER, orderRevisionNumber) + .add(ORDER_QUANTITY, orderQty) + .add(ORDER_PRICE, orderPrice) + .add(ORDER_EXCHANGE_CODE, orderExchangeCode) + .add(EXEC_MARKET, execMarket) + .add(LIQUIDITY_INDICATOR, liquidityIndicator) + .add(EXT_REF, extRef) + .add(EXT_TRADE_FLAGS, extTradeFlags) + .add(ON_BEHALF_OF_UID, onBehalfOfUid) + .add(CLIENT_QUALIFIER, clientQualifier) + .add(CLIENT_SHORT_CODE, clientShortCode) + .add(INVESTMENT_DECISION_MAKER_QUALIFIER, investmentDecisionMakerQualifier) + .add(INVESTMENT_DECISION_MAKER_SHORT_CODE, investmentDecisionMakerShortCode) + .add(EXECUTING_TRADER_QUALIFIER, executingTraderQualifier) + .add(EXECUTING_TRADER_SHORT_CODE, executingTraderShortCode) + .add(WAIVER_FLAG, waiverFlag) + .add(MLEG_BASE_SID, mlegBaseSid) + .add(SIDE_QUALIFIER, sideQualifier) + .add(OTC_POST_TRADE_INDICATOR, otcPostTradeIndicator) + .add(CAPACITY, capacity) + .add(CROSS_RATE, crossRate) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java index 9930331..1397f91 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/TransReply.java @@ -1,17 +1,41 @@ package com.enfernuz.quik.lua.rpc.api.structures; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.Value; import lombok.experimental.NonFinal; - -import java.util.Objects; +import org.jetbrains.annotations.NotNull; @Value public class TransReply { + private static final String TRANSACTION_ID = "trans_id"; + private static final String STATUS = "status"; + private static final String RESULT_MESSAGE = "result_msg"; + private static final String DATE_TIME = "date_time"; + private static final String UID = "uid"; + private static final String FLAGS = "flags"; + private static final String SERVER_TRANSACTION_ID = "server_trans_id"; + private static final String ORDER_NUMBER = "order_num"; + private static final String PRICE = "price"; + private static final String QUANTITY = "quantity"; + private static final String BALANCE = "balance"; + private static final String FIRM_ID = "firm_id"; + private static final String ACCOUNT = "account"; + private static final String CLIENT_CODE = "client_code"; + private static final String BROKER_REF = "brokerref"; + private static final String CLASS_CODE = "class_code"; + private static final String SECURITY_CODE = "sec_code"; + private static final String EXCHANGE_CODE = "exchange_code"; + private static final String ERROR_CODE = "error_code"; + private static final String ERROR_SOURCE = "error_source"; + private static final String FIRST_ORDER_NUMBER = "first_ordernum"; + private static final String GATE_REPLY_TIME = "gate_reply_time"; + long transId; int status; String resultMsg; @@ -30,30 +54,40 @@ public class TransReply { String classCode; String secCode; String exchangeCode; + int errorCode; + int errorSource; + String firstOrderNum; + DateTimeEntry gateReplyTime; - private transient @NonFinal @Getter(AccessLevel.NONE) int hashCode; - private transient @NonFinal @Getter(AccessLevel.NONE) String asString; + @Getter(AccessLevel.NONE) + @NonFinal + private transient String asString; + @JsonCreator @Builder private TransReply( - final long transId, - final int status, - final String resultMsg, - final DateTimeEntry dateTime, - final String uid, - final int flags, - final String serverTransId, - final String orderNum, - final String price, - final String quantity, - final String balance, - final String firmId, - final String account, - final String clientCode, - final String brokerRef, - final String classCode, - final String secCode, - final String exchangeCode) { + @JsonProperty(value = TRANSACTION_ID, required = true) final long transId, + @JsonProperty(value = STATUS, required = true) final int status, + @JsonProperty(value = RESULT_MESSAGE, required = true) final String resultMsg, + @JsonProperty(value = DATE_TIME, required = true) final DateTimeEntry dateTime, + @JsonProperty(value = UID, required = true) final String uid, + @JsonProperty(value = FLAGS, required = true) final int flags, + @JsonProperty(value = SERVER_TRANSACTION_ID, required = true) final String serverTransId, + @JsonProperty(ORDER_NUMBER) final String orderNum, + @JsonProperty(PRICE) final String price, + @JsonProperty(QUANTITY) final String quantity, + @JsonProperty(BALANCE) final String balance, + @JsonProperty(FIRM_ID) final String firmId, + @JsonProperty(ACCOUNT) final String account, + @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(BROKER_REF) final String brokerRef, + @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(SECURITY_CODE) final String secCode, + @JsonProperty(EXCHANGE_CODE) final String exchangeCode, + @JsonProperty(value = ERROR_CODE, required = true) final int errorCode, + @JsonProperty(value = ERROR_SOURCE, required = true) final int errorSource, + @JsonProperty(FIRST_ORDER_NUMBER) final String firstOrderNum, + @JsonProperty(value = GATE_REPLY_TIME, required = true) final DateTimeEntry gateReplyTime) { this.transId = transId; this.status = status; @@ -73,90 +107,40 @@ private TransReply( this.classCode = classCode; this.secCode = secCode; this.exchangeCode = exchangeCode; + this.errorCode = errorCode; + this.errorSource = errorSource; + this.firstOrderNum = firstOrderNum; + this.gateReplyTime = gateReplyTime; } - @Override - public boolean equals(final Object o) { - - if (o == this) { - return true; - } else if ( !(o instanceof TransReply) ) { - return false; - } else { - final TransReply that = (TransReply) o; - return transId == that.transId && - status == that.status && - flags == that.flags && - Objects.equals(resultMsg, that.resultMsg) && - Objects.equals(dateTime, that.dateTime) && - Objects.equals(uid, that.uid) && - Objects.equals(serverTransId, that.serverTransId) && - Objects.equals(orderNum, that.orderNum) && - Objects.equals(price, that.price) && - Objects.equals(quantity, that.quantity) && - Objects.equals(balance, that.balance) && - Objects.equals(firmId, that.firmId) && - Objects.equals(account, that.account) && - Objects.equals(clientCode, that.clientCode) && - Objects.equals(brokerRef, that.brokerRef) && - Objects.equals(classCode, that.classCode) && - Objects.equals(secCode, that.secCode) && - Objects.equals(exchangeCode, that.exchangeCode); - } - } - - @Override - public int hashCode() { - - if (hashCode == 0) { - hashCode = Objects.hash( - transId, - status, - resultMsg, - dateTime, - uid, - flags, - serverTransId, - orderNum, - price, - quantity, - balance, - firmId, - account, - clientCode, - brokerRef, - classCode, - secCode, - exchangeCode - ); - } - - return hashCode; - } - + @NotNull @Override public String toString() { if (asString == null) { asString = MoreObjects.toStringHelper(this) - .add("trans_id", transId) - .add("status", status) - .add("result_msg", resultMsg) - .add("date_time", dateTime) - .add("uid", uid) - .add("flags", flags) - .add("server_trans_id", serverTransId) - .add("order_num", orderNum) - .add("price", price) - .add("quantity", quantity) - .add("balance", balance) - .add("firm_id", firmId) - .add("account", account) - .add("client_code", clientCode) - .add("brokerref", brokerRef) - .add("class_code", classCode) - .add("sec_code", secCode) - .add("exchange_code", exchangeCode) + .add(TRANSACTION_ID, transId) + .add(STATUS, status) + .add(RESULT_MESSAGE, resultMsg) + .add(DATE_TIME, dateTime) + .add(UID, uid) + .add(FLAGS, flags) + .add(SERVER_TRANSACTION_ID, serverTransId) + .add(ORDER_NUMBER, orderNum) + .add(PRICE, price) + .add(QUANTITY, quantity) + .add(BALANCE, balance) + .add(FIRM_ID, firmId) + .add(ACCOUNT, account) + .add(CLIENT_CODE, clientCode) + .add(BROKER_REF, brokerRef) + .add(CLASS_CODE, classCode) + .add(SECURITY_CODE, secCode) + .add(EXCHANGE_CODE, exchangeCode) + .add(ERROR_CODE, errorCode) + .add(ERROR_SOURCE, errorSource) + .add(FIRST_ORDER_NUMBER, firstOrderNum) + .add(GATE_REPLY_TIME, gateReplyTime) .toString(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 4f1c711..4204667 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -1,15 +1,12 @@ package com.enfernuz.quik.lua.rpc.api.zmq; -import com.enfernuz.quik.lua.rpc.api.ClientRpcException; -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.api.ServiceRpcException; +import com.enfernuz.quik.lua.rpc.api.*; import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.security.zmq.AuthContext; import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; -import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; @@ -20,13 +17,15 @@ import org.zeromq.ZMQ; import org.zeromq.ZMsg; +import java.util.Map; + import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; /** * Реализация компонента Java-обёртка над API QLua терминала QUIK на базе ZeroMQ. */ -public final class ZmqTcpQluaRpcClient extends AbstractTcpZmqClient implements TcpQluaRpcClient, ZmqSecurable { +public final class ZmqTcpQluaRpcClient extends AbstractTcpZmqClient implements RemoteProcedureCaller, TcpQluaRpcClient, ZmqSecurable { private ZMQ.Context zmqContext; private ZMQ.Socket reqSocket; @@ -94,419 +93,433 @@ void deinitializeIO() { } @Override - public int qlua_AddColumn(final AddColumn.Request request) { - return makeRPC(request, AddColumn.Result.class).getResult(); + public int qlua_AddColumn(@NotNull final AddColumn.Args args) { + return makeRPC(AddColumn.class, requireNonNull(args), AddColumn.Result.class).getResult(); } @Override - public int qlua_AddLabel(final AddLabel.Request request) { - return makeRPC(request, AddLabel.Result.class).getLabelId(); + public @Nullable Integer qlua_AddLabel(@NotNull final String chartTag, final Map labelParams) { + + final AddLabel.Args args = AddLabel.Args.builder() + .chartTag(chartTag) + .labelParams(labelParams) + .build(); + + return makeRPC(AddLabel.class, args, AddLabel.Result.class).getLabelId(); } @Override public int qlua_AllocTable() { - return makeRPC(AllocTable.Request.INSTANCE, AllocTable.Result.class).getTId(); + return makeRPC(AllocTable.class, null, AllocTable.Result.class).getTId(); } - @NotNull @Override - public CalcBuySell.Result qlua_CalcBuySell(final CalcBuySell.Request request) { - return makeRPC(request, CalcBuySell.Result.class); + public @NotNull CalcBuySell.Result qlua_CalcBuySell(@NotNull final CalcBuySell.Args args) { + return makeRPC(CalcBuySell.class, requireNonNull(args), CalcBuySell.Result.class); } @Override - public boolean qlua_CancelParamRequest(final CancelParamRequest.Request request) { - return makeRPC(request, CancelParamRequest.Result.class).isResult(); + public boolean qlua_CancelParamRequest(@NotNull final CancelParamRequest.Args args) { + return makeRPC(CancelParamRequest.class, requireNonNull(args), CancelParamRequest.Result.class).isResult(); } @Override - public boolean qlua_Clear(final Clear.Request request) { - return makeRPC(request, Clear.Result.class).isResult(); + public boolean qlua_Clear(final int tId) { + return makeRPC(Clear.class, new Clear.Args(tId), Clear.Result.class).isResult(); } @Override - public int qlua_CreateWindow(final CreateWindow.Request request) { - return makeRPC(request, CreateWindow.Result.class).getResult(); + public int qlua_CreateWindow(final int tId) { + return makeRPC(CreateWindow.class, new CreateWindow.Args(tId), CreateWindow.Result.class).getResult(); } @Override - public boolean qlua_DelAllLabels(final DelAllLabels.Request request) { - return makeRPC(request, DelAllLabels.Result.class).isResult(); + public boolean qlua_DelAllLabels(@NotNull final String chartTag) { + return makeRPC(DelAllLabels.class, new DelAllLabels.Args(chartTag), DelAllLabels.Result.class).isResult(); } @Override - public boolean qlua_DeleteRow(final DeleteRow.Request request) { - return makeRPC(request, DeleteRow.Result.class).isResult(); + public boolean qlua_DeleteRow(@NotNull final DeleteRow.Args args) { + return makeRPC(DeleteRow.class, requireNonNull(args), DeleteRow.Result.class).isResult(); } @Override - public boolean qlua_DelLabel(final DelLabel.Request request) { - return makeRPC(request, DelLabel.Result.class).isResult(); + public boolean qlua_DelLabel(@NotNull final String chartTag, final int labelId) { + return makeRPC(DelLabel.class, new DelLabel.Args(chartTag, labelId), DelLabel.Result.class).isResult(); } @Override - public boolean qlua_DestroyTable(final DestroyTable.Request request) { - return makeRPC(request, DestroyTable.Result.class).isResult(); + public boolean qlua_DestroyTable(final int tId) { + return makeRPC(DestroyTable.class, new DestroyTable.Args(tId), DestroyTable.Result.class).isResult(); } - @NotNull @Override - public GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(final GetBuySellInfo.Request request) { - return makeRPC(request, GetBuySellInfo.Result.class).getBuySellInfo(); + public @NotNull GetBuySellInfo.BuySellInfo qlua_getBuySellInfo(@NotNull final GetBuySellInfo.Args args) { + return makeRPC(GetBuySellInfo.class, requireNonNull(args), GetBuySellInfo.Result.class).getBuySellInfo(); } - @NotNull @Override - public GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(final GetBuySellInfoEx.Request request) { - return makeRPC(request, GetBuySellInfoEx.Result.class).getBuySellInfoEx(); + public @NotNull GetBuySellInfoEx.BuySellInfoEx qlua_getBuySellInfoEx(@NotNull final GetBuySellInfoEx.Args args) { + return makeRPC(GetBuySellInfoEx.class, requireNonNull(args), GetBuySellInfoEx.Result.class).getBuySellInfoEx(); } - @NotNull @Override - public GetCandlesByIndex.Result qlua_getCandlesByIndex(final GetCandlesByIndex.Request request) { - return makeRPC(request, GetCandlesByIndex.Result.class); + public @NotNull GetCandlesByIndex.Result qlua_getCandlesByIndex(@NotNull final GetCandlesByIndex.Args args) { + return makeRPC(GetCandlesByIndex.class, requireNonNull(args), GetCandlesByIndex.Result.class); } - @NotNull @Override - public GetCell.Result qlua_GetCell(final GetCell.Result request) { - return makeRPC(request, GetCell.Result.class); + public @NotNull GetCell.Result qlua_GetCell(@NotNull final GetCell.Args args) { + return makeRPC(GetCell.class, requireNonNull(args), GetCell.Result.class); } - @Nullable @Override - public String qlua_getClassesList() { - return makeRPC(GetClassesList.Request.INSTANCE, GetClassesList.Result.class).getClassesList(); + public @NotNull String qlua_getClassesList() { + return makeRPC(GetClassesList.class, null, GetClassesList.Result.class).getClassesList(); } @Override - public GetClassInfo.Result qlua_getClassInfo(final GetClassInfo.Request request) { - return makeRPC(request, GetClassInfo.Result.class); + public @NotNull ClassInfo qlua_getClassInfo(@NotNull final String classCode) { + return makeRPC(GetClassInfo.class, new GetClassInfo.Args(classCode), GetClassInfo.Result.class).getClassInfo(); } @Override - public GetClassSecurities.Result qlua_getClassSecurities(final GetClassSecurities.Request request) { - return makeRPC(request, GetClassSecurities.Result.class); + public @NotNull String qlua_getClassSecurities(@NotNull final String classCode) { + return makeRPC(GetClassSecurities.class, new GetClassSecurities.Args(classCode), GetClassSecurities.Result.class).getClassSecurities(); } @Override - public GetDepo.Result qlua_getDepo(final GetDepo.Request request) { - return makeRPC(request, GetDepo.Result.class); + public @NotNull Depo qlua_getDepo(@NotNull final GetDepo.Args args) { + return makeRPC(GetDepo.class, requireNonNull(args), GetDepo.Result.class).getDepo(); } @Override - public GetDepoEx.Result qlua_getDepoEx(final GetDepoEx.Request request) { - return makeRPC(request, GetDepoEx.Result.class); + public @Nullable DepoLimit qlua_getDepoEx(@NotNull final GetDepoEx.Args args) { + return makeRPC(GetDepoEx.class, requireNonNull(args), GetDepoEx.Result.class).getDepoEx(); } @Override - public GetFuturesHolding.Result qlua_getFuturesHolding(final GetFuturesHolding.Request request) { - return makeRPC(request, GetFuturesHolding.Result.class); + public @Nullable FuturesClientHolding qlua_getFuturesHolding(@NotNull final GetFuturesHolding.Args args) { + return makeRPC(GetFuturesHolding.class, requireNonNull(args), GetFuturesHolding.Result.class).getFuturesHolding(); } @Override - public GetFuturesLimit.Result qlua_getFuturesLimit(final GetFuturesLimit.Request request) { - return makeRPC(request, GetFuturesLimit.Result.class); + public @Nullable FuturesLimit qlua_getFuturesLimit(@NotNull final GetFuturesLimit.Args args) { + return makeRPC(GetFuturesLimit.class, requireNonNull(args), GetFuturesLimit.Result.class).getFuturesLimit(); } @Override - public GetInfoParam.Result qlua_getInfoParam(final GetInfoParam.Request request) { - return makeRPC(request, GetInfoParam.Result.class); + public @NotNull String qlua_getInfoParam(@NotNull final String paramName) { + return makeRPC(GetInfoParam.class, new GetInfoParam.Args(paramName), GetInfoParam.Result.class).getInfoParam(); } @Override - public GetItem.Result qlua_getItem(final GetItem.Request request) { - return makeRPC(request, GetItem.Result.class); + public @Nullable Map qlua_getItem(@NotNull final String tableName, final int index) { + return makeRPC(GetItem.class, new GetItem.Args(tableName, index), GetItem.Result.class).getTableRow(); } @Override - public GetLabelParams.Result qlua_GetLabelParams(final GetLabelParams.Request request) { - return makeRPC(request, GetLabelParams.Result.class); + public @Nullable Map qlua_GetLabelParams(@NotNull final String chartTag, final int labelId) { + return makeRPC(GetLabelParams.class, new GetLabelParams.Args(chartTag, labelId), GetLabelParams.Result.class).getLabelParams(); } @Override - public GetLinesCount.Result qlua_getLinesCount(final GetLinesCount.Request request) { - return makeRPC(request, GetLinesCount.Result.class); + public int qlua_getLinesCount(@NotNull final String tag) { + return makeRPC(GetLinesCount.class, new GetLinesCount.Args(tag), GetLinesCount.Result.class).getLinesCount(); } @Override - public GetMoney.Result qlua_getMoney(final GetMoney.Request request) { - return makeRPC(request, GetMoney.Result.class); + public @NotNull Money qlua_getMoney(@NotNull final GetMoney.Args args) { + return makeRPC(GetMoney.class, requireNonNull(args), GetMoney.Result.class).getMoney(); } @Override - public GetMoneyEx.Result qlua_getMoneyEx(final GetMoneyEx.Request request) { - return makeRPC(request, GetMoneyEx.Result.class); + public @Nullable MoneyLimit qlua_getMoneyEx(@NotNull final GetMoneyEx.Args args) { + return makeRPC(GetMoneyEx.class, requireNonNull(args), GetMoneyEx.Result.class).getMoneyEx(); } @Override - public GetNumberOf.Result qlua_getNumberOf(final GetNumberOf.Request request) { - return makeRPC(request, GetNumberOf.Result.class); + public int qlua_getNumberOf(@NotNull final String tableName) { + return makeRPC(GetNumberOf.class, new GetNumberOf.Args(tableName), GetNumberOf.Result.class).getResult(); } @Override - public GetNumCandles.Result qlua_getNumCandles(final GetNumCandles.Request request) { - return makeRPC(request, GetNumCandles.Result.class); + public int qlua_getNumCandles(@NotNull final String tag) { + return makeRPC(GetNumCandles.class, new GetNumCandles.Args(tag), GetNumCandles.Result.class).getNumCandles(); } @Override - public GetOrderByNumber.Result qlua_getOrderByNumber(final GetOrderByNumber.Request request) { - return makeRPC(request, GetOrderByNumber.Result.class); + public @NotNull GetOrderByNumber.Result qlua_getOrderByNumber(@NotNull final String classCode, final long orderId) { + return makeRPC(GetOrderByNumber.class, new GetOrderByNumber.Args(classCode, orderId), GetOrderByNumber.Result.class); } @Override - public GetParamEx.Result qlua_getParamEx(final GetParamEx.Request request) { - return makeRPC(request, GetParamEx.Result.class); + public @NotNull GetParamEx.ParamEx qlua_getParamEx(@NotNull final GetParamEx.Args args) { + return makeRPC(GetParamEx.class, requireNonNull(args), GetParamEx.Result.class).getParamEx(); } @Override - public GetParamEx2.Result qlua_getParamEx2(final GetParamEx2.Request request) { - return makeRPC(request, GetParamEx2.Result.class); + public @NotNull GetParamEx2.ParamEx2 qlua_getParamEx2(@NotNull final GetParamEx2.Args args) { + return makeRPC(GetParamEx2.class, requireNonNull(args), GetParamEx2.Result.class).getParamEx(); } @Override - public GetPortfolioInfo.Result qlua_getPortfolioInfo(final GetPortfolioInfo.Request request) { - return makeRPC(request, GetPortfolioInfo.Result.class); + public @NotNull PortfolioInfo qlua_getPortfolioInfo(@NotNull final GetPortfolioInfo.Args args) { + return makeRPC(GetPortfolioInfo.class, requireNonNull(args), GetPortfolioInfo.Result.class).getPortfolioInfo(); } @Override - public GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(final GetPortfolioInfoEx.Request request) { - return makeRPC(request, GetPortfolioInfoEx.Result.class); + public @NotNull GetPortfolioInfoEx.Result qlua_getPortfolioInfoEx(@NotNull final GetPortfolioInfoEx.Args args) { + return makeRPC(GetPortfolioInfoEx.class, requireNonNull(args), GetPortfolioInfoEx.Result.class); } @Override - public GetQuoteLevel2.Result qlua_getQuoteLevel2(final GetQuoteLevel2.Request request) { - return makeRPC(request, GetQuoteLevel2.Result.class); + public @NotNull GetQuoteLevel2.Result qlua_getQuoteLevel2(@NotNull final GetQuoteLevel2.Args args) { + return makeRPC(GetQuoteLevel2.class, requireNonNull(args), GetQuoteLevel2.Result.class); } @Override - public GetScriptPath.Result qlua_getScriptPath() { - return makeRPC(GetScriptPath.Request.INSTANCE, GetScriptPath.Result.class); + public @NotNull String qlua_getScriptPath() { + return makeRPC(GetScriptPath.class, null, GetScriptPath.Result.class).getScriptPath(); } @Override - public GetSecurityInfo.Result qlua_getSecurityInfo(final GetSecurityInfo.Request request) { - return makeRPC(request, GetSecurityInfo.Result.class); + public @Nullable Security qlua_getSecurityInfo(@NotNull final GetSecurityInfo.Args args) { + return makeRPC(GetSecurityInfo.class, requireNonNull(args), GetSecurityInfo.Result.class).getSecurityInfo(); } @Override - public GetTableSize.Result qlua_GetTableSize(final GetTableSize.Request request) { - return makeRPC(request, GetTableSize.Result.class); + public @Nullable GetTableSize.TableSize qlua_GetTableSize(final int tId) { + return makeRPC(GetTableSize.class, new GetTableSize.Args(tId), GetTableSize.Result.class).getTableSize(); } @Override - public GetTradeDate.Result qlua_getTradeDate() { - return makeRPC(GetTradeDate.Request.INSTANCE, GetTradeDate.Result.class); + public @NotNull GetTradeDate.TradeDate qlua_getTradeDate() { + return makeRPC(GetTradeDate.class, null, GetTradeDate.Result.class).getTradeDate(); } @Override - public GetWindowCaption.Result qlua_GetWindowCaption(final GetWindowCaption.Request request) { - return makeRPC(request, GetWindowCaption.Result.class); + public @Nullable String qlua_GetWindowCaption(final int tId) { + return makeRPC(GetWindowCaption.class, new GetWindowCaption.Args(tId), GetWindowCaption.Result.class).getCaption(); } @Override - public GetWindowRect.Result qlua_GetWindowRect(final GetWindowRect.Request request) { - return makeRPC(request, GetWindowRect.Result.class); + public @NotNull GetWindowRect.WindowRect qlua_GetWindowRect(final int tId) { + return makeRPC(GetWindowRect.class, new GetWindowRect.Args(tId), GetWindowRect.Result.class).getWindowRect(); } @Override - public GetWorkingFolder.Result qlua_getWorkingFolder() { - return makeRPC(GetWorkingFolder.Request.INSTANCE, GetWorkingFolder.Result.class); + public @NotNull String qlua_getWorkingFolder() { + return makeRPC(GetWorkingFolder.class, null, GetWorkingFolder.Result.class).getWorkingFolder(); } @Override - public Highlight.Result qlua_Highlight(final Highlight.Request request) { - return makeRPC(request, Highlight.Result.class); + public boolean qlua_Highlight(@NotNull final Highlight.Args args) { + return makeRPC(Highlight.class, requireNonNull(args), Highlight.Result.class).isResult(); } @Override - public InsertRow.Result qlua_InsertRow(final InsertRow.Request request) { - return makeRPC(request, InsertRow.Result.class); + public int qlua_InsertRow(@NotNull final InsertRow.Args args) { + return makeRPC(InsertRow.class, requireNonNull(args), InsertRow.Result.class).getResult(); } @Override - public IsConnected.Result qlua_isConnected() { - return makeRPC(IsConnected.Request.INSTANCE, IsConnected.Result.class); + public int qlua_isConnected() { + return makeRPC(IsConnected.class, null, IsConnected.Result.class).getIsConnected(); } @Override - public IsSubscribedLevel2Quotes.Result qlua_IsSubscribedLevelIIQuotes(final IsSubscribedLevel2Quotes.Request request) { - return makeRPC(request, IsSubscribedLevel2Quotes.Result.class); + public boolean qlua_IsSubscribedLevelIIQuotes(@NotNull final IsSubscribedLevel2Quotes.Args args) { + return makeRPC(IsSubscribedLevel2Quotes.class, requireNonNull(args), IsSubscribedLevel2Quotes.Result.class).isResult(); } @Override - public IsWindowClosed.Result qlua_IsWindowClosed(final IsWindowClosed.Request request) { - return makeRPC(request, IsWindowClosed.Result.class); + public Boolean qlua_IsWindowClosed(final int tId) { + return makeRPC(IsWindowClosed.class, new IsWindowClosed.Args(tId), IsWindowClosed.Result.class).getWindowClosed(); } @Override - public Message.Result qlua_message(final Message.Request request) { - return makeRPC(request, Message.Result.class); + public @Nullable Integer qlua_message(@NotNull final String message, final Message.IconType iconType) { + return makeRPC(Message.class, new Message.Args(message, iconType), Message.Result.class).getResult(); } @Override - public ParamRequest.Result qlua_ParamRequest(final ParamRequest.Request request) { - return makeRPC(request, ParamRequest.Result.class); + public Integer qlua_message(@NotNull final String message) { + return makeRPC(Message.class, new Message.Args(message), Message.Result.class).getResult(); } @Override - public PrintDbgStr.Result qlua_PrintDbgStr(final PrintDbgStr.Request request) { - return makeRPC(request, PrintDbgStr.Result.class); + public boolean qlua_ParamRequest(@NotNull final ParamRequest.Args args) { + return makeRPC(ParamRequest.class, args, ParamRequest.Result.class).isResult(); } @Override - public RGB.Result qlua_RGB(final RGB.Request request) { - return makeRPC(request, RGB.Result.class); + public void qlua_PrintDbgStr(@NotNull final String s) { + makeRPC(PrintDbgStr.class, new PrintDbgStr.Args(s)); } @Override - public SearchItems.Result qlua_SearchItems(final SearchItems.Request request) { - return makeRPC(request, SearchItems.Result.class); + public int qlua_RGB(@NotNull final RGB.Args args) { + return makeRPC(RGB.class, args, RGB.Result.class).getResult(); } @Override - public SendTransaction.Result qlua_sendTransaction(final SendTransaction.Request request) { - return makeRPC(request, SendTransaction.Result.class); + public @NotNull SearchItems.Result qlua_SearchItems(@NotNull final SearchItems.Args args) { + return makeRPC(SearchItems.class, args, SearchItems.Result.class); } @Override - public SetCell.Result qlua_SetCell(final SetCell.Request request) { - return makeRPC(request, SetCell.Result.class); + public @NotNull String qlua_sendTransaction(@NotNull final SendTransaction.Args args) { + return makeRPC(SendTransaction.class, args, SendTransaction.Result.class).getResult(); } @Override - public SetColor.Result qlua_SetColor(final SetColor.Request request) { - return makeRPC(request, SetColor.Result.class); + public boolean qlua_SetCell(@NotNull final SetCell.Args args) { + return makeRPC(SetCell.class, args, SetCell.Result.class).isResult(); } @Override - public SetLabelParams.Result qlua_SetLabelParams(final SetLabelParams.Request request) { - return makeRPC(request, SetLabelParams.Result.class); + public boolean qlua_SetColor(@NotNull final SetColor.Args args) { + return makeRPC(SetColor.class, args, SetColor.Result.class).isResult(); } @Override - public SetSelectedRow.Result qlua_SetSelectedRow(final SetSelectedRow.Request request) { - return makeRPC(request, SetSelectedRow.Result.class); + public boolean qlua_SetLabelParams(@NotNull final String chartTag, final int labelId, @NotNull final Map labelParams) { + return makeRPC(SetLabelParams.class, new SetLabelParams.Args(chartTag, labelId, labelParams), SetLabelParams.Result.class).isResult(); } @Override - public SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(final SetTableNotificationCallback.Request request) { - return makeRPC(request, SetTableNotificationCallback.Result.class); + public @NotNull SetSelectedRow.Result qlua_SetSelectedRow(@NotNull final SetSelectedRow.Args args) { + return makeRPC(SetSelectedRow.class, args, SetSelectedRow.Result.class); } @Override - public SetWindowCaption.Result qlua_SetWindowCaption(final SetWindowCaption.Request request) { - return makeRPC(request, SetWindowCaption.Result.class); + public @NotNull SetTableNotificationCallback.Result qlua_SetTableNotificationCallback(final int tId, @NotNull final String fCbDef) { + return makeRPC(SetTableNotificationCallback.class, new SetTableNotificationCallback.Args(tId, fCbDef), SetTableNotificationCallback.Result.class); } @Override - public SetWindowPos.Result qlua_SetWindowPos(final SetWindowPos.Request request) { - return makeRPC(request, SetWindowPos.Result.class); + public boolean qlua_SetWindowCaption(final int tId, @NotNull final String str) { + return makeRPC(SetWindowCaption.class, new SetWindowCaption.Args(tId, str), SetWindowCaption.Result.class).isResult(); } @Override - public Sleep.Result qlua_sleep(final Sleep.Request request) { - return makeRPC(request, Sleep.Result.class); + public boolean qlua_SetWindowPos(@NotNull final SetWindowPos.Args args) { + return makeRPC(SetWindowPos.class, args, SetWindowPos.Result.class).isResult(); } @Override - public SubscribeLevel2Quotes.Result qlua_SubscribeLevelIIQuotes(final SubscribeLevel2Quotes.Request request) { - return makeRPC(request, SubscribeLevel2Quotes.Result.class); + public @Nullable Integer qlua_sleep(final int time) { + return makeRPC(Sleep.class, new Sleep.Args(time), Sleep.Result.class).getResult(); } @Override - public UnsubscribeLevel2Quotes.Result qlua_UnsubscribeLevelIIQuotes(final UnsubscribeLevel2Quotes.Request request) { - return makeRPC(request, UnsubscribeLevel2Quotes.Result.class); + public boolean qlua_SubscribeLevelIIQuotes(@NotNull final SubscribeLevel2Quotes.Args args) { + return makeRPC(SubscribeLevel2Quotes.class, args, SubscribeLevel2Quotes.Result.class).isResult(); } @Override - public BAnd.Result bit_band(final BAnd.Request request) { - return makeRPC(request, BAnd.Result.class); + public boolean qlua_UnsubscribeLevelIIQuotes(@NotNull final UnsubscribeLevel2Quotes.Args args) { + return makeRPC(UnsubscribeLevel2Quotes.class, args, UnsubscribeLevel2Quotes.Result.class).isResult(); } @Override - public BNot.Result bit_bnot(final BNot.Request request) { - return makeRPC(request, BNot.Result.class); + public int bit_band(final int x1, final int x2, final int... xi) { + return makeRPC(BAnd.class, BAnd.Args.builder().x1(x1).x2(x2).xi(xi).build(), BAnd.Result.class).getResult(); } @Override - public BOr.Result bit_bor(final BOr.Request request) { - return makeRPC(request, BOr.Result.class); + public int bit_bnot(final int x) { + return makeRPC(BNot.class, new BNot.Args(x), BNot.Result.class).getResult(); } @Override - public BXor.Result bit_bxor(final BXor.Request request) { - return makeRPC(request, BXor.Result.class); + public int bit_bor(final int x1, final int x2, final int... xi) { + return makeRPC(BOr.class, BOr.Args.builder().x1(x1).x2(x2).xi(xi).build(), BOr.Result.class).getResult(); } @Override - public ToHex.Result bit_tohex(final ToHex.Request request) { - return makeRPC(request, ToHex.Result.class); + public int bit_bxor(final int x1, final int x2, final int... xi) { + return makeRPC(BXor.class, BXor.Args.builder().x1(x1).x2(x2).xi(xi).build(), BXor.Result.class).getResult(); } @Override - public C.Result datasource_C(final C.Request request) { - return makeRPC(request, C.Result.class); + public @NotNull String bit_tohex(@NotNull final ToHex.Args args) { + return makeRPC(ToHex.class, args, ToHex.Result.class).getResult(); } @Override - public Close.Result datasource_Close(final Close.Request request) { - return makeRPC(request, Close.Result.class); + public @NotNull String datasource_C(@NotNull final C.Args args) { + return makeRPC(C.class, args, C.Result.class).getValue(); } @Override - public CreateDataSource.Result datasource_CreateDataSource(final CreateDataSource.Request request) { - return makeRPC(request, CreateDataSource.Result.class); + public boolean datasource_Close(@NotNull final String datasourceUUID) { + return makeRPC(Close.class, new Close.Args(datasourceUUID), Close.Result.class).isResult(); } @Override - public H.Result datasource_H(final H.Request request) { - return makeRPC(request, H.Result.class); + public @NotNull CreateDataSource.Result datasource_CreateDataSource(@NotNull final CreateDataSource.Args args) { + return makeRPC(CreateDataSource.class, args, CreateDataSource.Result.class); } @Override - public L.Result datasource_L(final L.Request request) { - return makeRPC(request, L.Result.class); + public @NotNull String datasource_H(@NotNull final H.Args args) { + return makeRPC(H.class, args, H.Result.class).getValue(); } @Override - public O.Result datasource_O(final O.Request request) { - return makeRPC(request, O.Result.class); + public @NotNull String datasource_L(@NotNull final L.Args args) { + return makeRPC(L.class, args, L.Result.class).getValue(); } @Override - public SetEmptyCallback.Result datasource_SetEmptyCallback(final SetEmptyCallback.Request request) { - return makeRPC(request, SetEmptyCallback.Result.class); + public @NotNull String datasource_O(@NotNull final O.Args args) { + return makeRPC(O.class, args, O.Result.class).getValue(); } @Override - public SetUpdateCallback.Result datasource_SetUpdateCallback(final SetUpdateCallback.Request request) { - return makeRPC(request, SetUpdateCallback.Result.class); + public boolean datasource_SetEmptyCallback(@NotNull final String datasourceUUID) { + return makeRPC(SetEmptyCallback.class, new SetEmptyCallback.Args(datasourceUUID), SetEmptyCallback.Result.class).isResult(); } @Override - public Size.Result datasource_Size(final Size.Request request) { - return makeRPC(request, Size.Result.class); + public boolean datasource_SetUpdateCallback(@NotNull final SetUpdateCallback.Args args) { + return makeRPC(SetUpdateCallback.class, args, SetUpdateCallback.Result.class).isResult(); } @Override - public T.Result datasource_T(final T.Request request) { - return makeRPC(request, T.Result.class); + public int datasource_Size(@NotNull final Size.Args args) { + return makeRPC(Size.class, args, Size.Result.class).getValue(); } @Override - public V.Result datasource_V(final V.Request request) { - return makeRPC(request, V.Result.class); + public @NotNull T.Result datasource_T(@NotNull final T.Args args) { + return makeRPC(T.class, args, T.Result.class); } - private U makeRPC(final T request, final Class resultClass) { + @Override + public @NotNull String datasource_V(@NotNull final V.Args args) { + return makeRPC(V.class, args, V.Result.class).getValue(); + } + + private void makeRPC(@NotNull final Class remoteProcedureClass, final RpcArgs args) { + makeRPC(remoteProcedureClass, args, null); + } + + @Contract("_, _, null -> null; _, _, !null -> !null") + @Override + public > U makeRPC( + @NotNull final Class remoteProcedureClass, + final RpcArgs args, + @Nullable final Class resultClass) throws RpcException { try { checkState(isOpened(), "Соединение должно быть открыто."); final ZMsg zRequest = new ZMsg(); - zRequest.add( serdeModule.serialize(request) ); + zRequest.add( serdeModule.serialize(new RequestEnvelope<>(remoteProcedureClass, args)) ); zRequest.send(reqSocket); zRequest.destroy(); @@ -517,11 +530,20 @@ private U makeRPC(final T request, final Class resultClass) { final ResponseEnvelope responseEnvelope = serdeModule.deserialize(ResponseEnvelope.class, response); final ServiceError error = responseEnvelope.getError(); if (error == null) { - return serdeModule.deserialize(resultClass, responseEnvelope.getResult()); + if (resultClass == null) { + return null; + } else { + final byte[] result = responseEnvelope.getResult(); + if (result == null) { + throw new RpcException("В ответе на вызов удалённой процедуры отсутствует результат."); + } else { + return serdeModule.deserialize(resultClass, result); + } + } } else { throw new ServiceRpcException(error); } - } catch (final ServiceRpcException ex) { + } catch (final RpcException ex) { throw ex; } catch (final Exception ex) { throw new ClientRpcException(ex); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java index 201a34d..edfc7c8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/application/RpcExampleApplication.java @@ -42,16 +42,13 @@ public static void main(final String[] args) { log.info("Соединение с RPC-сервисом..."); rpcClient.open(); - final Message.Request request = new Message.Request("Hello, world!", Message.IconType.WARNING); log.info("Выполнение удалённой процедуры 'message' на терминале QUIK..."); - final Message.Result result = rpcClient.qlua_message(request); - - final Message.MessageResult messageResult = result.getMessageResult(); - if (messageResult == null) { + final Integer result = rpcClient.qlua_message("Hello, world!", Message.IconType.WARNING); + if (result == null) { log.error("Удалённая процедура 'message' выполнилась с ошибкой."); } else { - log.info("Результат выполнения удалённой процедуры 'message': {}.", result.getMessageResult().getResult()); + log.info("Результат выполнения удалённой процедуры 'message': {}.", result); } log.info("Выход из программы..."); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java index a5acbb0..d2b27ff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeModule.java @@ -1,8 +1,10 @@ package com.enfernuz.quik.lua.rpc.serde; +import org.jetbrains.annotations.NotNull; + public interface SerdeModule { - byte[] serialize(T t); + @NotNull byte[] serialize(@NotNull T t); - T deserialize(Class clazz, byte[] data); + @NotNull T deserialize(@NotNull Class clazz, @NotNull byte[] data); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java index cac46e2..7f02b1c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/SerdeUtils.java @@ -34,8 +34,4 @@ public static SerdeModule getSerdeModule(@NotNull final ClientConfiguration.Serd } return serdeModule; } - - public static String trimAndRemoveLineBreaks(final String str) { - return str.replaceAll("[\\s\\r\\n]", ""); - } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java index 35d52e0..9e532d3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java @@ -86,7 +86,7 @@ private static Map createPbEventTypeNameHashToEven result.put(hash("OnConnected"), QluaEvent.EventType.ON_CONNECTED); result.put(hash("OnCleanUp"), QluaEvent.EventType.ON_CLEAN_UP); - assert (result.size() == QluaEvent.EventType.values().length); + assert QluaEvent.EventType.values().length == result.size(); return result; } @@ -120,7 +120,7 @@ private static EnumMap createEventTypeToEventTypeBy result.put(QluaEvent.EventType.ON_CONNECTED, asBytes("OnConnected")); result.put(QluaEvent.EventType.ON_CLEAN_UP, asBytes("OnCleanUp")); - assert (result.size() == QluaEvent.EventType.values().length); + assert QluaEvent.EventType.values().length == result.size(); return result; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index 025eeff..0eaf846 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -3,8 +3,8 @@ import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; import com.fasterxml.jackson.databind.ObjectMapper; +import org.jetbrains.annotations.NotNull; import static java.util.Objects.requireNonNull; @@ -12,16 +12,10 @@ public enum JsonSerdeModule implements SerdeModule { INSTANCE; - private final ObjectMapper objectMapper; - - private JsonSerdeModule() { - - objectMapper = new ObjectMapper(); - objectMapper.registerModule( new QluaJsonModule() ); - } + private final ObjectMapper objectMapper = new ObjectMapper(); @Override - public byte[] serialize(final T t) { + public @NotNull byte[] serialize(final @NotNull T t) { requireNonNull(t); @@ -44,7 +38,7 @@ public byte[] serialize(final T t) { } @Override - public T deserialize(final Class clazz, byte[] data) { + public @NotNull T deserialize(final @NotNull Class clazz, final @NotNull byte[] data) { try { diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java deleted file mode 100644 index a1f52b8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddColumnRequestJsonSerializer.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class AddColumnRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final AddColumn.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AddColumn"); - - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("icode", value.getICode()); - gen.writeStringField("name", value.getName()); - gen.writeBooleanField("is_default", value.isDefault()); - gen.writeStringField("par_type", value.getParType().name()); - gen.writeNumberField("width", value.getWidth()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java deleted file mode 100644 index 3594fe2..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AddLabelRequestJsonSerializer.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; -import java.util.Map; - -final class AddLabelRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final AddLabel.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AddLabel"); - - gen.writeStringField("chart_tag", value.getChartTag()); - gen.writeObjectFieldStart("label_params"); - for (final Map.Entry entry : value.getLabelParams().entrySet()) { - gen.writeStringField(entry.getKey(), entry.getValue()); - } - gen.writeEndObject(); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java deleted file mode 100644 index cbf3a96..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/AllocTableRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class AllocTableRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(AllocTable.Request value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "AllocTable"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java deleted file mode 100644 index 90099db..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBAndRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitBAndRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final BAnd.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.band"); - gen.writeNumberField("x1", value.getX1()); - gen.writeNumberField("x2", value.getX2()); - final int[] xi = value.getXi(); - if (xi != null) { - gen.writeFieldName("xi"); - gen.writeArray(xi, 0, xi.length); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java deleted file mode 100644 index a432eb8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBNotRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitBNotRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final BNot.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bnot"); - gen.writeNumberField("x", value.getX()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java deleted file mode 100644 index 3d203f5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBOrRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitBOrRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final BOr.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bor"); - gen.writeNumberField("x1", value.getX1()); - gen.writeNumberField("x2", value.getX2()); - final int[] xi = value.getXi(); - if (xi != null) { - gen.writeFieldName("xi"); - gen.writeArray(xi, 0, xi.length); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java deleted file mode 100644 index ecd9f24..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitBXorRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitBXorRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final BXor.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.bxor"); - gen.writeNumberField("x1", value.getX1()); - gen.writeNumberField("x2", value.getX2()); - final int[] xi = value.getXi(); - if (xi != null) { - gen.writeFieldName("xi"); - gen.writeArray(xi, 0, xi.length); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java deleted file mode 100644 index db4d6cd..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitTestRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitTestRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Test.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.test"); - gen.writeNumberField("x", value.getX()); - gen.writeNumberField("n", value.getN()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java deleted file mode 100644 index b6126c0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BitToHexRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class BitToHexRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final ToHex.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "bit.tohex"); - gen.writeNumberField("x", value.getX()); - gen.writeNumberField("n", value.getN()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java deleted file mode 100644 index 720e8db..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoExJsonDeserializer.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class BuySellInfoExJsonDeserializer extends JsonDeserializer { - - @Override - public GetBuySellInfoEx.BuySellInfoEx deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - final GetBuySellInfo.BuySellInfo buySellInfo = - node.get("buy_sell_info").traverse(objectCodec).readValueAs(GetBuySellInfo.BuySellInfo.class); - - return GetBuySellInfoEx.BuySellInfoEx - .builder() - .buySellInfo(buySellInfo) - .limitKind( asText(node, "limit_kind") ) - .dLong( asText(node, "d_long") ) - .dMinLong( asText(node, "d_min_long") ) - .dShort( asText(node, "d_short") ) - .dMinShort( asText(node, "d_min_short") ) - .clientType( asText(node, "client_type") ) - .isLongAllowed( asText(node, "is_long_allowed") ) - .isShortAllowed( asText(node, "is_short_allowed") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java deleted file mode 100644 index ccce622..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/BuySellInfoJsonDeserializer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class BuySellInfoJsonDeserializer extends JsonDeserializer { - - @Override - public GetBuySellInfo.BuySellInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - - return GetBuySellInfo.BuySellInfo - .builder() - .isMarginSec( asText(node, "is_margin_sec") ) - .isAssetSec( asText(node, "is_asset_sec") ) - .balance( asText(node, "balance") ) - .canBuy( asText(node, "can_buy") ) - .canSell( asText(node, "can_sell") ) - .positionValuation( asText(node, "position_valuation") ) - .value( asText(node, "value") ) - .openValue( asText(node, "open_value") ) - .limLong( asText(node, "lim_long") ) - .longCoef( asText(node, "long_coef") ) - .limShort( asText(node, "lim_short") ) - .shortCoef( asText(node, "short_coef") ) - .valueCoef( asText(node, "value_coef") ) - .openValueCoef( asText(node, "open_value_coef") ) - .share( asText(node, "share") ) - .shortWaPrice( asText(node, "short_wa_price") ) - .longWaPrice( asText(node, "long_wa_price") ) - .profitLoss( asText(node, "profit_loss") ) - .spreadHc( asText(node, "spread_hc") ) - .canBuyOwn( asText(node, "can_buy_own") ) - .canSellOwn( asText(node, "can_sell_own") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java deleted file mode 100644 index 4efbf27..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellRequestJsonSerializer.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class CalcBuySellRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final CalcBuySell.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CalcBuySell"); - - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("account", value.getAccount()); - gen.writeStringField("price", value.getPrice()); - gen.writeBooleanField("is_buy", value.isBuy()); - gen.writeBooleanField("is_market", value.isMarket()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java deleted file mode 100644 index 65ca021..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CalcBuySellResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class CalcBuySellResultJsonDeserializer extends JsonDeserializer { - - @Override - public CalcBuySell.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new CalcBuySell.Result(node.get("qty").asInt(), node.get("comission").asText()); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java deleted file mode 100644 index 81fd731..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestRequestJsonSerializer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class CancelParamRequestRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final CancelParamRequest.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CancelParamRequest"); - - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("db_name", value.getDbName()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java deleted file mode 100644 index b61fd8a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CancelParamRequestResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class CancelParamRequestResultJsonDeserializer extends JsonDeserializer { - - @Override - public CancelParamRequest.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new CancelParamRequest.Result( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java deleted file mode 100644 index dabfae8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CandleEntryJsonDeserializer.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class CandleEntryJsonDeserializer extends JsonDeserializer { - - @Override - public CandleEntry deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return CandleEntry - .builder() - .open( asText(node, "open") ) - .close( asText(node, "close") ) - .high( asText(node, "high") ) - .low( asText(node, "low") ) - .volume( asText(node, "volume") ) - .dateTimeEntry( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .doesExist( node.get("does_exist").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java deleted file mode 100644 index 2a5f1dc..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClassInfoJsonDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class ClassInfoJsonDeserializer extends JsonDeserializer { - - @Override - public ClassInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return ClassInfo - .builder() - .firmId( asText(node, "firmid") ) - .name( asText(node, "name") ) - .code( asText(node, "code") ) - .npars( node.get("npars").asInt() ) - .nsecs( node.get("nsecs").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java deleted file mode 100644 index 92819e8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class ClearRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final Clear.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Clear"); - - gen.writeNumberField("t_id", value.getTId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java deleted file mode 100644 index 153a8bd..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ClearResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class ClearResultJsonDeserializer extends JsonDeserializer { - - @Override - public Clear.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return Clear.Result.getInstance( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java deleted file mode 100644 index 3a65c0c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class CreateWindowRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final CreateWindow.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "CreateWindow"); - - gen.writeNumberField("t_id", value.getTId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java deleted file mode 100644 index 115fd31..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/CreateWindowResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class CreateWindowResultJsonDeserializer extends JsonDeserializer { - - @Override - public CreateWindow.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new CreateWindow.Result( node.get("result").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java deleted file mode 100644 index 4ded6e4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceCRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final C.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.C"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java deleted file mode 100644 index 2490f33..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCloseRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceCloseRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Close.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.Close"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java deleted file mode 100644 index 76f9233..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceCreateDatasourceRequestJsonSerializer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.google.common.base.Strings; - -import java.io.IOException; - -final class DatasourceCreateDatasourceRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final CreateDataSource.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.CreateDataSource"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("interval", value.getInterval().name()); - final String param = value.getParam(); - if ( !Strings.isNullOrEmpty(param) ) { - gen.writeStringField("param", param); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java deleted file mode 100644 index 7353709..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceHRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceHRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final H.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.H"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java deleted file mode 100644 index 8556f8c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceLRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceLRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final L.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.L"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java deleted file mode 100644 index 3c03722..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceORequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceORequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final O.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.O"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java deleted file mode 100644 index 32d9d5f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetEmptyCallbackRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceSetEmptyCallbackRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetEmptyCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.SetEmptyCallback"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java deleted file mode 100644 index fbe263d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSetUpdateCallbackRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceSetUpdateCallbackRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetUpdateCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.SetUpdateCallback"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeStringField("f_cb_def", value.getFCbDef()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java deleted file mode 100644 index a7319e9..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceSizeRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceSizeRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Size.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.Size"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java deleted file mode 100644 index 0821b6a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceTRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceTRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final T.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.T"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java deleted file mode 100644 index 3c9623d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DatasourceVRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DatasourceVRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final V.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "datasource.V"); - gen.writeStringField("datasource_uuid", value.getDatasourceUUID()); - gen.writeNumberField("candle_index", value.getCandleIndex()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java deleted file mode 100644 index e182c69..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DelAllLabelsRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final DelAllLabels.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DelAllLabels"); - - gen.writeStringField("chart_tag", value.getChartTag()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java deleted file mode 100644 index 307670a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelAllLabelsResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class DelAllLabelsResultJsonDeserializer extends JsonDeserializer { - - @Override - public DelAllLabels.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return DelAllLabels.Result.getInstance( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java deleted file mode 100644 index dcc3c84..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DelLabelRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final DelLabel.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DelLabel"); - - gen.writeStringField("chart_tag", value.getChartTag()); - gen.writeNumberField("label_id", value.getLabelId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java deleted file mode 100644 index be705af..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DelLabelResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class DelLabelResultJsonDeserializer extends JsonDeserializer { - - @Override - public DelLabel.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return DelLabel.Result.getInstance( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java deleted file mode 100644 index 3bd4c26..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DeleteRowRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize( - final DeleteRow.Request value, - final JsonGenerator gen, - final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DeleteRow"); - - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("key", value.getKey()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java deleted file mode 100644 index 43c184e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DeleteRowResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class DeleteRowResultJsonDeserializer extends JsonDeserializer { - - @Override - public DeleteRow.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return DeleteRow.Result.getInstance( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java deleted file mode 100644 index 280653c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoJsonDeserializer.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class DepoJsonDeserializer extends JsonDeserializer { - - @Override - public Depo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return Depo - .builder() - .depoLimitLockedBuyValue( asText(node, "depo_limit_locked_buy_value") ) - .depoCurrentBalance( asText(node, "depo_current_balance") ) - .depoLimitLockedBuy( asText(node, "depo_limit_locked_buy") ) - .depoLimitLocked( asText(node, "depo_limit_locked") ) - .depoLimitAvailable( asText(node, "depo_limit_available") ) - .depoCurrentLimit( asText(node, "depo_current_limit") ) - .depoOpenBalance( asText(node, "depo_open_balance") ) - .depoOpenLimit( asText(node, "depo_open_limit") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java deleted file mode 100644 index df701d3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitDeleteJsonDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class DepoLimitDeleteJsonDeserializer extends JsonDeserializer { - - @Override - public DepoLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return DepoLimitDelete - .builder() - .secCode( asText(node, "sec_code") ) - .trdAccId( asText(node, "trdaccid") ) - .firmId( asText(node, "firmid") ) - .clientCode( asText(node, "client_code") ) - .limitKind( node.get("limit_kind").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java deleted file mode 100644 index ee16da2..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DepoLimitJsonDeserializer.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class DepoLimitJsonDeserializer extends JsonDeserializer { - - @Override - public DepoLimit deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return DepoLimit - .builder() - .secCode( asText(node, "sec_code") ) - .trdAccId( asText(node, "trdaccid") ) - .firmId( asText(node, "firmid") ) - .clientCode( asText(node, "client_code") ) - .openBal( node.get("openbal").asInt() ) - .openLimit( node.get("openlimit").asInt() ) - .currentBal( node.get("currentbal").asInt() ) - .currentLimit( node.get("currentlimit").asInt() ) - .lockedSell( node.get("locked_sell").asInt() ) - .lockedBuy( node.get("locked_buy").asInt() ) - .lockedBuyValue( node.get("locked_buy_value").asText() ) - .lockedSellValue( node.get("locked_sell_value").asText() ) - .awgPositionPrice( node.get("awg_position_price").asText() ) - .limitKind( node.get("limit_kind").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java deleted file mode 100644 index 8809f19..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class DestroyTableRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final DestroyTable.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "DestroyTable"); - - gen.writeNumberField("t_id", value.getTId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java deleted file mode 100644 index a5683a1..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/DestroyTableResultJsonDeserializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class DestroyTableResultJsonDeserializer extends JsonDeserializer { - - @Override - public DestroyTable.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - - return DestroyTable.Result.getInstance( node.get("result").asBoolean() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java deleted file mode 100644 index 5dd547f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/FuturesLimitDeleteJsonDeserializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class FuturesLimitDeleteJsonDeserializer extends JsonDeserializer { - - @Override - public FuturesLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return FuturesLimitDelete - .builder() - .firmId( asText(node, "firmid") ) - .limitType( node.get("limit_type").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java deleted file mode 100644 index 08f4932..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetBuySellInfoExRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetBuySellInfoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getBuySellInfoEx"); - - gen.writeStringField("firm_id", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("price", value.getPrice()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java deleted file mode 100644 index 0553509..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoExResultJsonDeserializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetBuySellInfoExResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetBuySellInfoEx.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx = - node.get("buy_sell_info_ex").traverse(objectCodec).readValueAs(GetBuySellInfoEx.BuySellInfoEx.class); - - return new GetBuySellInfoEx.Result(buySellInfoEx); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java deleted file mode 100644 index b4f2d5e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetBuySellInfoRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetBuySellInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getBuySellInfo"); - - gen.writeStringField("firm_id", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("price", value.getPrice()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java deleted file mode 100644 index 5864d91..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetBuySellInfoResultJsonDeserializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetBuySellInfoResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetBuySellInfo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - final GetBuySellInfo.BuySellInfo buySellInfo = - node.get("buy_sell_info").traverse(objectCodec).readValueAs(GetBuySellInfo.BuySellInfo.class); - - return new GetBuySellInfo.Result(buySellInfo); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java deleted file mode 100644 index 3c32b4a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetCandlesByIndexRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetCandlesByIndex.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getCandlesByIndex"); - - gen.writeStringField("tag", value.getTag()); - gen.writeNumberField("line", value.getLine()); - gen.writeNumberField("first_candle", value.getFirstCandle()); - gen.writeNumberField("count", value.getCount()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java deleted file mode 100644 index 85d5e87..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCandlesByIndexResultJsonDeserializer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.collect.ImmutableList; - -import java.io.IOException; -import java.util.Iterator; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class GetCandlesByIndexResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetCandlesByIndex.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - final ImmutableList.Builder candleEntries = ImmutableList.builder(); - final Iterator candleEntryIterator = node.get("t").elements(); - while ( candleEntryIterator.hasNext() ) { - final CandleEntry candleEntry = - candleEntryIterator.next() - .traverse(objectCodec) - .readValueAs(CandleEntry.class); - candleEntries.add(candleEntry); - } - - final int n = node.get("n").asInt(); - final String l = asText(node, "l"); - - return new GetCandlesByIndex.Result(candleEntries.build(), n, l); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java deleted file mode 100644 index 83a078f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellRequestJsonSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetCellRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetCell.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetCell"); - - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("key", value.getKey()); - gen.writeNumberField("code", value.getCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java deleted file mode 100644 index 3895b85..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetCellResultJsonDeserializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetCellResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetCell.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return GetCell.Result - .builder() - .image( node.get("image").asText() ) - .value( node.get("value").asText() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java deleted file mode 100644 index eaa27c3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassInfoRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetClassInfoRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetClassInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassInfo"); - - gen.writeStringField("class_code", value.getClassCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java deleted file mode 100644 index a6ec160..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetClassSecuritiesRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetClassSecurities.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassSecurities"); - - gen.writeStringField("class_code", value.getClassCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java deleted file mode 100644 index 5e7c36e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassSecuritiesResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetClassSecuritiesResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetClassSecurities.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new GetClassSecurities.Result( node.get("class_securities").asText() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java deleted file mode 100644 index 68729b4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetClassesListRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetClassesList.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getClassesList"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java deleted file mode 100644 index 8312063..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetClassesListResultJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetClassesListResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetClassesList.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new GetClassesList.Result( node.get("classes_list").asText() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java deleted file mode 100644 index e99ac60..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoExRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetDepoExRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetDepoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getDepoEx"); - - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("trdaccid", value.getTrdAccId()); - gen.writeNumberField("limit_kind", value.getLimitKind()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java deleted file mode 100644 index 94a8f6d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetDepoRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetDepo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getDepo"); - - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("trdaccid", value.getTrdAccId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java deleted file mode 100644 index 258239f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetDepoResultJsonDeserializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class GetDepoResultJsonDeserializer extends JsonDeserializer { - - @Override - public GetDepo.Result deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - final Depo depo = node.get("depo").traverse(objectCodec).readValueAs(Depo.class); - return new GetDepo.Result(depo); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java deleted file mode 100644 index e3cf4c4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesHoldingRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetFuturesHoldingRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetFuturesHolding.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getFuturesHolding"); - - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("trdaccid", value.getTrdAccId()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeNumberField("type", value.getType()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java deleted file mode 100644 index 52d3e0c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetFuturesLimitRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetFuturesLimitRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetFuturesLimit.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getFuturesLimit"); - - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("trdaccid", value.getTrdAccId()); - gen.writeNumberField("limit_type", value.getLimitType()); - gen.writeStringField("currcode", value.getCurrCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java deleted file mode 100644 index 8b7dbb0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetInfoParamRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetInfoParamRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetInfoParam.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getInfoParam"); - - gen.writeStringField("param_name", value.getParamName()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java deleted file mode 100644 index f97455e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetItemRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetItemRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetItem.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getItem"); - - gen.writeStringField("table_name", value.getTableName()); - gen.writeNumberField("index", value.getIndex()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java deleted file mode 100644 index 29706f4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLabelParamsRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetLabelParamsRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetLabelParams.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetLabelParams"); - - gen.writeStringField("chart_tag", value.getChartTag()); - gen.writeNumberField("label_id", value.getLabelId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java deleted file mode 100644 index 6e17bc6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetLinesCountRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetLinesCountRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetLinesCount.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getLinesCount"); - - gen.writeStringField("tag", value.getTag()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java deleted file mode 100644 index d365870..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyExRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetMoneyExRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetMoneyEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getMoneyEx"); - - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("tag", value.getTag()); - gen.writeStringField("currcode", value.getCurrCode()); - gen.writeNumberField("limit_kind", value.getLimitKind()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java deleted file mode 100644 index 5d038e7..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetMoneyRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetMoneyRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetMoney.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getMoney"); - - gen.writeStringField("client_code", value.getClientCode()); - gen.writeStringField("firmid", value.getFirmId()); - gen.writeStringField("tag", value.getTag()); - gen.writeStringField("currcode", value.getCurrCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java deleted file mode 100644 index a7e4a3b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumCandlesRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetNumCandlesRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetNumCandles.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getNumCandles"); - - gen.writeStringField("tag", value.getTag()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java deleted file mode 100644 index 32c7dd8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetNumberOfRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetNumberOfRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetNumberOf.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getNumberOf"); - - gen.writeStringField("table_name", value.getTableName()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java deleted file mode 100644 index cfcb63c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetOrderByNumberRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetOrderByNumberRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetOrderByNumber.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getOrderByNumber"); - - gen.writeStringField("class_code", value.getClassCode()); - gen.writeNumberField("order_id", value.getOrderId()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java deleted file mode 100644 index dd400b3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamEx2RequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetParamEx2RequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetParamEx2.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getParamEx2"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("param_name", value.getParamName()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java deleted file mode 100644 index e2ee784..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetParamExRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetParamExRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetParamEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getParamEx"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("param_name", value.getParamName()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java deleted file mode 100644 index db1cf70..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoExRequestJsonSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetPortfolioInfoExRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetPortfolioInfoEx.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getPortfolioInfoEx"); - - gen.writeStringField("firm_id", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - gen.writeNumberField("limit_kind", value.getLimitKind()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java deleted file mode 100644 index 7b72ce4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetPortfolioInfoRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetPortfolioInfoRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetPortfolioInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getPortfolioInfo"); - - gen.writeStringField("firm_id", value.getFirmId()); - gen.writeStringField("client_code", value.getClientCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java deleted file mode 100644 index e2c658a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetQuoteLevel2RequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetQuoteLevel2RequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetQuoteLevel2.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getQuoteLevel2"); - - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java deleted file mode 100644 index 2d97f25..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetScriptPathRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetScriptPathRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetScriptPath.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getScriptPath"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java deleted file mode 100644 index 08921f6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetSecurityInfoRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetSecurityInfoRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetSecurityInfo.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getSecurityInfo"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java deleted file mode 100644 index d3a3f79..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTableSizeRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetTableSizeRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetTableSize.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetTableSize"); - gen.writeNumberField("t_id", value.getTId()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java deleted file mode 100644 index de6fce5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetTradeDateRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetTradeDateRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetTradeDate.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getTradeDate"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java deleted file mode 100644 index 68cce1b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowCaptionRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetWindowCaptionRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetWindowCaption.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetWindowCaption"); - gen.writeNumberField("t_id", value.getTId()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java deleted file mode 100644 index cea2e2d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWindowRectRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetWindowRectRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetWindowRect.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "GetWindowRect"); - gen.writeNumberField("t_id", value.getTId()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java deleted file mode 100644 index 95474dc..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/GetWorkingFolderRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class GetWorkingFolderRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final GetWorkingFolder.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "getWorkingFolder"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java deleted file mode 100644 index eea0769..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/HighlightRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Highlight; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class HighlightRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Highlight.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Highlight"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("row", value.getRow()); - gen.writeNumberField("col", value.getCol()); - gen.writeNumberField("b_color", value.getBColor()); - gen.writeNumberField("f_color", value.getFColor()); - gen.writeNumberField("timeout", value.getTimeout()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} \ No newline at end of file diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java deleted file mode 100644 index ba14612..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/InsertRowRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class InsertRowRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final InsertRow.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "InsertRow"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("key", value.getKey()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java deleted file mode 100644 index 5fc3b52..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsConnectedRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class IsConnectedRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final IsConnected.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "isConnected"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java deleted file mode 100644 index 8c9496c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsSubscribedLevel2QuotesRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class IsSubscribedLevel2QuotesRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final IsSubscribedLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "IsSubscribed_Level_II_Quotes"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java deleted file mode 100644 index be3a697..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/IsWindowClosedRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class IsWindowClosedRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final IsWindowClosed.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "IsWindowClosed"); - gen.writeNumberField("t_id", value.getTId()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java deleted file mode 100644 index 213938a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MessageRequestJsonSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class MessageRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Message.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "message"); - gen.writeStringField("message", value.getMessage()); - if (value.getIconType() != null) { - gen.writeNumberField("icon_type", value.getIconType().value); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java deleted file mode 100644 index 9cc9383..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitDeleteJsonDeserializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class MoneyLimitDeleteJsonDeserializer extends JsonDeserializer { - - @Override - public MoneyLimitDelete deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return MoneyLimitDelete - .builder() - .currCode( asText(node, "currcode") ) - .tag( asText(node, "tag") ) - .clientCode( asText(node, "client_code") ) - .firmId( asText(node, "firmid") ) - .limitKind( node.get("limit_kind").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java deleted file mode 100644 index cc41e6a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/MoneyLimitJsonDeserializer.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class MoneyLimitJsonDeserializer extends JsonDeserializer { - - @Override - public MoneyLimit deserialize( - final JsonParser jsonParser, - final DeserializationContext deserializationContext) throws IOException { - - final JsonNode node = jsonParser.getCodec().readTree(jsonParser); - - return MoneyLimit.builder() - .currCode( asText(node, "currcode") ) - .tag( asText(node, "tag") ) - .firmId( asText(node, "firmid") ) - .clientCode( asText(node, "client_code") ) - .openBal( asText(node, "openbal") ) - .openLimit( asText(node, "openlimit") ) - .currentBal( asText(node, "currentbal") ) - .currentLimit( asText(node, "currentlimit") ) - .locked( asText(node, "locked") ) - .lockedValueCoef( asText(node, "locked_value_coef") ) - .lockedMarginValue( asText(node, "locked_margin_value") ) - .leverage( asText(node, "leverage") ) - .limitKind( node.get("limit_kind").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java deleted file mode 100644 index 676b4bc..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegDealJsonDeserializer.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class NegDealJsonDeserializer extends JsonDeserializer { - - @Override - public NegDeal deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return NegDeal.builder() - .negDealNum( node.get("neg_deal_num").asLong() ) - .negDealTime( asText(node, "neg_deal_time") ) - .flags( node.get("flags").asInt() ) - .brokerRef( asText(node, "brokerref") ) - .userId( asText(node, "userid") ) - .firmId( asText(node, "firmid") ) - .cpUserId( asText(node, "cpuserid") ) - .cpFirmId( asText(node, "cpfirmid") ) - .account( asText(node, "account") ) - .price( node.get("price").asText() ) - .qty( node.get("qty").asInt() ) - .matchRef( asText(node, "matchref") ) - .settleCode( asText(node, "settlecode") ) - .yield( asText(node, "yield") ) - .accruedInt( asText(node, "accruedint") ) - .value( asText(node, "value") ) - .price2( asText(node, "price2") ) - .repoRate( asText(node, "reporate") ) - .refundRate( asText(node, "refundrate") ) - .transId( asText(node, "trans_id") ) - .clientCode( asText(node, "client_code") ) - .repoEntry( node.get("repoentry").asInt() ) - .repoValue( asText(node, "repovalue") ) - .repo2Value( asText(node, "repo2value") ) - .repoTerm( asText(node, "repoterm") ) - .startDiscount( asText(node, "start_discount") ) - .lowerDiscount( asText(node, "lower_discount") ) - .upperDiscount( asText(node, "upper_discount") ) - .blockSecurities( asText(node, "block_securities") ) - .uid( asText(node, "uid") ) - .withdrawTime( asText(node, "withdraw_time") ) - .negDealDate( asText(node, "neg_deal_date") ) - .balance( asText(node, "balance") ) - .originRepoValue( asText(node, "origin_repovalue") ) - .originQty( asText(node, "origin_qty") ) - .originDiscount( asText(node, "origin_discount") ) - .negDealActivationDate( asText(node, "neg_deal_activation_date") ) - .negDealActivationTime( asText(node, "neg_deal_activation_time") ) - .quoteNo( asText(node, "quoteno") ) - .settleCurrency( asText(node, "settle_currency") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .bankAccId( asText(node, "bank_acc_id") ) - .withdrawDate( asText(node, "withdraw_date") ) - .linkedOrder( asText(node, "linkedorder") ) - .activationDateTime( node.get("activation_date_time") == null ? null : node.get("activation_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .withdrawDateTime( node.get("withdraw_date_time") == null ? null : node.get("withdraw_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .dateTime( node.get("date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java deleted file mode 100644 index 5ad75ee..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/NegTradeJsonDeserializer.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class NegTradeJsonDeserializer extends JsonDeserializer { - - @Override - public NegTrade deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - - return NegTrade.builder() - .tradeNum( node.get("trade_num").asLong() ) - .tradeDate( asText(node, "trade_date") ) - .settleDate( asText(node, "settle_date") ) - .flags( node.get("flags").asInt() ) - .brokerRef( asText(node, "brokerref") ) - .firmId( asText(node, "firmid") ) - .account( asText(node, "account") ) - .cpFirmId( asText(node, "cpfirmid") ) - .cpAccount( asText(node, "cpaccount") ) - .price( node.get("price").asText() ) - .qty( node.get("qty").asInt() ) - .value( asText(node, "value") ) - .settleCode( asText(node, "settlecode") ) - .reportNum( asText(node, "report_num") ) - .cpReportNum( asText(node, "cpreport_num") ) - .accruedInt( asText(node, "accruedint") ) - .repoTradeNo( asText(node, "repotradeno") ) - .price1( asText(node, "price1") ) - .repoRate( asText(node, "reporate") ) - .price2( asText(node,"price2") ) - .clientCode( asText(node, "client_code") ) - .tsComission( asText(node, "ts_comission") ) - .balance( asText(node, "balance") ) - .settleTime( asText(node, "settle_time") ) - .amount( asText(node, "amount") ) - .repoValue( asText(node, "repovalue") ) - .repoTerm( asText(node, "repoterm") ) - .repo2Value( asText(node, "repo2value") ) - .returnValue( asText(node, "return_value") ) - .discount( asText(node, "discount") ) - .lowerDiscount( asText(node, "lower_discount") ) - .upperDiscount( asText(node, "upper_discount") ) - .blockSecurities( asText(node, "block_securities") ) - .urgencyFlag( asText(node, "urgency_flag") ) - .type( node.get("type").asInt() ) - .operationType( node.get("operation_type").asInt() ) - .expectedDiscount( asText(node, "expected_discount") ) - .expectedQuantity( asText(node, "expected_quantity") ) - .expectedRepoValue( asText(node, "expected_repovalue") ) - .expectedRepo2Value( asText(node, "expected_repo2value") ) - .expectedReturnValue( asText(node, "expected_return_value") ) - .orderNum( asText(node, "order_num") ) - .reportTradeDate( asText(node, "report_trade_date") ) - .settled( node.get("settled").asInt() ) - .clearingType( node.get("clearing_type").asInt() ) - .reportComission( asText(node, "report_comission") ) - .couponPayment( asText(node, "coupon_payment") ) - .principalPayment( asText(node, "principal_payment") ) - .principalPaymentDate( asText(node, "principal_payment_date") ) - .nextDaySettle( asText(node, "nextdaysettle") ) - .settleCurrency( asText(node, "settle_currency") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .compVal( asText(node, "compval") ) - .parentTradeNo( asText(node, "parenttradeno") ) - .bankId( asText(node, "bankid") ) - .bankAccId( asText(node, "bankaccid") ) - .preciseBalance( asText(node, "precisebalance") ) - .confirmTime( asText(node, "confirmtime") ) - .exFlags( node.get("ex_flags").asInt() ) - .confirmReport( asText(node, "confirmreport") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java deleted file mode 100644 index 277eff4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/OrderJsonDeserializer.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class OrderJsonDeserializer extends JsonDeserializer { - - @Override - public Order deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return Order - .builder() - .orderNum( node.get("order_num").asLong() ) - .flags( node.get("flags").asInt() ) - .brokerRef( asText(node, "brokerref") ) - .userId( asText(node, "userid") ) - .firmId( asText(node, "firmid") ) - .account( asText(node, "account") ) - .price( asText(node, "price") ) - .qty( node.get("qty").asInt() ) - .balance( asText(node, "balance") ) - .value( asText(node, "value") ) - .accruedInt( asText(node, "accruedint") ) - .yield( asText(node, "yield") ) - .transId( asText(node, "trans_id") ) - .clientCode( asText(node, "client_code") ) - .price2( asText(node, "price2") ) - .settleCode( asText(node, "settlecode") ) - .uid( asText(node, "uid") ) - .canceledUid( asText(node, "canceled_uid") ) - .exchangeCode( asText(node, "exchange_code") ) - .activationTime( asText(node, "activation_time") ) - .linkedOrder( asText(node, "linkedorder") ) - .expiry( asText(node, "expiry") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .withdrawDatetime( node.get("withdraw_datetime") == null ? null : node.get("withdraw_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .bankAccId( asText(node, "bank_acc_id") ) - .valueEntryType( node.get("value_entry_type").asInt() ) - .repoTerm( asText(node, "repoterm") ) - .repoValue( asText(node, "repovalue") ) - .repo2Value( asText(node, "repo2value") ) - .repoValueBalance( asText(node, "repo_value_balance") ) - .startDiscount( asText(node, "start_discount") ) - .rejectReason( asText(node, "reject_reason") ) - .extOrderFlags( asText(node, "ext_order_flags") ) - .minQty( node.get("min_qty").asInt() ) - .execType( node.get("exec_type").asInt() ) - .sideQualifier( node.get("side_qualifier").asInt() ) - .acntType( node.get("acnt_type").asInt() ) - .capacity( node.get("capacity").asInt() ) - .passiveOnlyOrder( node.get("passive_only_order").asInt() ) - .visible( node.get("visible").asInt() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java deleted file mode 100644 index 1f8c662..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamEventInfoJsonDeserializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class ParamEventInfoJsonDeserializer extends JsonDeserializer { - - @Override - public ParamEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return ParamEventInfo - .builder() - .classCode( asText(node, "class_code") ) - .secCode( asText(node, "sec_code") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java deleted file mode 100644 index 0fc6940..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ParamRequestRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class ParamRequestRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final ParamRequest.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "ParamRequest"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - gen.writeStringField("db_name", value.getDbName()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java deleted file mode 100644 index 8956e04..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/PrintDbgStrRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class PrintDbgStrRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final PrintDbgStr.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "PrintDbgStr"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java deleted file mode 100644 index 31ff49d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonDeserializers.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.*; -import com.enfernuz.quik.lua.rpc.api.structures.*; -import com.fasterxml.jackson.databind.module.SimpleDeserializers; - -final class QluaJsonJacksonDeserializers extends SimpleDeserializers { - - public QluaJsonJacksonDeserializers() { - - super(); - - super.addDeserializer(ResponseEnvelope.class, new ResponseEnvelopeJsonDeserializer()); - - super.addDeserializer(StopEventInfo.class, new StopEventInfoJsonDeserializer()); - super.addDeserializer(Trade.class, new TradeJsonDeserializer()); - super.addDeserializer(Order.class, new OrderJsonDeserializer()); - super.addDeserializer(FuturesLimitDelete.class, new FuturesLimitDeleteJsonDeserializer()); - super.addDeserializer(MoneyLimit.class, new MoneyLimitJsonDeserializer()); - super.addDeserializer(MoneyLimitDelete.class, new MoneyLimitDeleteJsonDeserializer()); - super.addDeserializer(DepoLimit.class, new DepoLimitJsonDeserializer()); - super.addDeserializer(DepoLimitDelete.class, new DepoLimitDeleteJsonDeserializer()); - super.addDeserializer(NegDeal.class, new NegDealJsonDeserializer()); - super.addDeserializer(NegTrade.class, new NegTradeJsonDeserializer()); - super.addDeserializer(StopOrder.class, new StopOrderJsonDeserializer()); - super.addDeserializer(TransReply.class, new TransReplyJsonDeserializer()); - super.addDeserializer(ParamEventInfo.class, new ParamEventInfoJsonDeserializer()); - super.addDeserializer(QuoteEventInfo.class, new QuoteEventInfoJsonDeserializer()); - - super.addDeserializer(CalcBuySell.Result.class, new CalcBuySellResultJsonDeserializer()); - super.addDeserializer(CancelParamRequest.Result.class, new CancelParamRequestResultJsonDeserializer()); - super.addDeserializer(Clear.Result.class, new ClearResultJsonDeserializer()); - super.addDeserializer(CreateWindow.Result.class, new CreateWindowResultJsonDeserializer()); - super.addDeserializer(DelAllLabels.Result.class, new DelAllLabelsResultJsonDeserializer()); - super.addDeserializer(DeleteRow.Result.class, new DeleteRowResultJsonDeserializer()); - super.addDeserializer(DelLabel.Result.class, new DelLabelResultJsonDeserializer()); - super.addDeserializer(DestroyTable.Result.class, new DestroyTableResultJsonDeserializer()); - super.addDeserializer(GetBuySellInfo.BuySellInfo.class, new BuySellInfoJsonDeserializer()); - super.addDeserializer(GetBuySellInfo.Result.class, new GetBuySellInfoResultJsonDeserializer()); - super.addDeserializer(GetBuySellInfoEx.BuySellInfoEx.class, new BuySellInfoExJsonDeserializer()); - super.addDeserializer(GetBuySellInfoEx.Result.class, new GetBuySellInfoExResultJsonDeserializer()); - super.addDeserializer(CandleEntry.class, new CandleEntryJsonDeserializer()); - super.addDeserializer(GetCandlesByIndex.Result.class, new GetCandlesByIndexResultJsonDeserializer()); - super.addDeserializer(GetCell.Result.class, new GetCellResultJsonDeserializer()); - super.addDeserializer(GetClassesList.Result.class, new GetClassesListResultJsonDeserializer()); - super.addDeserializer(ClassInfo.class, new ClassInfoJsonDeserializer()); - super.addDeserializer(GetClassSecurities.Result.class, new GetClassSecuritiesResultJsonDeserializer()); - super.addDeserializer(Depo.class, new DepoJsonDeserializer()); - super.addDeserializer(GetDepo.Result.class, new GetDepoResultJsonDeserializer()); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java deleted file mode 100644 index 1e397ed..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonSerializers.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.*; -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.api.messages.bit.*; -import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; -import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; -import com.fasterxml.jackson.databind.module.SimpleSerializers; - -final class QluaJsonJacksonSerializers extends SimpleSerializers { - - public QluaJsonJacksonSerializers() { - - super(); - - super.addSerializer(AddColumn.Request.class, new AddColumnRequestJsonSerializer()); - super.addSerializer(AddLabel.Request.class, new AddLabelRequestJsonSerializer()); - super.addSerializer(AllocTable.Request.class, new AllocTableRequestJsonSerializer()); - super.addSerializer(CalcBuySell.Request.class, new CalcBuySellRequestJsonSerializer()); - super.addSerializer(CancelParamRequest.Request.class, new CancelParamRequestRequestJsonSerializer()); - super.addSerializer(Clear.Request.class, new ClearRequestJsonSerializer()); - super.addSerializer(CreateWindow.Request.class, new CreateWindowRequestJsonSerializer()); - super.addSerializer(DelAllLabels.Request.class, new DelAllLabelsRequestJsonSerializer()); - super.addSerializer(DeleteRow.Request.class, new DeleteRowRequestJsonSerializer()); - super.addSerializer(DelLabel.Request.class, new DelLabelRequestJsonSerializer()); - super.addSerializer(DestroyTable.Request.class, new DestroyTableRequestJsonSerializer()); - super.addSerializer(GetBuySellInfo.Request.class, new GetBuySellInfoRequestJsonSerializer()); - super.addSerializer(GetBuySellInfoEx.Request.class, new GetBuySellInfoExRequestJsonSerializer()); - super.addSerializer(GetCandlesByIndex.Request.class, new GetCandlesByIndexRequestJsonSerializer()); - super.addSerializer(GetCell.Request.class, new GetCellRequestJsonSerializer()); - super.addSerializer(GetClassesList.Request.class, new GetClassesListRequestJsonSerializer()); - super.addSerializer(GetClassInfo.Request.class, new GetClassInfoRequestJsonSerializer()); - super.addSerializer(GetClassSecurities.Request.class, new GetClassSecuritiesRequestJsonSerializer()); - super.addSerializer(GetDepo.Request.class, new GetDepoRequestJsonSerializer()); - super.addSerializer(GetDepoEx.Request.class, new GetDepoExRequestJsonSerializer()); - super.addSerializer(GetFuturesHolding.Request.class, new GetFuturesHoldingRequestJsonSerializer()); - super.addSerializer(GetFuturesLimit.Request.class, new GetFuturesLimitRequestJsonSerializer()); - super.addSerializer(GetInfoParam.Request.class, new GetInfoParamRequestJsonSerializer()); - super.addSerializer(GetItem.Request.class, new GetItemRequestJsonSerializer()); - super.addSerializer(GetLabelParams.Request.class, new GetLabelParamsRequestJsonSerializer()); - super.addSerializer(GetLinesCount.Request.class, new GetLinesCountRequestJsonSerializer()); - super.addSerializer(GetMoney.Request.class, new GetMoneyRequestJsonSerializer()); - super.addSerializer(GetMoneyEx.Request.class, new GetMoneyExRequestJsonSerializer()); - super.addSerializer(GetNumberOf.Request.class, new GetNumberOfRequestJsonSerializer()); - super.addSerializer(GetNumCandles.Request.class, new GetNumCandlesRequestJsonSerializer()); - super.addSerializer(GetOrderByNumber.Request.class, new GetOrderByNumberRequestJsonSerializer()); - super.addSerializer(GetPortfolioInfo.Request.class, new GetPortfolioInfoRequestJsonSerializer()); - super.addSerializer(GetPortfolioInfoEx.Request.class, new GetPortfolioInfoExRequestJsonSerializer()); - super.addSerializer(GetQuoteLevel2.Request.class, new GetQuoteLevel2RequestJsonSerializer()); - super.addSerializer(GetScriptPath.Request.class, new GetScriptPathRequestJsonSerializer()); - super.addSerializer(GetSecurityInfo.Request.class, new GetSecurityInfoRequestJsonSerializer()); - super.addSerializer(GetTableSize.Request.class, new GetTableSizeRequestJsonSerializer()); - super.addSerializer(GetTradeDate.Request.class, new GetTradeDateRequestJsonSerializer()); - super.addSerializer(GetWindowCaption.Request.class, new GetWindowCaptionRequestJsonSerializer()); - super.addSerializer(GetWindowRect.Request.class, new GetWindowRectRequestJsonSerializer()); - super.addSerializer(GetWorkingFolder.Request.class, new GetWorkingFolderRequestJsonSerializer()); - super.addSerializer(Highlight.Request.class, new HighlightRequestJsonSerializer()); - super.addSerializer(InsertRow.Request.class, new InsertRowRequestJsonSerializer()); - super.addSerializer(IsConnected.Request.class, new IsConnectedRequestJsonSerializer()); - super.addSerializer(IsSubscribedLevel2Quotes.Request.class, new IsSubscribedLevel2QuotesRequestJsonSerializer()); - super.addSerializer(IsWindowClosed.Request.class, new IsWindowClosedRequestJsonSerializer()); - super.addSerializer(Message.Request.class, new MessageRequestJsonSerializer()); - super.addSerializer(ParamRequest.Request.class, new ParamRequestRequestJsonSerializer()); - super.addSerializer(PrintDbgStr.Request.class, new PrintDbgStrRequestJsonSerializer()); - super.addSerializer(RGB.Request.class, new RGBRequestJsonSerializer()); - super.addSerializer(SearchItems.Request.class, new SearchItemsRequestJsonSerializer()); - super.addSerializer(SendTransaction.Request.class, new SendTransactionRequestJsonSerializer()); - super.addSerializer(SetCell.Request.class, new SetCellRequestJsonSerializer()); - super.addSerializer(SetColor.Request.class, new SetColorRequestJsonSerializer()); - super.addSerializer(SetLabelParams.Request.class, new SetLabelParamsRequestJsonSerializer()); - super.addSerializer(SetSelectedRow.Request.class, new SetSelectedRowRequestJsonSerializer()); - super.addSerializer(SetTableNotificationCallback.Request.class, new SetTableNotificationCallbackRequestJsonSerializer()); - super.addSerializer(SetWindowCaption.Request.class, new SetWindowCaptionRequestJsonSerializer()); - super.addSerializer(SetWindowPos.Request.class, new SetWindowPosRequestJsonSerializer()); - super.addSerializer(Sleep.Request.class, new SleepRequestJsonSerializer()); - super.addSerializer(SubscribeLevel2Quotes.Request.class, new SubscribeLevel2QuotesRequestJsonSerializer()); - super.addSerializer(UnsubscribeLevel2Quotes.Request.class, new UnsubscribeLevel2QuotesRequestJsonSerializer()); - super.addSerializer(BAnd.Request.class, new BitBAndRequestJsonSerializer()); - super.addSerializer(BOr.Request.class, new BitBOrRequestJsonSerializer()); - super.addSerializer(BXor.Request.class, new BitBXorRequestJsonSerializer()); - super.addSerializer(BNot.Request.class, new BitBNotRequestJsonSerializer()); - super.addSerializer(Test.Request.class, new BitTestRequestJsonSerializer()); - super.addSerializer(ToHex.Request.class, new BitToHexRequestJsonSerializer()); - super.addSerializer(SysDate.Request.class, new SysDateRequestJsonSerializer()); - super.addSerializer(CreateDataSource.Request.class, new DatasourceCreateDatasourceRequestJsonSerializer()); - super.addSerializer(O.Request.class, new DatasourceORequestJsonSerializer()); - super.addSerializer(H.Request.class, new DatasourceHRequestJsonSerializer()); - super.addSerializer(L.Request.class, new DatasourceLRequestJsonSerializer()); - super.addSerializer(C.Request.class, new DatasourceCRequestJsonSerializer()); - super.addSerializer(V.Request.class, new DatasourceVRequestJsonSerializer()); - super.addSerializer(Close.Request.class, new DatasourceCloseRequestJsonSerializer()); - super.addSerializer(SetEmptyCallback.Request.class, new DatasourceSetEmptyCallbackRequestJsonSerializer()); - super.addSerializer(SetUpdateCallback.Request.class, new DatasourceSetUpdateCallbackRequestJsonSerializer()); - super.addSerializer(Size.Request.class, new DatasourceSizeRequestJsonSerializer()); - super.addSerializer(T.Request.class, new DatasourceTRequestJsonSerializer()); - super.addSerializer(GetParamEx.Request.class, new GetParamExRequestJsonSerializer()); - super.addSerializer(GetParamEx2.Request.class, new GetParamEx2RequestJsonSerializer()); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java deleted file mode 100644 index c82ef93..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonJacksonUtils.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class QluaJsonJacksonUtils { - - private QluaJsonJacksonUtils() { - throw new AssertionError("This should never be invoked."); - } - - static String asText(final JsonNode node, final String fieldName) { - - final JsonNode value = node.get(fieldName); - return value == null ? null : value.asText(); - } - - static void prepareJsonGeneratorForMethod(final JsonGenerator jsonGenerator, final String methodName) - throws IOException { - - jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField("method", methodName); - jsonGenerator.writeObjectFieldStart("args"); - } - - static void finishJsonGenerator(final JsonGenerator jsonGenerator) - throws IOException { - - jsonGenerator.writeEndObject(); - jsonGenerator.writeEndObject(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java deleted file mode 100644 index ee081d6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QluaJsonModule.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.fasterxml.jackson.databind.module.SimpleModule; - -public final class QluaJsonModule extends SimpleModule { - - @Override - public void setupModule(SetupContext context) { - - super.setupModule(context); - - context.addSerializers( new QluaJsonJacksonSerializers() ); - context.addDeserializers( new QluaJsonJacksonDeserializers() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java deleted file mode 100644 index 6de40fe..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/QuoteEventInfoJsonDeserializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class QuoteEventInfoJsonDeserializer extends JsonDeserializer { - - @Override - public QuoteEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return QuoteEventInfo - .builder() - .classCode( asText(node, "class_code") ) - .secCode( asText(node, "sec_code") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java deleted file mode 100644 index 4ffb6da..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RGBRequestJsonSerializer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.RGB; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class RGBRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final RGB.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "RGB"); - gen.writeNumberField("red", value.getRed()); - gen.writeNumberField("blue", value.getBlue()); - gen.writeNumberField("green", value.getGreen()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RemoteProcedureClassJsonSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RemoteProcedureClassJsonSerde.java new file mode 100644 index 0000000..b4860a1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/RemoteProcedureClassJsonSerde.java @@ -0,0 +1,136 @@ +package com.enfernuz.quik.lua.rpc.serde.json.jackson; + +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.google.common.collect.ImmutableMap; + +import java.io.IOException; +import java.util.Map; + +public final class RemoteProcedureClassJsonSerde { + + private static final int PROCEDURES_COUNT = 82; + private static final Map, String> CLASS_TO_METHOD_NAME_MAP = createRegistry(); + + static { + assert PROCEDURES_COUNT == CLASS_TO_METHOD_NAME_MAP.size(); + } + + private RemoteProcedureClassJsonSerde() {} + + public static final class Serializer extends JsonSerializer> { + + @Override + public void serialize(final Class value, final JsonGenerator gen, final SerializerProvider provider) throws IOException { + + final String methodName = CLASS_TO_METHOD_NAME_MAP.get(value); + if (methodName == null) { + throw new SerdeException( + String.format("Для класса удалённой процедуры '%s' не найдено строчного представления наименования удалённой процедуры.", value.getName()) + ); + } + + gen.writeString(methodName); + } + } + + private static Map, String> createRegistry() { + + final ImmutableMap.Builder, String> result = ImmutableMap.builder(); + + result.put(AddColumn.class, "AddColumn"); + result.put(AddLabel.class, "AddLabel"); + result.put(AllocTable.class, "AllocTable"); + result.put(CalcBuySell.class, "CalcBuySell"); + result.put(CancelParamRequest.class, "CancelParamRequest"); + result.put(Clear.class, "Clear"); + result.put(CreateWindow.class, "AllocTable"); + result.put(DelAllLabels.class, "DelAllLabels"); + result.put(DeleteRow.class, "DeleteRow"); + result.put(DelLabel.class, "DelLabel"); + result.put(DestroyTable.class, "DestroyTable"); + result.put(GetBuySellInfo.class, "getBuySellInfo"); + result.put(GetBuySellInfoEx.class, "getBuySellInfoEx"); + result.put(GetCandlesByIndex.class, "getCandlesByIndex"); + result.put(GetCell.class, "GetCell"); + result.put(GetClassesList.class, "getClassesList"); + result.put(GetClassInfo.class, "getClassInfo"); + result.put(GetClassSecurities.class, "getClassSecurities"); + result.put(GetDepo.class, "getDepo"); + result.put(GetDepoEx.class, "getDepoEx"); + result.put(GetFuturesHolding.class, "getFuturesHolding"); + result.put(GetFuturesLimit.class, "getFuturesLimit"); + result.put(GetInfoParam.class, "getInfoParam"); + result.put(GetItem.class, "getItem"); + result.put(GetLabelParams.class, "GetLabelParams"); + result.put(GetLinesCount.class, "getLinesCount"); + result.put(GetMoney.class, "getMoney"); + result.put(GetMoneyEx.class, "getMoneyEx"); + result.put(GetNumberOf.class, "getNumberOf"); + result.put(GetNumCandles.class, "getNumCandles"); + result.put(GetOrderByNumber.class, "getOrderByNumber"); + result.put(GetParamEx.class, "getParamEx"); + result.put(GetParamEx2.class, "getParamEx2"); + result.put(GetPortfolioInfo.class, "getPortfolioInfo"); + result.put(GetPortfolioInfoEx.class, "getPortfolioInfoEx"); + result.put(GetQuoteLevel2.class, "getQuoteLevel2"); + result.put(GetScriptPath.class, "getScriptPath"); + result.put(GetSecurityInfo.class, "getSecurityInfo"); + result.put(GetTableSize.class, "GetTableSize"); + result.put(GetTradeDate.class, "getTradeDate"); + result.put(GetWindowCaption.class, "GetWindowCaption"); + result.put(GetWindowRect.class, "GetWindowRect"); + result.put(GetWorkingFolder.class, "getWorkingFolder"); + result.put(Highlight.class, "Highlight"); + result.put(InsertRow.class, "InsertRow"); + result.put(IsConnected.class, "isConnected"); + result.put(IsSubscribedLevel2Quotes.class, "IsSubscribed_Level_II_Quotes"); + result.put(IsWindowClosed.class, "IsWindowClosed"); + result.put(Message.class, "message"); + result.put(ParamRequest.class, "ParamRequest"); + result.put(PrintDbgStr.class, "PrintDbgStr"); + result.put(RGB.class, "RGB"); + result.put(SearchItems.class, "SearchItems"); + result.put(SendTransaction.class, "sendTransaction"); + result.put(SetCell.class, "SetCell"); + result.put(SetColor.class, "SetColor"); + result.put(SetLabelParams.class, "SetLabelParams"); + result.put(SetSelectedRow.class, "SetSelectedRow"); + result.put(SetTableNotificationCallback.class, "SetTableNotificationCallback"); + result.put(SetWindowCaption.class, "SetWindowCaption"); + result.put(SetWindowPos.class, "SetWindowPos"); + result.put(Sleep.class, "sleep"); + result.put(SubscribeLevel2Quotes.class, "Subscribe_Level_II_Quotes"); + result.put(UnsubscribeLevel2Quotes.class, "Unsubscribe_Level_II_Quotes"); + + result.put(BAnd.class, "bit.band"); + result.put(BNot.class, "bit.bnot"); + result.put(BOr.class, "bit.bor"); + result.put(BXor.class, "bit.bxor"); + result.put(Test.class, "bit.test"); + result.put(ToHex.class, "bit.tohex"); + + result.put(C.class, "datasource.C"); + result.put(Close.class, "datasource.Close"); + result.put(CreateDataSource.class, "datasource.CreateDataSource"); + result.put(H.class, "datasource.H"); + result.put(L.class, "datasource.L"); + result.put(O.class, "datasource.O"); + result.put(SetEmptyCallback.class, "datasource.SetEmptyCallback"); + result.put(SetUpdateCallback.class, "datasource.SetUpdateCallback"); + result.put(Size.class, "datasource.Size"); + result.put(T.class, "datasource.T"); + result.put(V.class, "datasource.V"); + + result.put(SysDate.class, "os.sysdate"); + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java index 7e3cec4..c22ae59 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/ResponseEnvelopeJsonDeserializer.java @@ -12,10 +12,10 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; -final class ResponseEnvelopeJsonDeserializer extends JsonDeserializer { +public final class ResponseEnvelopeJsonDeserializer extends JsonDeserializer { @Override - public ResponseEnvelope deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + public ResponseEnvelope deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { final ObjectCodec objectCodec = p.getCodec(); final JsonNode rootNode = objectCodec.readTree(p); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java deleted file mode 100644 index fdfe299..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SearchItemsRequestJsonSerializer.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.google.common.base.Strings; - -import java.io.IOException; - -final class SearchItemsRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SearchItems.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SearchItems"); - gen.writeStringField("table_name", value.getTableName()); - gen.writeNumberField("start_index", value.getStartIndex()); - gen.writeNumberField("end_index", value.getEndIndex()); - gen.writeStringField("fn_def", value.getFnDef()); - final String params = value.getParams(); - if ( !Strings.isNullOrEmpty(params) ) { - gen.writeStringField("params", params); - } - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java deleted file mode 100644 index 5f03061..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SendTransactionRequestJsonSerializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; -import java.util.Map; - -final class SendTransactionRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SendTransaction.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "sendTransaction"); - gen.writeObjectFieldStart("transaction"); - for (final Map.Entry entry : value.getTransaction().entrySet()) { - gen.writeStringField(entry.getKey(), entry.getValue()); - } - gen.writeEndObject(); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java deleted file mode 100644 index b917bf2..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetCellRequestJsonSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetCell; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetCellRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetCell.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetCell"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("key", value.getKey()); - gen.writeNumberField("code", value.getCode()); - gen.writeStringField("text", value.getText()); - gen.writeNumberField("value", value.getValue()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java deleted file mode 100644 index 22a7844..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetColorRequestJsonSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetColor; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetColorRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetColor.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetColor"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("row", value.getRow()); - gen.writeNumberField("col", value.getCol()); - gen.writeNumberField("b_color", value.getBColor()); - gen.writeNumberField("f_color", value.getFColor()); - gen.writeNumberField("sel_b_color", value.getSelBColor()); - gen.writeNumberField("sel_f_color", value.getSelFColor()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java deleted file mode 100644 index e3a6d0f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetLabelParamsRequestJsonSerializer.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; -import java.util.Map; - -final class SetLabelParamsRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetLabelParams.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetLabelParams"); - gen.writeStringField("chart_tag", value.getChartTag()); - gen.writeNumberField("label_id", value.getLabelId()); - gen.writeObjectFieldStart("label_params"); - for (final Map.Entry entry : value.getLabelParams().entrySet()) { - gen.writeStringField(entry.getKey(), entry.getValue()); - } - gen.writeEndObject(); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java deleted file mode 100644 index c38953d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetSelectedRowRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetSelectedRowRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetSelectedRow.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetSelectedRow"); - gen.writeNumberField("table_id", value.getTableId()); - gen.writeNumberField("row", value.getRow()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java deleted file mode 100644 index fac2bef..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetTableNotificationCallbackRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetTableNotificationCallbackRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetTableNotificationCallback.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetTableNotificationCallback"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeStringField("f_cb_def", value.getFCbDef()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java deleted file mode 100644 index 64ec2e6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowCaptionRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetWindowCaptionRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetWindowCaption.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetWindowCaption"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeStringField("str", value.getStr()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java deleted file mode 100644 index e6028a0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SetWindowPosRequestJsonSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SetWindowPosRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SetWindowPos.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "SetWindowPos"); - gen.writeNumberField("t_id", value.getTId()); - gen.writeNumberField("x", value.getX()); - gen.writeNumberField("y", value.getY()); - gen.writeNumberField("dx", value.getDx()); - gen.writeNumberField("dy", value.getDy()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java deleted file mode 100644 index a312763..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SleepRequestJsonSerializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.Sleep; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SleepRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final Sleep.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "sleep"); - gen.writeNumberField("time", value.getTime()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java deleted file mode 100644 index 78cd77e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopEventInfoJsonDeserializer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -final class StopEventInfoJsonDeserializer extends JsonDeserializer { - - @Override - public StopEventInfo deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final JsonNode node = p.getCodec().readTree(p); - return new StopEventInfo( node.get("signal").asInt() ); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java deleted file mode 100644 index b6584ab..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/StopOrderJsonDeserializer.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class StopOrderJsonDeserializer extends JsonDeserializer { - - @Override - public StopOrder deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return StopOrder.builder() - .orderNum( node.get("order_num").asLong() ) - .orderTime( asText(node, "ordertime") ) - .flags( node.get("flags").asInt() ) - .brokerRef( asText(node, "brokerref") ) - .firmId( asText(node, "firmid") ) - .account( asText(node, "account") ) - .condition( node.get("condition").asInt() ) - .conditionPrice( asText(node, "condition_price") ) - .price( node.get("price").asText() ) - .qty( node.get("qty").asInt() ) - .linkedOrder( asText(node, "linkedorder") ) - .expiry( asText(node, "expiry") ) - .transId( asText(node, "trans_id") ) - .clientCode( asText(node, "client_code") ) - .coOrderNum( asText(node, "co_order_num") ) - .coOrderPrice( asText(node, "co_order_price") ) - .stopOrderType( node.get("stop_order_type").asInt() ) - .orderDate( asText(node, "orderdate") ) - .allTradeNum( asText(node, "alltrade_num") ) - .stopFlags( node.get("stopflags").asInt() ) - .offset( asText(node, "offset") ) - .spread( asText(node, "spread") ) - .balance( asText(node, "balance") ) - .uid( asText(node, "uid") ) - .filledQty( node.get("filled_qty").asInt() ) - .withdrawTime( asText(node, "withdraw_time") ) - .conditionPrice2( asText(node, "condition_price2") ) - .activeFromTime( asText(node, "active_from_time") ) - .activeToTime( asText(node, "active_to_time") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .conditionSecCode( asText(node, "condition_sec_code") ) - .conditionClassCode( asText(node, "condition_class_code") ) - .canceledUid( asText(node, "canceled_uid") ) - .orderDateTime( node.get("order_date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .withdrawDateTime( node.get("withdraw_datetime") == null ? null : node.get("withdraw_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java deleted file mode 100644 index 0577a95..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SubscribeLevel2QuotesRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SubscribeLevel2QuotesRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SubscribeLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Subscribe_Level_II_Quotes"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java deleted file mode 100644 index a5f2fe8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/SysDateRequestJsonSerializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class SysDateRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final SysDate.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "os.sysdate"); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java deleted file mode 100644 index 6400b60..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TradeJsonDeserializer.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Trade; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class TradeJsonDeserializer extends JsonDeserializer { - - @Override - public Trade deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return Trade - .builder() - .tradeNum( node.get("trade_num").asLong() ) - .orderNum( node.get("order_num").asLong() ) - .brokerRef( asText(node, "brokerref") ) - .userId( asText(node, "userid") ) - .firmId( asText(node, "firmid") ) - .canceledUid( asText(node, "canceled_uid") ) - .account( asText(node, "account") ) - .price( node.get("price").asText() ) - .qty( node.get("qty").asInt() ) - .value( node.get("value").asText() ) - .accruedInt( asText(node, "accruedint") ) - .yield( asText(node, "yield") ) - .settleCode( asText(node, "settlecode") ) - .cpFirmId( asText(node, "cpfirmid") ) - .flags( node.get("flags").asInt() ) - .price2( asText(node, "price2") ) - .repoRate( asText(node, "reporate") ) - .clientCode( asText(node, "client_code") ) - .accrued2( asText(node, "accrued2") ) - .repoTerm( asText(node, "repoterm") ) - .repoValue( asText(node, "repovalue") ) - .repo2Value( asText(node, "repo2value") ) - .startDiscount( asText(node, "start_discount") ) - .lowerDiscount( asText(node, "lower_discount") ) - .upperDiscount( asText(node, "upper_discount") ) - .blockSecurities( asText(node, "block_securities") ) - .clearingComission( asText(node, "clearing_comission") ) - .exchangeComission( asText(node, "exchange_comission") ) - .techCenterComission( asText(node, "tech_center_comission") ) - .settleDate( asText(node, "settle_date") ) - .settleCurrency( asText(node, "settle_currency") ) - .tradeCurrency( asText(node, "trade_currency") ) - .exchangeCode( asText(node, "exchange_code") ) - .stationId( asText(node, "station_id") ) - .secCode( asText(node, "sec_code") ) - .classCode( asText(node, "class_code") ) - .datetime( node.get("datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .bankAccId( asText(node, "bank_acc_id") ) - .brokerComission( asText(node, "broker_comission") ) - .linkedTrade( asText(node, "linked_trade") ) - .period( node.get("period").asInt() ) - .transId( asText(node, "trans_id") ) - .kind( node.get("kind").asInt() ) - .clearingBankAccId( asText(node, "clearing_bank_accid") ) - .canceledDatetime(node.hasNonNull("canceled_datetime") ? node.get("canceled_datetime").traverse(objectCodec).readValueAs(DateTimeEntry.class) : null) - .clearingFirmId( asText(node, "clearing_firmid") ) - .systemRef( asText(node, "system_ref") ) - .uid( asText(node, "uid") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java deleted file mode 100644 index bd62ca3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/TransReplyJsonDeserializer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.TransReply; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -import static com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonJacksonUtils.asText; - -final class TransReplyJsonDeserializer extends JsonDeserializer { - - @Override - public TransReply deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { - - final ObjectCodec objectCodec = p.getCodec(); - final JsonNode node = objectCodec.readTree(p); - - return TransReply.builder() - .transId( node.get("trans_id").asLong() ) - .status( node.get("status").asInt() ) - .resultMsg( asText(node, "result_msg") ) - .dateTime( node.get("date_time").traverse(objectCodec).readValueAs(DateTimeEntry.class) ) - .uid( node.get("uid").asText() ) - .flags( node.get("flags").asInt() ) - .serverTransId( asText(node, "server_trans_id") ) - .orderNum( asText(node, "order_num") ) - .price( asText(node, "price") ) - .quantity( asText(node, "quantity") ) - .balance( asText(node, "balance") ) - .firmId( asText(node, "firm_id") ) - .account( asText(node, "account") ) - .clientCode( asText(node, "client_code") ) - .brokerRef( asText(node, "brokerref") ) - .classCode( asText(node, "class_code") ) - .secCode( asText(node, "sec_code") ) - .exchangeCode( asText(node, "exchange_code") ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java deleted file mode 100644 index 816838f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/jackson/UnsubscribeLevel2QuotesRequestJsonSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.json.jackson; - -import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; - -final class UnsubscribeLevel2QuotesRequestJsonSerializer extends JsonSerializer { - - @Override - public void serialize(final UnsubscribeLevel2Quotes.Request value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException { - - QluaJsonJacksonUtils.prepareJsonGeneratorForMethod(gen, "Unsubscribe_Level_II_Quotes"); - gen.writeStringField("class_code", value.getClassCode()); - gen.writeStringField("sec_code", value.getSecCode()); - QluaJsonJacksonUtils.finishJsonGenerator(gen); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java new file mode 100644 index 0000000..d8dd35e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbDeserializer.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum AccountBalancePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountBalance deserialize(final byte[] data) { + return convert( QluaStructures.AccountBalance.parseFrom(data) ); + } + + @Override + public AccountBalance convert(@NotNull final QluaStructures.AccountBalance accountBalance) { + + return AccountBalance + .builder() + .firmId( convertFromPbString(accountBalance.getFirmid()) ) + .secCode( convertFromPbString(accountBalance.getSecCode()) ) + .trdAccId( convertFromPbString(accountBalance.getTrdaccid()) ) + .depAccId( convertFromPbString(accountBalance.getDepaccid()) ) + .openBal( convertFromPbString(accountBalance.getOpenbal()) ) + .currentPos( convertFromPbString(accountBalance.getCurrentpos()) ) + .plannedPosSell( convertFromPbString(accountBalance.getPlannedpossell()) ) + .plannedPosBuy( convertFromPbString(accountBalance.getPlannedposbuy()) ) + .planBal( convertFromPbString(accountBalance.getPlanbal()) ) + .usqtyb( convertFromPbString(accountBalance.getUsqtyb()) ) + .usqtys( convertFromPbString(accountBalance.getUsqtys()) ) + .planned( convertFromPbString(accountBalance.getPlanned()) ) + .settleBal( convertFromPbString(accountBalance.getSettlebal()) ) + .bankAccId( convertFromPbString(accountBalance.getBankAccId()) ) + .firmUse( accountBalance.getFirmuse() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java deleted file mode 100644 index 1c70307..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerde.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum AccountBalancePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AccountBalance accountBalance) { - return convertToPb(accountBalance).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AccountBalance deserialize(final byte[] data) { - return convertFromPb( QluaStructures.AccountBalance.parseFrom(data) ); - } - - @Override - public AccountBalance convertFromPb(@NotNull final QluaStructures.AccountBalance accountBalance) { - - return AccountBalance - .builder() - .firmId( convertFromPbString(accountBalance.getFirmid()) ) - .secCode( convertFromPbString(accountBalance.getSecCode()) ) - .trdAccId( convertFromPbString(accountBalance.getTrdaccid()) ) - .depAccId( convertFromPbString(accountBalance.getDepaccid()) ) - .openBal( convertFromPbString(accountBalance.getOpenbal()) ) - .currentPos( convertFromPbString(accountBalance.getCurrentpos()) ) - .plannedPosSell( convertFromPbString(accountBalance.getPlannedpossell()) ) - .plannedPosBuy( convertFromPbString(accountBalance.getPlannedposbuy()) ) - .planBal( convertFromPbString(accountBalance.getPlanbal()) ) - .usqtyb( convertFromPbString(accountBalance.getUsqtyb()) ) - .usqtys( convertFromPbString(accountBalance.getUsqtys()) ) - .planned( convertFromPbString(accountBalance.getPlanned()) ) - .settleBal( convertFromPbString(accountBalance.getSettlebal()) ) - .bankAccId( convertFromPbString(accountBalance.getBankAccId()) ) - .firmUse( accountBalance.getFirmuse() ) - .build(); - } - - @Override - public QluaStructures.AccountBalance convertToPb(@NotNull final AccountBalance accountBalance) { - - return QluaStructures.AccountBalance.newBuilder() - .setFirmid( convertToPbString(accountBalance.getFirmId()) ) - .setSecCode( convertToPbString(accountBalance.getSecCode()) ) - .setTrdaccid( convertToPbString(accountBalance.getTrdAccId()) ) - .setDepaccid( convertToPbString(accountBalance.getDepAccId()) ) - .setOpenbal( convertToPbString(accountBalance.getOpenBal()) ) - .setCurrentpos( convertToPbString(accountBalance.getCurrentPos()) ) - .setPlannedpossell( convertToPbString(accountBalance.getPlannedPosSell()) ) - .setPlannedposbuy( convertToPbString(accountBalance.getPlannedPosBuy()) ) - .setPlanbal( convertToPbString(accountBalance.getPlanBal()) ) - .setUsqtyb( convertToPbString(accountBalance.getUsqtyb()) ) - .setUsqtys( convertToPbString(accountBalance.getUsqtys()) ) - .setPlanned( convertToPbString(accountBalance.getPlanned()) ) - .setSettlebal( convertToPbString(accountBalance.getSettleBal()) ) - .setBankAccId( convertToPbString(accountBalance.getBankAccId()) ) - .setFirmuse( accountBalance.getFirmUse() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java new file mode 100644 index 0000000..9bec448 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbDeserializer.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum AccountPositionPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AccountPosition deserialize(final byte[] data) { + return convert( QluaStructures.AccountPosition.parseFrom(data) ); + } + + @Override + public AccountPosition convert(@NotNull final QluaStructures.AccountPosition accountPosition) { + + return AccountPosition + .builder() + .firmId( convertFromPbString(accountPosition.getFirmid()) ) + .currCode( convertFromPbString(accountPosition.getCurrcode()) ) + .tag( convertFromPbString(accountPosition.getTag()) ) + .description( convertFromPbString(accountPosition.getDescription()) ) + .openBal( convertFromPbString(accountPosition.getOpenbal()) ) + .currentPos( convertFromPbString(accountPosition.getCurrentpos()) ) + .plannedPos( convertFromPbString(accountPosition.getPlannedpos()) ) + .limit1( convertFromPbString(accountPosition.getLimit1()) ) + .limit2( convertFromPbString(accountPosition.getLimit2()) ) + .orderBuy( convertFromPbString(accountPosition.getOrderbuy()) ) + .orderSell( convertFromPbString(accountPosition.getOrdersell()) ) + .netto( convertFromPbString(accountPosition.getNetto()) ) + .plannedBal( convertFromPbString(accountPosition.getPlannedbal()) ) + .debit( convertFromPbString(accountPosition.getDebit()) ) + .credit( convertFromPbString(accountPosition.getCredit()) ) + .bankAccId( convertFromPbString(accountPosition.getBankAccId()) ) + .marginCall( convertFromPbString(accountPosition.getMargincall()) ) + .settleBal( convertFromPbString(accountPosition.getSettlebal()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java deleted file mode 100644 index 5d13a5b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerde.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum AccountPositionPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AccountPosition accountPosition) { - return convertToPb(accountPosition).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AccountPosition deserialize(final byte[] data) { - return convertFromPb( QluaStructures.AccountPosition.parseFrom(data) ); - } - - @Override - public AccountPosition convertFromPb(@NotNull final QluaStructures.AccountPosition accountPosition) { - - return AccountPosition - .builder() - .firmId( convertFromPbString(accountPosition.getFirmid()) ) - .currCode( convertFromPbString(accountPosition.getCurrcode()) ) - .tag( convertFromPbString(accountPosition.getTag()) ) - .description( convertFromPbString(accountPosition.getDescription()) ) - .openBal( convertFromPbString(accountPosition.getOpenbal()) ) - .currentPos( convertFromPbString(accountPosition.getCurrentpos()) ) - .plannedPos( convertFromPbString(accountPosition.getPlannedpos()) ) - .limit1( convertFromPbString(accountPosition.getLimit1()) ) - .limit2( convertFromPbString(accountPosition.getLimit2()) ) - .orderBuy( convertFromPbString(accountPosition.getOrderbuy()) ) - .orderSell( convertFromPbString(accountPosition.getOrdersell()) ) - .netto( convertFromPbString(accountPosition.getNetto()) ) - .plannedBal( convertFromPbString(accountPosition.getPlannedbal()) ) - .debit( convertFromPbString(accountPosition.getDebit()) ) - .credit( convertFromPbString(accountPosition.getCredit()) ) - .bankAccId( convertFromPbString(accountPosition.getBankAccId()) ) - .marginCall( convertFromPbString(accountPosition.getMargincall()) ) - .settleBal( convertFromPbString(accountPosition.getSettlebal()) ) - .build(); - } - - @Override - public QluaStructures.AccountPosition convertToPb(@NotNull final AccountPosition accountPosition) { - - return QluaStructures.AccountPosition.newBuilder() - .setFirmid( convertToPbString(accountPosition.getFirmId()) ) - .setCurrcode( convertToPbString(accountPosition.getCurrCode()) ) - .setTag( convertToPbString(accountPosition.getTag()) ) - .setDescription( convertToPbString(accountPosition.getDescription()) ) - .setOpenbal( convertToPbString(accountPosition.getOpenBal()) ) - .setCurrentpos( convertToPbString(accountPosition.getCurrentPos()) ) - .setPlannedpos( convertToPbString(accountPosition.getPlannedPos()) ) - .setLimit1( convertToPbString(accountPosition.getLimit1()) ) - .setLimit2( convertToPbString(accountPosition.getLimit2()) ) - .setOrderbuy( convertToPbString(accountPosition.getOrderBuy()) ) - .setOrdersell( convertToPbString(accountPosition.getOrderSell()) ) - .setNetto( convertToPbString(accountPosition.getNetto()) ) - .setPlannedbal( convertToPbString(accountPosition.getPlannedBal()) ) - .setDebit( convertToPbString(accountPosition.getDebit()) ) - .setCredit( convertToPbString(accountPosition.getCredit()) ) - .setBankAccId( convertToPbString(accountPosition.getBankAccId()) ) - .setMargincall( convertToPbString(accountPosition.getMarginCall()) ) - .setSettlebal( convertToPbString(accountPosition.getSettleBal()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java new file mode 100644 index 0000000..621c1ee --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java @@ -0,0 +1,58 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; + +enum AddColumnArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final AddColumn.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.AddColumn.Request convert(@NotNull final AddColumn.Args args) { + + final AddColumn.ColumnParameterType parType = args.getParType(); + final qlua.rpc.AddColumn.ColumnParameterType pbParType; + switch (parType) { + case QTABLE_INT_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT_TYPE; + break; + case QTABLE_DOUBLE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; + break; + case QTABLE_INT64_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + break; + case QTABLE_CACHED_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; + break; + case QTABLE_TIME_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; + break; + case QTABLE_DATE_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; + break; + case QTABLE_STRING_TYPE: + pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; + break; + default: + throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца): '%s'.", parType)); + } + + return qlua.rpc.AddColumn.Request.newBuilder() + .setTId( args.getTId() ) + .setIcode( args.getICode() ) + .setName( convertToPbString(args.getName()) ) + .setIsDefault( args.isDefault() ) + .setParTypeValue( pbParType.getNumber() ) + .setWidth( args.getWidth() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java deleted file mode 100644 index 2cc4769..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerde.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum AddColumnRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AddColumn.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( RPC.ProcedureType.ADD_COLUMN.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AddColumn.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), RPC.ProcedureType.ADD_COLUMN); - - return convertFromPb( - qlua.rpc.AddColumn.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public AddColumn.Request convertFromPb(@NotNull final qlua.rpc.AddColumn.Request request) { - - final qlua.rpc.AddColumn.ColumnParameterType pbParType = request.getParType(); - final AddColumn.ColumnParameterType parType; - switch (pbParType) { - case QTABLE_INT_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_INT_TYPE; - break; - case QTABLE_DOUBLE_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; - break; - case QTABLE_INT64_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; - break; - case QTABLE_CACHED_STRING_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; - break; - case QTABLE_TIME_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; - break; - case QTABLE_DATE_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; - break; - case QTABLE_STRING_TYPE: - parType = AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; - break; - default: - throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца) для формата protobuf: '%s'.", pbParType)); - } - - return AddColumn.Request.builder() - .tId( request.getTId() ) - .iCode( request.getIcode() ) - .name( convertFromPbString(request.getName()) ) - .isDefault( request.getIsDefault() ) - .parType(parType) - .width( request.getWidth() ) - .build(); - } - - @Override - public qlua.rpc.AddColumn.Request convertToPb(@NotNull final AddColumn.Request request) { - - final AddColumn.ColumnParameterType parType = request.getParType(); - final qlua.rpc.AddColumn.ColumnParameterType pbParType; - switch (parType) { - case QTABLE_INT_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT_TYPE; - break; - case QTABLE_DOUBLE_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DOUBLE_TYPE; - break; - case QTABLE_INT64_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; - break; - case QTABLE_CACHED_STRING_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_CACHED_STRING_TYPE; - break; - case QTABLE_TIME_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_TIME_TYPE; - break; - case QTABLE_DATE_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_DATE_TYPE; - break; - case QTABLE_STRING_TYPE: - pbParType = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_STRING_TYPE; - break; - default: - throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца): '%s'.", parType)); - } - - return qlua.rpc.AddColumn.Request.newBuilder() - .setTId( request.getTId() ) - .setIcode( request.getICode() ) - .setName( convertToPbString(request.getName()) ) - .setIsDefault( request.isDefault() ) - .setParTypeValue( pbParType.getNumber() ) - .setWidth( request.getWidth() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbDeserializer.java new file mode 100644 index 0000000..f6931c3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AddColumnResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddColumn.Result deserialize(final byte[] data) { + return convert( qlua.rpc.AddColumn.Result.parseFrom(data) ); + } + + @Override + public AddColumn.Result convert(@NotNull final qlua.rpc.AddColumn.Result result) { + return new AddColumn.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java deleted file mode 100644 index f165320..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum AddColumnResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AddColumn.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AddColumn.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.AddColumn.Result.parseFrom(data) ); - } - - @Override - public AddColumn.Result convertFromPb(@NotNull final qlua.rpc.AddColumn.Result result) { - return new AddColumn.Result( result.getResult() ); - } - - @Override - public qlua.rpc.AddColumn.Result convertToPb(@NotNull final AddColumn.Result result) { - return qlua.rpc.AddColumn.Result.newBuilder() - .setResult( result.getResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java new file mode 100644 index 0000000..fb96b1c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum AddLabelArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final AddLabel.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.AddLabel.Request convert(@NotNull final AddLabel.Args args) { + + return qlua.rpc.AddLabel.Request.newBuilder() + .setChartTag( args.getChartTag() ) + .putAllLabelParams( args.getLabelParams() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java deleted file mode 100644 index d08cb4d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerde.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum AddLabelRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AddLabel.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( RPC.ProcedureType.ADD_LABEL.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AddLabel.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), RPC.ProcedureType.ADD_LABEL); - - return convertFromPb( - qlua.rpc.AddLabel.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public AddLabel.Request convertFromPb(@NotNull final qlua.rpc.AddLabel.Request request) { - - return AddLabel.Request.builder() - .chartTag( request.getChartTag() ) - .labelParams( request.getLabelParamsMap() ) - .build(); - } - - @Override - public qlua.rpc.AddLabel.Request convertToPb(@NotNull final AddLabel.Request request) { - - return qlua.rpc.AddLabel.Request.newBuilder() - .setChartTag( request.getChartTag() ) - .putAllLabelParams( request.getLabelParams() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbDeserializer.java new file mode 100644 index 0000000..27a1550 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AddLabelResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AddLabel.Result deserialize(final byte[] data) { + return convert( qlua.rpc.AddLabel.Result.parseFrom(data) ); + } + + @Override + public AddLabel.Result convert(@NotNull final qlua.rpc.AddLabel.Result result) { + return new AddLabel.Result(result.getNullResult() ? null : result.getLabelId()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java deleted file mode 100644 index 350a02c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum AddLabelResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AddLabel.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AddLabel.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.AddLabel.Result.parseFrom(data) ); - } - - @Override - public AddLabel.Result convertFromPb(@NotNull final qlua.rpc.AddLabel.Result result) { - return new AddLabel.Result( result.getLabelId() ); - } - - @Override - public qlua.rpc.AddLabel.Result convertToPb(@NotNull final AddLabel.Result result) { - return qlua.rpc.AddLabel.Result.newBuilder() - .setLabelId( result.getLabelId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java new file mode 100644 index 0000000..4b35ced --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java @@ -0,0 +1,47 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum AllTradePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AllTrade deserialize(final byte[] data) { + return convert( QluaStructures.AllTrade.parseFrom(data) ); + } + + @Override + public AllTrade convert(@NotNull final QluaStructures.AllTrade allTrade) { + + return AllTrade + .builder() + .tradeNum( allTrade.getNullTradeNum() ? null : allTrade.getValueTradeNum() ) + .flags( allTrade.getNullFlags() ? null : allTrade.getValueFlags() ) + .price( allTrade.getPrice() ) + .qty( allTrade.getNullQty() ? null : allTrade.getValueQty() ) + .value( convertFromPbString(allTrade.getValue()) ) + .accruedInt( convertFromPbString(allTrade.getAccruedint()) ) + .yield( convertFromPbString(allTrade.getYield()) ) + .settleCode( convertFromPbString(allTrade.getSettlecode()) ) + .repoRate( convertFromPbString(allTrade.getReporate()) ) + .repoValue( convertFromPbString(allTrade.getRepovalue()) ) + .repo2Value( convertFromPbString(allTrade.getRepo2Value()) ) + .repoTerm( convertFromPbString(allTrade.getRepoterm()) ) + .secCode( convertFromPbString(allTrade.getSecCode()) ) + .classCode( convertFromPbString(allTrade.getClassCode()) ) + .datetime(allTrade.hasDatetime() ? DateTimeEntryPbDeserializer.INSTANCE.convert(allTrade.getDatetime()) : null) + .period( allTrade.getPeriod() ) + .openInterest( convertFromPbString(allTrade.getOpenInterest()) ) + .exchangeCode( convertFromPbString(allTrade.getExchangeCode()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java deleted file mode 100644 index 9fba397..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerde.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum AllTradePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AllTrade allTrade) { - return convertToPb(allTrade).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AllTrade deserialize(final byte[] data) { - return convertFromPb( QluaStructures.AllTrade.parseFrom(data) ); - } - - @Override - public AllTrade convertFromPb(@NotNull final QluaStructures.AllTrade allTrade) { - - return AllTrade - .builder() - .tradeNum( allTrade.getTradeNum() ) - .flags( allTrade.getFlags() ) - .price( allTrade.getPrice() ) - .qty( allTrade.getQty() ) - .value( convertFromPbString(allTrade.getValue()) ) - .accruedInt( convertFromPbString(allTrade.getAccruedint()) ) - .yield( convertFromPbString(allTrade.getYield()) ) - .settleCode( convertFromPbString(allTrade.getSettlecode()) ) - .repoRate( convertFromPbString(allTrade.getReporate()) ) - .repoValue( convertFromPbString(allTrade.getRepovalue()) ) - .repo2Value( convertFromPbString(allTrade.getRepo2Value()) ) - .repoTerm( convertFromPbString(allTrade.getRepoterm()) ) - .secCode( convertFromPbString(allTrade.getSecCode()) ) - .classCode( convertFromPbString(allTrade.getClassCode()) ) - .datetime( DateTimeEntryPbSerde.INSTANCE.convertFromPb(allTrade.getDatetime()) ) - .period( allTrade.getPeriod() ) - .openInterest( convertFromPbString(allTrade.getOpenInterest()) ) - .exchangeCode( convertFromPbString(allTrade.getExchangeCode()) ) - .build(); - } - - @Override - public QluaStructures.AllTrade convertToPb(@NotNull final AllTrade allTrade) { - - return QluaStructures.AllTrade.newBuilder() - .setTradeNum( allTrade.getTradeNum() ) - .setFlags( allTrade.getFlags() ) - .setPrice( allTrade.getPrice() ) - .setQty( allTrade.getQty() ) - .setValue( convertToPbString(allTrade.getValue()) ) - .setAccruedint( convertToPbString(allTrade.getAccruedInt()) ) - .setYield( convertToPbString(allTrade.getYield()) ) - .setSettlecode( convertToPbString(allTrade.getSettleCode()) ) - .setReporate( convertToPbString(allTrade.getRepoRate()) ) - .setRepovalue( convertToPbString(allTrade.getRepoValue()) ) - .setRepo2Value( convertToPbString(allTrade.getRepo2Value()) ) - .setRepoterm( convertToPbString(allTrade.getRepoTerm()) ) - .setSecCode( convertToPbString(allTrade.getSecCode()) ) - .setClassCode( convertToPbString(allTrade.getClassCode()) ) - .setDatetime( DateTimeEntryPbSerde.INSTANCE.convertToPb(allTrade.getDatetime()) ) - .setPeriod( allTrade.getPeriod() ) - .setOpenInterest( convertToPbString(allTrade.getOpenInterest()) ) - .setExchangeCode( convertToPbString(allTrade.getExchangeCode()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java deleted file mode 100644 index fdb7992..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerde.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum AllocTableRequestPbSerde implements Serde { - - INSTANCE; - - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final AllocTable.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AllocTable.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), RPC.ProcedureType.ALLOC_TABLE); - - return AllocTable.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( RPC.ProcedureType.ALLOC_TABLE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbDeserializer.java new file mode 100644 index 0000000..e4ba44d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum AllocTableResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public AllocTable.Result deserialize(final byte[] data) { + return convert( qlua.rpc.AllocTable.Result.parseFrom(data) ); + } + + @Override + public AllocTable.Result convert(@NotNull final qlua.rpc.AllocTable.Result result) { + return new AllocTable.Result( result.getTId() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java deleted file mode 100644 index 59f55b1..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum AllocTableResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final AllocTable.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public AllocTable.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.AllocTable.Result.parseFrom(data) ); - } - - @Override - public AllocTable.Result convertFromPb(@NotNull final qlua.rpc.AllocTable.Result result) { - return new AllocTable.Result( result.getTId() ); - } - - @Override - public qlua.rpc.AllocTable.Result convertToPb(@NotNull final AllocTable.Result result) { - return qlua.rpc.AllocTable.Result.newBuilder() - .setTId( result.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbDeserializer.java new file mode 100644 index 0000000..2be67fd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbDeserializer.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx.BuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetBuySellInfoEx; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbBuySellInfo; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum BuySellInfoExPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BuySellInfoEx deserialize(final byte[] data) { + return convert( qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.parseFrom(data) ); + } + + @Override + public BuySellInfoEx convert(@NotNull final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { + + return BuySellInfoEx.builder() + .buySellInfo( convertFromPbBuySellInfo(buySellInfoEx.getBuySellInfo()) ) + .limitKind( convertFromPbString(buySellInfoEx.getLimitKind()) ) + .dLong( convertFromPbString(buySellInfoEx.getDLong()) ) + .dMinLong( convertFromPbString(buySellInfoEx.getDMinLong()) ) + .dShort( convertFromPbString(buySellInfoEx.getDShort()) ) + .dMinShort( convertFromPbString(buySellInfoEx.getDMinShort()) ) + .clientType( convertFromPbString(buySellInfoEx.getClientType()) ) + .isLongAllowed( convertFromPbString(buySellInfoEx.getIsLongAllowed()) ) + .isShortAllowed( convertFromPbString(buySellInfoEx.getIsShortAllowed()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java deleted file mode 100644 index 2f7102a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerde.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx.BuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum BuySellInfoExPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final BuySellInfoEx dateTimeEntry) { - return convertToPb(dateTimeEntry).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public BuySellInfoEx deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.parseFrom(data) ); - } - - @Override - public BuySellInfoEx convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { - - return BuySellInfoEx.builder() - .buySellInfo( convertFromPbBuySellInfo(buySellInfoEx.getBuySellInfo()) ) - .limitKind( convertFromPbString(buySellInfoEx.getLimitKind()) ) - .dLong( convertFromPbString(buySellInfoEx.getDLong()) ) - .dMinLong( convertFromPbString(buySellInfoEx.getDMinLong()) ) - .dShort( convertFromPbString(buySellInfoEx.getDShort()) ) - .dMinShort( convertFromPbString(buySellInfoEx.getDMinShort()) ) - .clientType( convertFromPbString(buySellInfoEx.getClientType()) ) - .isLongAllowed( convertFromPbString(buySellInfoEx.getIsLongAllowed()) ) - .isShortAllowed( convertFromPbString(buySellInfoEx.getIsShortAllowed()) ) - .build(); - } - - @Override - public qlua.rpc.GetBuySellInfoEx.BuySellInfoEx convertToPb(@NotNull final BuySellInfoEx buySellInfoEx) { - - return qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() - .setBuySellInfo( convertToPbBuySellInfo(buySellInfoEx.getBuySellInfo()) ) - .setLimitKind( convertToPbString(buySellInfoEx.getLimitKind()) ) - .setDLong( convertToPbString(buySellInfoEx.getDLong()) ) - .setDMinLong( convertToPbString(buySellInfoEx.getDMinLong()) ) - .setDShort( convertToPbString(buySellInfoEx.getDShort()) ) - .setDMinShort( convertToPbString(buySellInfoEx.getDMinShort()) ) - .setClientType( convertToPbString(buySellInfoEx.getClientType()) ) - .setIsLongAllowed( convertToPbString(buySellInfoEx.getIsLongAllowed()) ) - .setIsShortAllowed( convertToPbString(buySellInfoEx.getIsShortAllowed()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbDeserializer.java new file mode 100644 index 0000000..28018a8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbDeserializer.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo.BuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetBuySellInfo; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum BuySellInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BuySellInfo deserialize(final byte[] data) { + return convert( qlua.rpc.GetBuySellInfo.BuySellInfo.parseFrom(data) ); + } + + @Override + public BuySellInfo convert(@NotNull final qlua.rpc.GetBuySellInfo.BuySellInfo buySellInfo) { + + return BuySellInfo.builder() + .isMarginSec( convertFromPbString(buySellInfo.getIsMarginSec()) ) + .isAssetSec( convertFromPbString(buySellInfo.getIsAssetSec()) ) + .balance( convertFromPbString(buySellInfo.getBalance()) ) + .canBuy( convertFromPbString(buySellInfo.getCanBuy()) ) + .canSell( convertFromPbString(buySellInfo.getCanSell()) ) + .positionValuation( convertFromPbString(buySellInfo.getPositionValuation()) ) + .value( convertFromPbString(buySellInfo.getValue()) ) + .openValue( convertFromPbString(buySellInfo.getOpenValue()) ) + .limLong( convertFromPbString(buySellInfo.getLimLong()) ) + .longCoef( convertFromPbString(buySellInfo.getLongCoef()) ) + .limShort( convertFromPbString(buySellInfo.getLimShort()) ) + .shortCoef( convertFromPbString(buySellInfo.getShortCoef()) ) + .valueCoef( convertFromPbString(buySellInfo.getValueCoef()) ) + .openValueCoef( convertFromPbString(buySellInfo.getOpenValueCoef()) ) + .share( convertFromPbString(buySellInfo.getShare()) ) + .shortWaPrice( convertFromPbString(buySellInfo.getShortWaPrice()) ) + .longWaPrice( convertFromPbString(buySellInfo.getLongWaPrice()) ) + .profitLoss( convertFromPbString(buySellInfo.getProfitLoss()) ) + .spreadHc( convertFromPbString(buySellInfo.getSpreadHc()) ) + .canBuyOwn( convertFromPbString(buySellInfo.getCanBuyOwn()) ) + .canSellOwn( convertFromPbString(buySellInfo.getCanSellOwn()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java deleted file mode 100644 index 44cc4e1..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerde.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo.BuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum BuySellInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final BuySellInfo dateTimeEntry) { - return convertToPb(dateTimeEntry).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public BuySellInfo deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetBuySellInfo.BuySellInfo.parseFrom(data) ); - } - - @Override - public BuySellInfo convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.BuySellInfo buySellInfo) { - - return BuySellInfo.builder() - .isMarginSec( convertFromPbString(buySellInfo.getIsMarginSec()) ) - .isAssetSec( convertFromPbString(buySellInfo.getIsAssetSec()) ) - .balance( convertFromPbString(buySellInfo.getBalance()) ) - .canBuy( convertFromPbString(buySellInfo.getCanBuy()) ) - .canSell( convertFromPbString(buySellInfo.getCanSell()) ) - .positionValuation( convertFromPbString(buySellInfo.getPositionValuation()) ) - .value( convertFromPbString(buySellInfo.getValue()) ) - .openValue( convertFromPbString(buySellInfo.getOpenValue()) ) - .limLong( convertFromPbString(buySellInfo.getLimLong()) ) - .longCoef( convertFromPbString(buySellInfo.getLongCoef()) ) - .limShort( convertFromPbString(buySellInfo.getLimShort()) ) - .shortCoef( convertFromPbString(buySellInfo.getShortCoef()) ) - .valueCoef( convertFromPbString(buySellInfo.getValueCoef()) ) - .openValueCoef( convertFromPbString(buySellInfo.getOpenValueCoef()) ) - .share( convertFromPbString(buySellInfo.getShare()) ) - .shortWaPrice( convertFromPbString(buySellInfo.getShortWaPrice()) ) - .longWaPrice( convertFromPbString(buySellInfo.getLongWaPrice()) ) - .profitLoss( convertFromPbString(buySellInfo.getProfitLoss()) ) - .spreadHc( convertFromPbString(buySellInfo.getSpreadHc()) ) - .canBuyOwn( convertFromPbString(buySellInfo.getCanBuyOwn()) ) - .canSellOwn( convertFromPbString(buySellInfo.getCanSellOwn()) ) - .build(); - } - - @Override - public qlua.rpc.GetBuySellInfo.BuySellInfo convertToPb(@NotNull final BuySellInfo buySellInfo) { - - return qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() - .setIsMarginSec( convertToPbString(buySellInfo.getIsMarginSec()) ) - .setIsAssetSec( convertToPbString(buySellInfo.getIsAssetSec()) ) - .setBalance( convertToPbString(buySellInfo.getBalance()) ) - .setCanBuy( convertToPbString(buySellInfo.getCanBuy()) ) - .setCanSell( convertToPbString(buySellInfo.getCanSell()) ) - .setPositionValuation( convertToPbString(buySellInfo.getPositionValuation()) ) - .setValue( convertToPbString(buySellInfo.getValue()) ) - .setOpenValue( convertToPbString(buySellInfo.getOpenValue()) ) - .setLimLong( convertToPbString(buySellInfo.getLimLong()) ) - .setLongCoef( convertToPbString(buySellInfo.getLongCoef()) ) - .setLimShort( convertToPbString(buySellInfo.getLimShort()) ) - .setShortCoef( convertToPbString(buySellInfo.getShortCoef()) ) - .setValueCoef( convertToPbString(buySellInfo.getValueCoef()) ) - .setOpenValueCoef( convertToPbString(buySellInfo.getOpenValueCoef()) ) - .setShare( convertToPbString(buySellInfo.getShare()) ) - .setShortWaPrice( convertToPbString(buySellInfo.getShortWaPrice()) ) - .setLongWaPrice( convertToPbString(buySellInfo.getLongWaPrice()) ) - .setProfitLoss( convertToPbString(buySellInfo.getProfitLoss()) ) - .setSpreadHc( convertToPbString(buySellInfo.getSpreadHc()) ) - .setCanBuyOwn( convertToPbString(buySellInfo.getCanBuyOwn()) ) - .setCanSellOwn( convertToPbString(buySellInfo.getCanSellOwn()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java new file mode 100644 index 0000000..5cbae6b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum CalcBuySellArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final CalcBuySell.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.CalcBuySell.Request convert(@NotNull final CalcBuySell.Args args) { + + return qlua.rpc.CalcBuySell.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setClientCode( args.getClientCode() ) + .setAccount( args.getAccount() ) + .setPrice( args.getPrice() ) + .setIsBuy( args.isBuy() ) + .setIsMarket( args.isMarket() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java deleted file mode 100644 index a09585d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerde.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum CalcBuySellRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CALC_BUY_SELL; - - @Override - public byte[] serialize(final CalcBuySell.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CalcBuySell.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.CalcBuySell.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public CalcBuySell.Request convertFromPb(@NotNull final qlua.rpc.CalcBuySell.Request request) { - - return CalcBuySell.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .clientCode( request.getClientCode() ) - .account( request.getAccount() ) - .price( request.getPrice() ) - .isBuy( request.getIsBuy() ) - .isMarket( request.getIsMarket() ) - .build(); - } - - @Override - public qlua.rpc.CalcBuySell.Request convertToPb(@NotNull final CalcBuySell.Request request) { - - return qlua.rpc.CalcBuySell.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setClientCode( request.getClientCode() ) - .setAccount( request.getAccount() ) - .setPrice( request.getPrice() ) - .setIsBuy( request.isBuy() ) - .setIsMarket( request.isMarket() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbDeserializer.java new file mode 100644 index 0000000..a0791ec --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CalcBuySellResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CalcBuySell.Result deserialize(final byte[] data) { + return convert( qlua.rpc.CalcBuySell.Result.parseFrom(data) ); + } + + @Override + public CalcBuySell.Result convert(@NotNull final qlua.rpc.CalcBuySell.Result result) { + return new CalcBuySell.Result(result.getQty(), result.getComission()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java deleted file mode 100644 index f016d6e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerde.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum CalcBuySellResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final CalcBuySell.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CalcBuySell.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.CalcBuySell.Result.parseFrom(data) ); - } - - @Override - public CalcBuySell.Result convertFromPb(@NotNull final qlua.rpc.CalcBuySell.Result result) { - return new CalcBuySell.Result(result.getQty(), result.getComission()); - } - - @Override - public qlua.rpc.CalcBuySell.Result convertToPb(@NotNull final CalcBuySell.Result result) { - return qlua.rpc.CalcBuySell.Result.newBuilder() - .setQty( result.getQty() ) - .setComission( result.getComission() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java new file mode 100644 index 0000000..42d3104 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum CancelParamRequestArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final CancelParamRequest.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.CancelParamRequest.Request convert(@NotNull final CancelParamRequest.Args args) { + + return qlua.rpc.CancelParamRequest.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setDbName( args.getDbName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java deleted file mode 100644 index 15775a3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum CancelParamRequestRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CANCEL_PARAM_REQUEST; - - @Override - public byte[] serialize(final CancelParamRequest.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CancelParamRequest.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.CancelParamRequest.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public CancelParamRequest.Request convertFromPb(@NotNull final qlua.rpc.CancelParamRequest.Request request) { - - return CancelParamRequest.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .dbName( request.getDbName() ) - .build(); - } - - @Override - public qlua.rpc.CancelParamRequest.Request convertToPb(@NotNull final CancelParamRequest.Request request) { - - return qlua.rpc.CancelParamRequest.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setDbName( request.getDbName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbDeserializer.java new file mode 100644 index 0000000..8c2ae89 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CancelParamRequestResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CancelParamRequest.Result deserialize(final byte[] data) { + return convert( qlua.rpc.CancelParamRequest.Result.parseFrom(data) ); + } + + @Override + public CancelParamRequest.Result convert(@NotNull final qlua.rpc.CancelParamRequest.Result result) { + return new CancelParamRequest.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java deleted file mode 100644 index c6b6d24..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum CancelParamRequestResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final CancelParamRequest.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CancelParamRequest.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.CancelParamRequest.Result.parseFrom(data) ); - } - - @Override - public CancelParamRequest.Result convertFromPb(@NotNull final qlua.rpc.CancelParamRequest.Result result) { - return new CancelParamRequest.Result( result.getResult() ); - } - - @Override - public qlua.rpc.CancelParamRequest.Result convertToPb(@NotNull final CancelParamRequest.Result result) { - return qlua.rpc.CancelParamRequest.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbDeserializer.java new file mode 100644 index 0000000..4829d9f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum CandleEntryPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CandleEntry deserialize(final byte[] data) { + return convert( QluaStructures.CandleEntry.parseFrom(data) ); + } + + @Override + public CandleEntry convert(@NotNull final QluaStructures.CandleEntry candleEntry) { + + final CandleEntry.CandleEntryBuilder result = CandleEntry.builder() + .open( convertFromPbString(candleEntry.getOpen()) ) + .close( convertFromPbString(candleEntry.getClose()) ) + .high( convertFromPbString(candleEntry.getHigh()) ) + .low( convertFromPbString(candleEntry.getLow()) ) + .volume( convertFromPbString(candleEntry.getVolume()) ) + .doesExist( candleEntry.getDoesExist() ); + + if (candleEntry.hasDatetime()) { + result.dateTimeEntry( convertFromPbDateTimeEntry(candleEntry.getDatetime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java deleted file mode 100644 index b586738..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerde.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum CandleEntryPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final CandleEntry candleEntry) { - return convertToPb(candleEntry).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CandleEntry deserialize(final byte[] data) { - return convertFromPb( QluaStructures.CandleEntry.parseFrom(data) ); - } - - @Override - public CandleEntry convertFromPb(@NotNull final QluaStructures.CandleEntry candleEntry) { - - final CandleEntry.CandleEntryBuilder result = CandleEntry.builder() - .open( convertFromPbString(candleEntry.getOpen()) ) - .close( convertFromPbString(candleEntry.getClose()) ) - .high( convertFromPbString(candleEntry.getHigh()) ) - .low( convertFromPbString(candleEntry.getLow()) ) - .volume( convertFromPbString(candleEntry.getVolume()) ) - .doesExist( candleEntry.getDoesExist() ); - - if (candleEntry.hasDatetime()) { - result.dateTimeEntry( convertFromPbDateTimeEntry(candleEntry.getDatetime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.CandleEntry convertToPb(@NotNull final CandleEntry candleEntry) { - - final QluaStructures.CandleEntry.Builder result = QluaStructures.CandleEntry.newBuilder() - .setOpen( convertToPbString(candleEntry.getOpen()) ) - .setClose( convertToPbString(candleEntry.getClose()) ) - .setHigh( convertToPbString(candleEntry.getHigh()) ) - .setLow( convertToPbString(candleEntry.getLow()) ) - .setVolume( convertToPbString(candleEntry.getVolume()) ) - .setDoesExist( candleEntry.getDoesExist() ); - - final DateTimeEntry dateTimeEntry = candleEntry.getDateTimeEntry(); - if (dateTimeEntry != null) { - result.setDatetime( convertToPbDateTimeEntry(candleEntry.getDateTimeEntry()) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbDeserializer.java new file mode 100644 index 0000000..d04c46a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbDeserializer.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum ClassInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ClassInfo deserialize(final byte[] data) { + return convert( QluaStructures.Klass.parseFrom(data) ); + } + + @Override + public ClassInfo convert(@NotNull final QluaStructures.Klass classInfo) { + + return ClassInfo.builder() + .firmId( convertFromPbString(classInfo.getFirmid()) ) + .name( convertFromPbString(classInfo.getName()) ) + .code( convertFromPbString(classInfo.getCode()) ) + .npars( classInfo.getNpars() ) + .nsecs( classInfo.getNsecs() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java deleted file mode 100644 index 6572874..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerde.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum ClassInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ClassInfo classInfo) { - return convertToPb(classInfo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ClassInfo deserialize(final byte[] data) { - return convertFromPb( QluaStructures.Klass.parseFrom(data) ); - } - - @Override - public ClassInfo convertFromPb(@NotNull final QluaStructures.Klass classInfo) { - - return ClassInfo.builder() - .firmId( convertFromPbString(classInfo.getFirmid()) ) - .name( convertFromPbString(classInfo.getName()) ) - .code( convertFromPbString(classInfo.getCode()) ) - .npars( classInfo.getNpars() ) - .nsecs( classInfo.getNsecs() ) - .build(); - } - - @Override - public QluaStructures.Klass convertToPb(@NotNull final ClassInfo classInfo) { - - return QluaStructures.Klass.newBuilder() - .setFirmid( convertToPbString(classInfo.getFirmId()) ) - .setName( convertToPbString(classInfo.getName()) ) - .setCode( convertToPbString(classInfo.getCode()) ) - .setNpars( classInfo.getNpars() ) - .setNsecs( classInfo.getNsecs() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerializer.java new file mode 100644 index 0000000..ca32ab6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum ClearArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final Clear.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.Clear.Request convert(@NotNull final Clear.Args args) { + + return qlua.rpc.Clear.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java deleted file mode 100644 index 6c2eeb5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum ClearRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CLEAR; - - @Override - public byte[] serialize(final Clear.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Clear.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.Clear.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public Clear.Request convertFromPb(@NotNull final qlua.rpc.Clear.Request request) { - return new Clear.Request( request.getTId() ); - } - - @Override - public qlua.rpc.Clear.Request convertToPb(@NotNull final Clear.Request request) { - - return qlua.rpc.Clear.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbDeserializer.java new file mode 100644 index 0000000..82a029a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum ClearResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Clear.Result deserialize(final byte[] data) { + return convert( qlua.rpc.Clear.Result.parseFrom(data) ); + } + + @Override + public Clear.Result convert(@NotNull final qlua.rpc.Clear.Result result) { + return Clear.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java deleted file mode 100644 index 31082d6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum ClearResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Clear.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Clear.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.Clear.Result.parseFrom(data) ); - } - - @Override - public Clear.Result convertFromPb(@NotNull final qlua.rpc.Clear.Result result) { - return Clear.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.Clear.Result convertToPb(@NotNull final Clear.Result result) { - return qlua.rpc.Clear.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbDeserializer.java new file mode 100644 index 0000000..67fb4ff --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum ConnectedEventInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ConnectedEventInfo deserialize(final byte[] data) { + return convert(QluaStructures.ConnectedEventInfo.parseFrom(data)); + } + + @Override + public ConnectedEventInfo convert(@NotNull QluaStructures.ConnectedEventInfo connectedEventInfo) { + return ConnectedEventInfo.getInstance( connectedEventInfo.getFlag() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java deleted file mode 100644 index b52e82b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerde.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -enum ConnectedEventInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ConnectedEventInfo connectedEventInfo) { - return convertToPb(connectedEventInfo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ConnectedEventInfo deserialize(final byte[] data) { - return convertFromPb(QluaStructures.ConnectedEventInfo.parseFrom(data)); - } - - @Override - public ConnectedEventInfo convertFromPb(@NotNull QluaStructures.ConnectedEventInfo connectedEventInfo) { - return new ConnectedEventInfo( connectedEventInfo.getFlag() ); - } - - @Override - public QluaStructures.ConnectedEventInfo convertToPb(@NotNull final ConnectedEventInfo connectedEventInfo) { - - return QluaStructures.ConnectedEventInfo.newBuilder() - .setFlag( connectedEventInfo.getFlag() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerializer.java new file mode 100644 index 0000000..da88cab --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum CreateWindowArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final CreateWindow.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.CreateWindow.Request convert(@NotNull final CreateWindow.Args args) { + + return qlua.rpc.CreateWindow.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java deleted file mode 100644 index ac90931..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum CreateWindowRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.CREATE_WINDOW; - - @Override - public byte[] serialize(final CreateWindow.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CreateWindow.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.CreateWindow.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public CreateWindow.Request convertFromPb(@NotNull final qlua.rpc.CreateWindow.Request request) { - return new CreateWindow.Request( request.getTId() ); - } - - @Override - public qlua.rpc.CreateWindow.Request convertToPb(@NotNull final CreateWindow.Request request) { - - return qlua.rpc.CreateWindow.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbDeserializer.java new file mode 100644 index 0000000..73b62fe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum CreateWindowResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CreateWindow.Result deserialize(final byte[] data) { + return convert( qlua.rpc.CreateWindow.Result.parseFrom(data) ); + } + + @Override + public CreateWindow.Result convert(@NotNull final qlua.rpc.CreateWindow.Result result) { + return new CreateWindow.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java deleted file mode 100644 index 0733c18..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum CreateWindowResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final CreateWindow.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public CreateWindow.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.CreateWindow.Result.parseFrom(data) ); - } - - @Override - public CreateWindow.Result convertFromPb(@NotNull final qlua.rpc.CreateWindow.Result result) { - return new CreateWindow.Result( result.getResult() ); - } - - @Override - public qlua.rpc.CreateWindow.Result convertToPb(@NotNull final CreateWindow.Result result) { - return qlua.rpc.CreateWindow.Result.newBuilder() - .setResult( result.getResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbDeserializer.java new file mode 100644 index 0000000..0810cfb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum DateTimeEntryPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DateTimeEntry deserialize(final byte[] data) { + return convert( QluaStructures.DateTimeEntry.parseFrom(data) ); + } + + @Override + public DateTimeEntry convert(@NotNull final QluaStructures.DateTimeEntry dateTimeEntry) { + + return DateTimeEntry + .builder() + .mcs( dateTimeEntry.getMcs() ) + .ms( dateTimeEntry.getMs() ) + .sec( dateTimeEntry.getSec() ) + .min( dateTimeEntry.getMin() ) + .hour( dateTimeEntry.getHour() ) + .day( dateTimeEntry.getDay() ) + .weekDay( dateTimeEntry.getWeekDay() ) + .month( dateTimeEntry.getMonth() ) + .year( dateTimeEntry.getYear() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java deleted file mode 100644 index 9ff828e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerde.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -enum DateTimeEntryPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DateTimeEntry dateTimeEntry) { - return convertToPb(dateTimeEntry).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DateTimeEntry deserialize(final byte[] data) { - return convertFromPb( QluaStructures.DateTimeEntry.parseFrom(data) ); - } - - @Override - public DateTimeEntry convertFromPb(@NotNull final QluaStructures.DateTimeEntry dateTimeEntry) { - - return DateTimeEntry - .builder() - .mcs( dateTimeEntry.getMcs() ) - .ms( dateTimeEntry.getMs() ) - .sec( dateTimeEntry.getSec() ) - .min( dateTimeEntry.getMin() ) - .hour( dateTimeEntry.getHour() ) - .day( dateTimeEntry.getDay() ) - .weekDay( dateTimeEntry.getWeekDay() ) - .month( dateTimeEntry.getMonth() ) - .year( dateTimeEntry.getYear() ) - .build(); - } - - @Override - public QluaStructures.DateTimeEntry convertToPb(@NotNull final DateTimeEntry dateTimeEntry) { - - return QluaStructures.DateTimeEntry.newBuilder() - .setMcs( dateTimeEntry.getMcs() ) - .setMs( dateTimeEntry.getMs() ) - .setSec( dateTimeEntry.getSec() ) - .setMin( dateTimeEntry.getMin() ) - .setHour( dateTimeEntry.getHour() ) - .setDay( dateTimeEntry.getDay() ) - .setWeekDay( dateTimeEntry.getWeekDay() ) - .setMonth( dateTimeEntry.getMonth() ) - .setYear( dateTimeEntry.getYear() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java new file mode 100644 index 0000000..6a3e0bd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DelAllLabelsArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final DelAllLabels.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.DelAllLabels.Request convert(@NotNull final DelAllLabels.Args args) { + + return qlua.rpc.DelAllLabels.Request.newBuilder() + .setChartTag( args.getChartTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerde.java deleted file mode 100644 index 7c0e13d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum DelAllLabelsRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DEL_ALL_LABELS; - - @Override - public byte[] serialize(final DelAllLabels.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DelAllLabels.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.DelAllLabels.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public DelAllLabels.Request convertFromPb(@NotNull final qlua.rpc.DelAllLabels.Request request) { - return new DelAllLabels.Request( request.getChartTag() ); - } - - @Override - public qlua.rpc.DelAllLabels.Request convertToPb(@NotNull final DelAllLabels.Request request) { - - return qlua.rpc.DelAllLabels.Request.newBuilder() - .setChartTag( request.getChartTag() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbDeserializer.java new file mode 100644 index 0000000..5abbe56 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DelAllLabelsResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelAllLabels.Result deserialize(final byte[] data) { + return convert( qlua.rpc.DelAllLabels.Result.parseFrom(data) ); + } + + @Override + public DelAllLabels.Result convert(@NotNull final qlua.rpc.DelAllLabels.Result result) { + return DelAllLabels.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java deleted file mode 100644 index 194c29c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum DelAllLabelsResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DelAllLabels.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DelAllLabels.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.DelAllLabels.Result.parseFrom(data) ); - } - - @Override - public DelAllLabels.Result convertFromPb(@NotNull final qlua.rpc.DelAllLabels.Result result) { - return DelAllLabels.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.DelAllLabels.Result convertToPb(@NotNull final DelAllLabels.Result result) { - return qlua.rpc.DelAllLabels.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java new file mode 100644 index 0000000..8f5b4c8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DelLabelArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final DelLabel.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.DelLabel.Request convert(@NotNull final DelLabel.Args args) { + + return qlua.rpc.DelLabel.Request.newBuilder() + .setChartTag( args.getChartTag() ) + .setLabelId( args.getLabelId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerde.java deleted file mode 100644 index 27cc7ba..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum DelLabelRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DEL_LABEL; - - @Override - public byte[] serialize(final DelLabel.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DelLabel.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.DelLabel.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public DelLabel.Request convertFromPb(@NotNull final qlua.rpc.DelLabel.Request request) { - return new DelLabel.Request(request.getChartTag(), request.getLabelId()); - } - - @Override - public qlua.rpc.DelLabel.Request convertToPb(@NotNull final DelLabel.Request request) { - - return qlua.rpc.DelLabel.Request.newBuilder() - .setChartTag( request.getChartTag() ) - .setLabelId( request.getLabelId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbDeserializer.java new file mode 100644 index 0000000..d2eb72d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DelLabelResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DelLabel.Result deserialize(final byte[] data) { + return convert( qlua.rpc.DelLabel.Result.parseFrom(data) ); + } + + @Override + public DelLabel.Result convert(@NotNull final qlua.rpc.DelLabel.Result result) { + return DelLabel.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java deleted file mode 100644 index 7c59d9a..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum DelLabelResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DelLabel.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DelLabel.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.DelLabel.Result.parseFrom(data) ); - } - - @Override - public DelLabel.Result convertFromPb(@NotNull final qlua.rpc.DelLabel.Result result) { - return DelLabel.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.DelLabel.Result convertToPb(@NotNull final DelLabel.Result result) { - return qlua.rpc.DelLabel.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java new file mode 100644 index 0000000..6f2489e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DeleteRowArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final DeleteRow.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.DeleteRow.Request convert(@NotNull final DeleteRow.Args args) { + + return qlua.rpc.DeleteRow.Request.newBuilder() + .setTId( args.getTId() ) + .setKey( args.getKey() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerde.java deleted file mode 100644 index 280ee63..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum DeleteRowRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DELETE_ROW; - - @Override - public byte[] serialize(final DeleteRow.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DeleteRow.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.DeleteRow.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public DeleteRow.Request convertFromPb(@NotNull final qlua.rpc.DeleteRow.Request request) { - return new DeleteRow.Request(request.getTId(), request.getKey()); - } - - @Override - public qlua.rpc.DeleteRow.Request convertToPb(@NotNull final DeleteRow.Request request) { - - return qlua.rpc.DeleteRow.Request.newBuilder() - .setTId( request.getTId() ) - .setKey( request.getKey() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbDeserializer.java new file mode 100644 index 0000000..682b2f2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DeleteRowResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DeleteRow.Result deserialize(final byte[] data) { + return convert( qlua.rpc.DeleteRow.Result.parseFrom(data) ); + } + + @Override + public DeleteRow.Result convert(@NotNull final qlua.rpc.DeleteRow.Result result) { + return DeleteRow.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java deleted file mode 100644 index 52b0b5f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum DeleteRowResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DeleteRow.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DeleteRow.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.DeleteRow.Result.parseFrom(data) ); - } - - @Override - public DeleteRow.Result convertFromPb(@NotNull final qlua.rpc.DeleteRow.Result result) { - return DeleteRow.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.DeleteRow.Result convertToPb(@NotNull final DeleteRow.Result result) { - return qlua.rpc.DeleteRow.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java new file mode 100644 index 0000000..1261f22 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum DepoLimitDeletePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DepoLimitDelete deserialize(final byte[] data) { + return convert(QluaStructures.DepoLimitDelete.parseFrom(data)); + } + + @Override + public DepoLimitDelete convert(@NotNull QluaStructures.DepoLimitDelete depoLimitDelete) { + + return DepoLimitDelete.builder() + .secCode( convertFromPbString(depoLimitDelete.getSecCode()) ) + .trdAccId( convertFromPbString(depoLimitDelete.getTrdaccid()) ) + .firmId( convertFromPbString(depoLimitDelete.getFirmid()) ) + .clientCode( convertFromPbString(depoLimitDelete.getClientCode()) ) + .limitKind( depoLimitDelete.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java deleted file mode 100644 index 15288bf..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerde.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum DepoLimitDeletePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DepoLimitDelete depoLimitDelete) { - return convertToPb(depoLimitDelete).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DepoLimitDelete deserialize(final byte[] data) { - return convertFromPb(QluaStructures.DepoLimitDelete.parseFrom(data)); - } - - @Override - public DepoLimitDelete convertFromPb(@NotNull QluaStructures.DepoLimitDelete depoLimitDelete) { - - return DepoLimitDelete.builder() - .secCode( convertFromPbString(depoLimitDelete.getSecCode()) ) - .trdAccId( convertFromPbString(depoLimitDelete.getTrdaccid()) ) - .firmId( convertFromPbString(depoLimitDelete.getFirmid()) ) - .clientCode( convertFromPbString(depoLimitDelete.getClientCode()) ) - .limitKind( depoLimitDelete.getLimitKind() ) - .build(); - } - - @Override - public QluaStructures.DepoLimitDelete convertToPb(@NotNull final DepoLimitDelete depoLimitDelete) { - - return QluaStructures.DepoLimitDelete.newBuilder() - .setSecCode( convertToPbString(depoLimitDelete.getSecCode()) ) - .setTrdaccid( convertToPbString(depoLimitDelete.getTrdAccId()) ) - .setFirmid( convertToPbString(depoLimitDelete.getFirmId()) ) - .setClientCode( convertToPbString(depoLimitDelete.getClientCode()) ) - .setLimitKind( depoLimitDelete.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java new file mode 100644 index 0000000..96299c7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum DepoLimitPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DepoLimit deserialize(final byte[] data) { + return convert(QluaStructures.DepoLimit.parseFrom(data)); + } + + @Override + public DepoLimit convert(@NotNull QluaStructures.DepoLimit depoLimit) { + + return DepoLimit.builder() + .secCode( convertFromPbString(depoLimit.getSecCode()) ) + .trdAccId( convertFromPbString(depoLimit.getTrdaccid()) ) + .firmId( convertFromPbString(depoLimit.getFirmid()) ) + .clientCode( convertFromPbString(depoLimit.getClientCode()) ) + .openBal( depoLimit.getOpenbal() ) + .openLimit( depoLimit.getOpenlimit() ) + .currentBal( depoLimit.getCurrentbal() ) + .currentLimit( depoLimit.getCurrentlimit() ) + .lockedSell( depoLimit.getLockedSell() ) + .lockedBuy( depoLimit.getLockedBuy() ) + .lockedBuyValue( convertFromPbString(depoLimit.getLockedBuyValue()) ) + .lockedSellValue( convertFromPbString(depoLimit.getLockedSellValue()) ) + .waPositionPrice( convertFromPbString(depoLimit.getWaPositionPrice()) ) + .limitKind( depoLimit.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java deleted file mode 100644 index ffbd43c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerde.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum DepoLimitPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DepoLimit depoLimit) { - return convertToPb(depoLimit).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DepoLimit deserialize(final byte[] data) { - return convertFromPb(QluaStructures.DepoLimit.parseFrom(data)); - } - - @Override - public DepoLimit convertFromPb(@NotNull QluaStructures.DepoLimit depoLimit) { - - return DepoLimit.builder() - .secCode( convertFromPbString(depoLimit.getSecCode()) ) - .trdAccId( convertFromPbString(depoLimit.getTrdaccid()) ) - .firmId( convertFromPbString(depoLimit.getFirmid()) ) - .clientCode( convertFromPbString(depoLimit.getClientCode()) ) - .openBal( depoLimit.getOpenbal() ) - .openLimit( depoLimit.getOpenlimit() ) - .currentBal( depoLimit.getCurrentbal() ) - .currentLimit( depoLimit.getCurrentlimit() ) - .lockedSell( depoLimit.getLockedSell() ) - .lockedBuy( depoLimit.getLockedBuy() ) - .lockedBuyValue( convertFromPbString(depoLimit.getLockedBuyValue()) ) - .lockedSellValue( convertFromPbString(depoLimit.getLockedSellValue()) ) - .awgPositionPrice( convertFromPbString(depoLimit.getAwgPositionPrice()) ) - .limitKind( depoLimit.getLimitKind() ) - .build(); - } - - @Override - public QluaStructures.DepoLimit convertToPb(@NotNull final DepoLimit depoLimit) { - - return QluaStructures.DepoLimit.newBuilder() - .setSecCode( convertToPbString(depoLimit.getSecCode()) ) - .setTrdaccid( convertToPbString(depoLimit.getTrdAccId()) ) - .setFirmid( convertToPbString(depoLimit.getFirmId()) ) - .setClientCode( convertToPbString(depoLimit.getClientCode()) ) - .setOpenbal( depoLimit.getOpenBal() ) - .setOpenlimit( depoLimit.getOpenLimit() ) - .setCurrentbal( depoLimit.getCurrentBal() ) - .setCurrentlimit( depoLimit.getCurrentLimit() ) - .setLockedSell( depoLimit.getLockedSell() ) - .setLockedBuy( depoLimit.getLockedBuy() ) - .setLockedBuyValue( convertToPbString(depoLimit.getLockedBuyValue()) ) - .setLockedSellValue( convertToPbString(depoLimit.getLockedSellValue()) ) - .setAwgPositionPrice( convertToPbString(depoLimit.getAwgPositionPrice()) ) - .setLimitKind( depoLimit.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbDeserializer.java new file mode 100644 index 0000000..7d6ed8b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbDeserializer.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetDepo; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum DepoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Depo deserialize(final byte[] data) { + return convert(qlua.rpc.GetDepo.Depo.parseFrom(data)); + } + + @Override + public Depo convert(@NotNull qlua.rpc.GetDepo.Depo depo) { + + return Depo + .builder() + .depoLimitLockedBuyValue( convertFromPbString(depo.getDepoLimitLockedBuyValue()) ) + .depoCurrentBalance( convertFromPbString(depo.getDepoCurrentBalance()) ) + .depoLimitLockedBuy( convertFromPbString(depo.getDepoLimitLockedBuy()) ) + .depoLimitLocked( convertFromPbString(depo.getDepoLimitLocked()) ) + .depoLimitAvailable( convertFromPbString(depo.getDepoLimitAvailable()) ) + .depoCurrentLimit( convertFromPbString(depo.getDepoCurrentLimit()) ) + .depoOpenBalance( convertFromPbString(depo.getDepoOpenBalance()) ) + .depoOpenLimit( convertFromPbString(depo.getDepoOpenLimit()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java deleted file mode 100644 index f06a37f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerde.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum DepoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Depo depo) { - return convertToPb(depo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Depo deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.GetDepo.Depo.parseFrom(data)); - } - - @Override - public Depo convertFromPb(@NotNull qlua.rpc.GetDepo.Depo depo) { - - return Depo - .builder() - .depoLimitLockedBuyValue( convertFromPbString(depo.getDepoLimitLockedBuyValue()) ) - .depoCurrentBalance( convertFromPbString(depo.getDepoCurrentBalance()) ) - .depoLimitLockedBuy( convertFromPbString(depo.getDepoLimitLockedBuy()) ) - .depoLimitLocked( convertFromPbString(depo.getDepoLimitLocked()) ) - .depoLimitAvailable( convertFromPbString(depo.getDepoLimitAvailable()) ) - .depoCurrentLimit( convertFromPbString(depo.getDepoCurrentLimit()) ) - .depoOpenBalance( convertFromPbString(depo.getDepoOpenBalance()) ) - .depoOpenLimit( convertFromPbString(depo.getDepoOpenLimit()) ) - .build(); - } - - @Override - public qlua.rpc.GetDepo.Depo convertToPb(@NotNull final Depo depo) { - - return qlua.rpc.GetDepo.Depo.newBuilder() - .setDepoLimitLockedBuyValue( convertToPbString(depo.getDepoLimitLockedBuyValue()) ) - .setDepoCurrentBalance( convertToPbString(depo.getDepoCurrentBalance()) ) - .setDepoLimitLockedBuy( convertToPbString(depo.getDepoLimitLockedBuy()) ) - .setDepoLimitLocked( convertToPbString(depo.getDepoLimitLocked()) ) - .setDepoLimitAvailable( convertToPbString(depo.getDepoLimitAvailable()) ) - .setDepoCurrentLimit( convertToPbString(depo.getDepoCurrentLimit()) ) - .setDepoOpenBalance( convertToPbString(depo.getDepoOpenBalance()) ) - .setDepoOpenLimit( convertToPbString(depo.getDepoOpenLimit()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java new file mode 100644 index 0000000..e1f044f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DestroyTableArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final DestroyTable.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.DestroyTable.Request convert(@NotNull final DestroyTable.Args args) { + + return qlua.rpc.DestroyTable.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java deleted file mode 100644 index 31d8707..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum DestroyTableRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.DESTROY_TABLE; - - @Override - public byte[] serialize(final DestroyTable.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DestroyTable.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.DestroyTable.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public DestroyTable.Request convertFromPb(@NotNull final qlua.rpc.DestroyTable.Request request) { - return new DestroyTable.Request( request.getTId() ); - } - - @Override - public qlua.rpc.DestroyTable.Request convertToPb(@NotNull final DestroyTable.Request request) { - - return qlua.rpc.DestroyTable.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbDeserializer.java new file mode 100644 index 0000000..982e616 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DestroyTableResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DestroyTable.Result deserialize(final byte[] data) { + return convert( qlua.rpc.DestroyTable.Result.parseFrom(data) ); + } + + @Override + public DestroyTable.Result convert(@NotNull final qlua.rpc.DestroyTable.Result result) { + return DestroyTable.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java deleted file mode 100644 index 22a2441..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum DestroyTableResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final DestroyTable.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public DestroyTable.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.DestroyTable.Result.parseFrom(data) ); - } - - @Override - public DestroyTable.Result convertFromPb(@NotNull final qlua.rpc.DestroyTable.Result result) { - return DestroyTable.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.DestroyTable.Result convertToPb(@NotNull final DestroyTable.Result result) { - return qlua.rpc.DestroyTable.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java new file mode 100644 index 0000000..779ada3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbDeserializer.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum FirmPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Firm deserialize(final byte[] data) { + return convert(QluaStructures.Firm.parseFrom(data)); + } + + @Override + public Firm convert(@NotNull QluaStructures.Firm firm) { + + return Firm + .builder() + .firmId(firm.getFirmid()) + .firmName( convertFromPbString(firm.getFirmName()) ) + .status(firm.getNullStatus() ? null : firm.getValueStatus()) + .exchange( convertFromPbString(firm.getExchange()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java deleted file mode 100644 index 4ff80e0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerde.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum FirmPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Firm firm) { - return convertToPb(firm).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Firm deserialize(final byte[] data) { - return convertFromPb(QluaStructures.Firm.parseFrom(data)); - } - - @Override - public Firm convertFromPb(@NotNull QluaStructures.Firm firm) { - - return Firm - .builder() - .firmId(firm.getFirmid()) - .firmName( convertFromPbString(firm.getFirmName()) ) - .status(firm.getStatus()) - .exchange( convertFromPbString(firm.getExchange()) ) - .build(); - } - - @Override - public QluaStructures.Firm convertToPb(@NotNull final Firm firm) { - - return QluaStructures.Firm.newBuilder() - .setFirmid( firm.getFirmId() ) - .setFirmName( convertToPbString(firm.getFirmName()) ) - .setStatus( firm.getStatus() ) - .setExchange( convertToPbString(firm.getExchange()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FromPbConverter.java similarity index 60% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FromPbConverter.java index 71a7501..32ce3d1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/PbConverter.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FromPbConverter.java @@ -1,15 +1,15 @@ -package com.enfernuz.quik.lua.rpc.serde; +package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.google.protobuf.GeneratedMessageV3; /** * Интерфейс компонента для преобразования экземпляров классов, сгенерированных protobuf-плагином, в экземпляры - * соответствующих классов фреймворка, и обратно. + * соответствующих классов фреймворка. * * @param класс, сгенерированный protobuf-плагином * @param класс фреймворка, соответствующий классу, сгененированному protobuf-плагином */ -public interface PbConverter { +public interface FromPbConverter { /** * Конвертирует экземпляр класса, сгенерированного protobuf-плагином, в экземпляр соответствующего класса фреймворка. @@ -17,13 +17,5 @@ public interface PbConverter, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesClientHolding deserialize(final byte[] data) { + return convert(QluaStructures.FuturesClientHolding.parseFrom(data)); + } + + @Override + public FuturesClientHolding convert(@NotNull QluaStructures.FuturesClientHolding futuresClientHolding) { + + return FuturesClientHolding.builder() + .firmId( convertFromPbString(futuresClientHolding.getFirmid()) ) + .trdAccId( convertFromPbString(futuresClientHolding.getTrdaccid()) ) + .secCode( convertFromPbString(futuresClientHolding.getSecCode()) ) + .type( futuresClientHolding.getType() ) + .startBuy( convertFromPbString(futuresClientHolding.getStartbuy()) ) + .startSell( convertFromPbString(futuresClientHolding.getStartsell()) ) + .todayBuy( convertFromPbString(futuresClientHolding.getTodaybuy()) ) + .todaySell( convertFromPbString(futuresClientHolding.getTodaysell()) ) + .totalNet( convertFromPbString(futuresClientHolding.getTotalnet()) ) + .openBuys( futuresClientHolding.getOpenbuys() ) + .openSells( futuresClientHolding.getOpensells() ) + .cbplUsed( convertFromPbString(futuresClientHolding.getCbplused()) ) + .cbplPlanned( convertFromPbString(futuresClientHolding.getCbplplanned()) ) + .varMargin( convertFromPbString(futuresClientHolding.getVarmargin()) ) + .avrPosnPrice( convertFromPbString(futuresClientHolding.getAvrposnprice()) ) + .positionValue( convertFromPbString(futuresClientHolding.getPositionvalue()) ) + .realVarMargin( convertFromPbString(futuresClientHolding.getRealVarmargin()) ) + .totalVarMargin( convertFromPbString(futuresClientHolding.getTotalVarmargin()) ) + .sessionStatus( futuresClientHolding.getSessionStatus()) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java deleted file mode 100644 index ef8a255..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerde.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum FuturesClientHoldingPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final FuturesClientHolding futuresClientHolding) { - return convertToPb(futuresClientHolding).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public FuturesClientHolding deserialize(final byte[] data) { - return convertFromPb(QluaStructures.FuturesClientHolding.parseFrom(data)); - } - - @Override - public FuturesClientHolding convertFromPb(@NotNull QluaStructures.FuturesClientHolding futuresClientHolding) { - - return FuturesClientHolding.builder() - .firmId( convertFromPbString(futuresClientHolding.getFirmid()) ) - .trdAccId( convertFromPbString(futuresClientHolding.getTrdaccid()) ) - .secCode( convertFromPbString(futuresClientHolding.getSecCode()) ) - .type( futuresClientHolding.getType() ) - .startBuy( convertFromPbString(futuresClientHolding.getStartbuy()) ) - .startSell( convertFromPbString(futuresClientHolding.getStartsell()) ) - .todayBuy( convertFromPbString(futuresClientHolding.getTodaybuy()) ) - .todaySell( convertFromPbString(futuresClientHolding.getTodaysell()) ) - .totalNet( convertFromPbString(futuresClientHolding.getTotalnet()) ) - .openBuys( futuresClientHolding.getOpenbuys() ) - .openSells( futuresClientHolding.getOpensells() ) - .cbplUsed( convertFromPbString(futuresClientHolding.getCbplused()) ) - .cbplPlanned( convertFromPbString(futuresClientHolding.getCbplplanned()) ) - .varMargin( convertFromPbString(futuresClientHolding.getVarmargin()) ) - .avrPosnPrice( convertFromPbString(futuresClientHolding.getAvrposnprice()) ) - .positionValue( convertFromPbString(futuresClientHolding.getPositionvalue()) ) - .realVarMargin( convertFromPbString(futuresClientHolding.getRealVarmargin()) ) - .totalVarMargin( convertFromPbString(futuresClientHolding.getTotalVarmargin()) ) - .sessionStatus( futuresClientHolding.getSessionStatus()) - .build(); - } - - @Override - public QluaStructures.FuturesClientHolding convertToPb(@NotNull final FuturesClientHolding futuresClientHolding) { - - return QluaStructures.FuturesClientHolding.newBuilder() - .setFirmid( convertToPbString(futuresClientHolding.getFirmId()) ) - .setTrdaccid( convertToPbString(futuresClientHolding.getTrdAccId()) ) - .setSecCode( convertToPbString(futuresClientHolding.getSecCode()) ) - .setType( futuresClientHolding.getType() ) - .setStartbuy( convertToPbString(futuresClientHolding.getStartBuy()) ) - .setStartsell( convertToPbString(futuresClientHolding.getStartSell()) ) - .setTodaybuy( convertToPbString(futuresClientHolding.getTodayBuy()) ) - .setTodaysell( convertToPbString(futuresClientHolding.getTodaySell()) ) - .setTotalnet( convertToPbString(futuresClientHolding.getTotalNet()) ) - .setOpenbuys( futuresClientHolding.getOpenBuys() ) - .setOpensells( futuresClientHolding.getOpenSells() ) - .setCbplused( convertToPbString(futuresClientHolding.getCbplUsed()) ) - .setCbplplanned( convertToPbString(futuresClientHolding.getCbplPlanned()) ) - .setVarmargin( convertToPbString(futuresClientHolding.getVarMargin()) ) - .setAvrposnprice( convertToPbString(futuresClientHolding.getAvrPosnPrice()) ) - .setPositionvalue( convertToPbString(futuresClientHolding.getPositionValue()) ) - .setRealVarmargin( convertToPbString(futuresClientHolding.getRealVarMargin()) ) - .setTotalVarmargin( convertToPbString(futuresClientHolding.getTotalVarMargin()) ) - .setSessionStatus( futuresClientHolding.getSessionStatus() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbDeserializer.java new file mode 100644 index 0000000..e8e81a0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum FuturesLimitDeletePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesLimitDelete deserialize(final byte[] data) { + return convert(QluaStructures.FuturesLimitDelete.parseFrom(data)); + } + + @Override + public FuturesLimitDelete convert(@NotNull QluaStructures.FuturesLimitDelete futuresLimitDelete) { + + return FuturesLimitDelete.builder() + .firmId( convertFromPbString(futuresLimitDelete.getFirmid()) ) + .limitType( futuresLimitDelete.getLimitType() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java deleted file mode 100644 index 49d652c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerde.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum FuturesLimitDeletePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final FuturesLimitDelete futuresLimitDelete) { - return convertToPb(futuresLimitDelete).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public FuturesLimitDelete deserialize(final byte[] data) { - return convertFromPb(QluaStructures.FuturesLimitDelete.parseFrom(data)); - } - - @Override - public FuturesLimitDelete convertFromPb(@NotNull QluaStructures.FuturesLimitDelete futuresLimitDelete) { - - return FuturesLimitDelete.builder() - .firmId( convertFromPbString(futuresLimitDelete.getFirmid()) ) - .limitType( futuresLimitDelete.getLimitType() ) - .build(); - } - - @Override - public QluaStructures.FuturesLimitDelete convertToPb(@NotNull final FuturesLimitDelete futuresLimitDelete) { - - return QluaStructures.FuturesLimitDelete.newBuilder() - .setFirmid( convertToPbString(futuresLimitDelete.getFirmId()) ) - .setLimitType( futuresLimitDelete.getLimitType() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbDeserializer.java new file mode 100644 index 0000000..3ee1f64 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbDeserializer.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum FuturesLimitPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public FuturesLimit deserialize(final byte[] data) { + return convert(QluaStructures.FuturesLimit.parseFrom(data)); + } + + @Override + public FuturesLimit convert(@NotNull QluaStructures.FuturesLimit futuresLimit) { + + return FuturesLimit.builder() + .firmId( futuresLimit.getFirmid() ) + .trdAccId( futuresLimit.getTrdaccid() ) + .limitType( futuresLimit.getLimitType() ) + .liquidityCoef( convertFromPbString(futuresLimit.getLiquidityCoef()) ) + .cbpPrevLimit( convertFromPbString(futuresLimit.getCbpPrevLimit()) ) + .cbpLimit( convertFromPbString(futuresLimit.getCbplimit()) ) + .cbplUsed( convertFromPbString(futuresLimit.getCbplused()) ) + .cbplPlanned( convertFromPbString(futuresLimit.getCbplplanned()) ) + .varMargin( convertFromPbString(futuresLimit.getVarmargin()) ) + .accruedInt( convertFromPbString(futuresLimit.getAccruedint()) ) + .cbplUsedForOrders( convertFromPbString(futuresLimit.getCbplusedForOrders()) ) + .cbplUsedForPositions( convertFromPbString(futuresLimit.getCbplusedForPositions()) ) + .optionsPremium( convertFromPbString(futuresLimit.getOptionsPremium()) ) + .tsComission( convertFromPbString(futuresLimit.getTsComission()) ) + .kgo( convertFromPbString(futuresLimit.getKgo()) ) + .currCode( futuresLimit.getCurrcode() ) + .realVarMargin( convertFromPbString(futuresLimit.getRealVarmargin()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java deleted file mode 100644 index a97dc3b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerde.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum FuturesLimitPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final FuturesLimit futuresLimit) { - return convertToPb(futuresLimit).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public FuturesLimit deserialize(final byte[] data) { - return convertFromPb(QluaStructures.FuturesLimit.parseFrom(data)); - } - - @Override - public FuturesLimit convertFromPb(@NotNull QluaStructures.FuturesLimit futuresLimit) { - - return FuturesLimit.builder() - .firmId( convertFromPbString(futuresLimit.getFirmid()) ) - .trdAccId( convertFromPbString(futuresLimit.getTrdaccid()) ) - .limitType( futuresLimit.getLimitType() ) - .liquidityCoef( convertFromPbString(futuresLimit.getLiquidityCoef()) ) - .cbpPrevLimit( convertFromPbString(futuresLimit.getCbpPrevLimit()) ) - .cbpLimit( convertFromPbString(futuresLimit.getCbplimit()) ) - .cbplUsed( convertFromPbString(futuresLimit.getCbplused()) ) - .cbplPlanned( convertFromPbString(futuresLimit.getCbplplanned()) ) - .varMargin( convertFromPbString(futuresLimit.getVarmargin()) ) - .accruedInt( convertFromPbString(futuresLimit.getAccruedint()) ) - .cbplUsedForOrders( convertFromPbString(futuresLimit.getCbplusedForOrders()) ) - .cbplUsedForPositions( convertFromPbString(futuresLimit.getCbplusedForPositions()) ) - .optionsPremium( convertFromPbString(futuresLimit.getOptionsPremium()) ) - .tsComission( convertFromPbString(futuresLimit.getTsComission()) ) - .kgo( convertFromPbString(futuresLimit.getKgo()) ) - .currCode( convertFromPbString(futuresLimit.getCurrcode()) ) - .realVarMargin( convertFromPbString(futuresLimit.getRealVarmargin()) ) - .build(); - } - - @Override - public QluaStructures.FuturesLimit convertToPb(@NotNull final FuturesLimit futuresLimit) { - - return QluaStructures.FuturesLimit.newBuilder() - .setFirmid( convertToPbString(futuresLimit.getFirmId()) ) - .setTrdaccid( convertToPbString(futuresLimit.getTrdAccId()) ) - .setLimitType( futuresLimit.getLimitType() ) - .setLiquidityCoef( convertToPbString(futuresLimit.getLiquidityCoef()) ) - .setCbpPrevLimit( convertToPbString(futuresLimit.getCbpPrevLimit()) ) - .setCbplimit( convertToPbString(futuresLimit.getCbpLimit()) ) - .setCbplused( convertToPbString(futuresLimit.getCbplUsed()) ) - .setCbplplanned( convertToPbString(futuresLimit.getCbplPlanned()) ) - .setVarmargin( convertToPbString(futuresLimit.getVarMargin()) ) - .setAccruedint( convertToPbString(futuresLimit.getAccruedInt()) ) - .setCbplusedForOrders( convertToPbString(futuresLimit.getCbplUsedForOrders()) ) - .setCbplusedForPositions( convertToPbString(futuresLimit.getCbplUsedForPositions()) ) - .setOptionsPremium( convertToPbString(futuresLimit.getOptionsPremium()) ) - .setTsComission( convertToPbString(futuresLimit.getTsComission()) ) - .setKgo( convertToPbString(futuresLimit.getKgo()) ) - .setCurrcode( convertToPbString(futuresLimit.getCurrCode()) ) - .setRealVarmargin( convertToPbString(futuresLimit.getRealVarMargin()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java new file mode 100644 index 0000000..d9515b4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetBuySellInfoArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetBuySellInfo.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetBuySellInfo.Request convert(@NotNull final GetBuySellInfo.Args args) { + + return qlua.rpc.GetBuySellInfo.Request.newBuilder() + .setFirmId( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setPrice( args.getPrice() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java new file mode 100644 index 0000000..697fe78 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetBuySellInfoExArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetBuySellInfoEx.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetBuySellInfoEx.Request convert(@NotNull final GetBuySellInfoEx.Args args) { + + return qlua.rpc.GetBuySellInfoEx.Request.newBuilder() + .setFirmId( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setPrice( args.getPrice() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java deleted file mode 100644 index 3056165..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerde.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetBuySellInfoExRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_BUY_SELL_INFO_EX; - - @Override - public byte[] serialize(final GetBuySellInfoEx.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetBuySellInfoEx.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetBuySellInfoEx.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetBuySellInfoEx.Request convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.Request request) { - - return GetBuySellInfoEx.Request.builder() - .firmId( request.getFirmId() ) - .clientCode( request.getClientCode() ) - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .price( request.getPrice() ) - .build(); - - } - - @Override - public qlua.rpc.GetBuySellInfoEx.Request convertToPb(@NotNull final GetBuySellInfoEx.Request request) { - - return qlua.rpc.GetBuySellInfoEx.Request.newBuilder() - .setFirmId( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setPrice( request.getPrice() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbDeserializer.java new file mode 100644 index 0000000..e84acbe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbBuySellInfoEx; + +enum GetBuySellInfoExResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfoEx.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetBuySellInfoEx.Result.parseFrom(data) ); + } + + @Override + public GetBuySellInfoEx.Result convert(@NotNull final qlua.rpc.GetBuySellInfoEx.Result result) { + return new GetBuySellInfoEx.Result( convertFromPbBuySellInfoEx(result.getBuySellInfoEx()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java deleted file mode 100644 index 3210e68..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExResultPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetBuySellInfoExResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetBuySellInfoEx.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetBuySellInfoEx.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetBuySellInfoEx.Result.parseFrom(data) ); - } - - @Override - public GetBuySellInfoEx.Result convertFromPb(@NotNull final qlua.rpc.GetBuySellInfoEx.Result result) { - return new GetBuySellInfoEx.Result( convertFromPbBuySellInfoEx(result.getBuySellInfoEx()) ); - } - - @Override - public qlua.rpc.GetBuySellInfoEx.Result convertToPb(@NotNull final GetBuySellInfoEx.Result result) { - - return qlua.rpc.GetBuySellInfoEx.Result.newBuilder() - .setBuySellInfoEx( convertToPbBuySellInfoEx(result.getBuySellInfoEx()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java deleted file mode 100644 index e83dc9c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerde.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetBuySellInfoRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_BUY_SELL_INFO; - - @Override - public byte[] serialize(final GetBuySellInfo.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetBuySellInfo.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetBuySellInfo.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetBuySellInfo.Request convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.Request request) { - - return GetBuySellInfo.Request.builder() - .firmId( request.getFirmId() ) - .clientCode( request.getClientCode() ) - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .price( request.getPrice() ) - .build(); - - } - - @Override - public qlua.rpc.GetBuySellInfo.Request convertToPb(@NotNull final GetBuySellInfo.Request request) { - - return qlua.rpc.GetBuySellInfo.Request.newBuilder() - .setFirmId( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setPrice( request.getPrice() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbDeserializer.java new file mode 100644 index 0000000..297ec1b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbBuySellInfo; + +enum GetBuySellInfoResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetBuySellInfo.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetBuySellInfo.Result.parseFrom(data) ); + } + + @Override + public GetBuySellInfo.Result convert(@NotNull final qlua.rpc.GetBuySellInfo.Result result) { + return new GetBuySellInfo.Result( convertFromPbBuySellInfo(result.getBuySellInfo()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java deleted file mode 100644 index ae327cb..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoResultPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetBuySellInfoResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetBuySellInfo.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetBuySellInfo.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetBuySellInfo.Result.parseFrom(data) ); - } - - @Override - public GetBuySellInfo.Result convertFromPb(@NotNull final qlua.rpc.GetBuySellInfo.Result result) { - return new GetBuySellInfo.Result( convertFromPbBuySellInfo(result.getBuySellInfo()) ); - } - - @Override - public qlua.rpc.GetBuySellInfo.Result convertToPb(@NotNull final GetBuySellInfo.Result result) { - - return qlua.rpc.GetBuySellInfo.Result.newBuilder() - .setBuySellInfo( convertToPbBuySellInfo(result.getBuySellInfo()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerializer.java new file mode 100644 index 0000000..f0cb203 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetCandlesByIndexArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetCandlesByIndex.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetCandlesByIndex.Request convert(@NotNull final GetCandlesByIndex.Args args) { + + return qlua.rpc.GetCandlesByIndex.Request.newBuilder() + .setTag( args.getTag() ) + .setLine( args.getLine() ) + .setFirstCandle( args.getFirstCandle() ) + .setCount( args.getCount() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java deleted file mode 100644 index a08e8f6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerde.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetCandlesByIndexRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CANDLES_BY_INDEX; - - @Override - public byte[] serialize(final GetCandlesByIndex.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetCandlesByIndex.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetCandlesByIndex.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetCandlesByIndex.Request convertFromPb(@NotNull final qlua.rpc.GetCandlesByIndex.Request request) { - - return GetCandlesByIndex.Request.builder() - .tag( request.getTag() ) - .line( request.getLine() ) - .firstCandle( request.getFirstCandle() ) - .count( request.getCount() ) - .build(); - } - - @Override - public qlua.rpc.GetCandlesByIndex.Request convertToPb(@NotNull final GetCandlesByIndex.Request request) { - - return qlua.rpc.GetCandlesByIndex.Request.newBuilder() - .setTag( request.getTag() ) - .setLine( request.getLine() ) - .setFirstCandle( request.getFirstCandle() ) - .setCount( request.getCount() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbDeserializer.java new file mode 100644 index 0000000..fd3fb81 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbDeserializer.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.common.collect.ImmutableList; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbCandleEntry; + +enum GetCandlesByIndexResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCandlesByIndex.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetCandlesByIndex.Result.parseFrom(data) ); + } + + @Override + public GetCandlesByIndex.Result convert(@NotNull final qlua.rpc.GetCandlesByIndex.Result result) { + + final ImmutableList.Builder candles = ImmutableList.builder(); + for (final QluaStructures.CandleEntry pbCandleEntry : result.getTList()) { + candles.add( convertFromPbCandleEntry(pbCandleEntry) ); + } + + return new GetCandlesByIndex.Result( + candles.build(), + result.getN(), + result.getL() + ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java deleted file mode 100644 index 5f880e2..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.common.collect.ImmutableList; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbCandleEntry; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbCandleEntry; - -enum GetCandlesByIndexResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetCandlesByIndex.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetCandlesByIndex.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetCandlesByIndex.Result.parseFrom(data) ); - } - - @Override - public GetCandlesByIndex.Result convertFromPb(@NotNull final qlua.rpc.GetCandlesByIndex.Result result) { - - final ImmutableList.Builder candles = ImmutableList.builder(); - for (final QluaStructures.CandleEntry pbCandleEntry : result.getTList()) { - candles.add( convertFromPbCandleEntry(pbCandleEntry) ); - } - - return new GetCandlesByIndex.Result( - candles.build(), - result.getN(), - result.getL() - ); - } - - @Override - public qlua.rpc.GetCandlesByIndex.Result convertToPb(@NotNull final GetCandlesByIndex.Result result) { - - final ImmutableList.Builder pbCandles = ImmutableList.builder(); - for (final CandleEntry candleEntry : result.getT()) { - pbCandles.add( convertToPbCandleEntry(candleEntry) ); - } - - return qlua.rpc.GetCandlesByIndex.Result.newBuilder() - .addAllT(pbCandles.build()) - .setN( result.getN() ) - .setL( result.getL() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerializer.java new file mode 100644 index 0000000..fe27b0d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetCellArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetCell.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetCell.Request convert(@NotNull final GetCell.Args args) { + + return qlua.rpc.GetCell.Request.newBuilder() + .setTId( args.getTId() ) + .setKey( args.getKey() ) + .setCode( args.getCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java deleted file mode 100644 index 2827124..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetCellRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CELL; - - @Override - public byte[] serialize(final GetCell.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetCell.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetCell.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetCell.Request convertFromPb(@NotNull final qlua.rpc.GetCell.Request request) { - - return GetCell.Request.builder() - .tId( request.getTId() ) - .key( request.getKey() ) - .code( request.getCode() ) - .build(); - } - - @Override - public qlua.rpc.GetCell.Request convertToPb(@NotNull final GetCell.Request request) { - - return qlua.rpc.GetCell.Request.newBuilder() - .setTId( request.getTId() ) - .setKey( request.getKey() ) - .setCode( request.getCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java new file mode 100644 index 0000000..cb9748d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetCellResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetCell.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetCell.Result.parseFrom(data) ); + } + + @Override + public GetCell.Result convert(@NotNull final qlua.rpc.GetCell.Result result) { + return GetCell.Result.builder() + .image( result.getImage() ) + .value( result.getValue() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java deleted file mode 100644 index 84895ab..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerde.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetCellResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetCell.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetCell.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetCell.Result.parseFrom(data) ); - } - - @Override - public GetCell.Result convertFromPb(@NotNull final qlua.rpc.GetCell.Result result) { - return GetCell.Result.builder() - .image( result.getImage() ) - .value( result.getValue() ) - .build(); - } - - @Override - public qlua.rpc.GetCell.Result convertToPb(@NotNull final GetCell.Result result) { - return qlua.rpc.GetCell.Result.newBuilder() - .setImage( result.getImage() ) - .setValue( result.getValue() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java new file mode 100644 index 0000000..70f9fae --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetClassInfoArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetClassInfo.Args args) { + return convert(args).toByteArray(); + } + + @Override + public qlua.rpc.GetClassInfo.Request convert(@NotNull final GetClassInfo.Args args) { + + return qlua.rpc.GetClassInfo.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java deleted file mode 100644 index 22489fe..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetClassInfoRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASS_INFO; - - @Override - public byte[] serialize(final GetClassInfo.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassInfo.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetClassInfo.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetClassInfo.Request convertFromPb(@NotNull final qlua.rpc.GetClassInfo.Request request) { - return new GetClassInfo.Request( request.getClassCode() ); - } - - @Override - public qlua.rpc.GetClassInfo.Request convertToPb(@NotNull final GetClassInfo.Request request) { - - return qlua.rpc.GetClassInfo.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbDeserializer.java new file mode 100644 index 0000000..f707888 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbDeserializer.java @@ -0,0 +1,34 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbClassInfo; + +enum GetClassInfoResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassInfo.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetClassInfo.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetClassInfo.Result convert(@NotNull final qlua.rpc.GetClassInfo.Result result) { + + ClassInfo classInfo = null; + if ( result.hasClassInfo() ) { + classInfo = convertFromPbClassInfo(result.getClassInfo()); + } + + return new GetClassInfo.Result(classInfo); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java deleted file mode 100644 index a195b67..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerde.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetClassInfoResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetClassInfo.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassInfo.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetClassInfo.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetClassInfo.Result convertFromPb(@NotNull final qlua.rpc.GetClassInfo.Result result) { - - ClassInfo classInfo = null; - if ( result.hasClassInfo() ) { - classInfo = convertFromPbClassInfo(result.getClassInfo()); - } - - return new GetClassInfo.Result(classInfo); - } - - @NotNull - @Override - public qlua.rpc.GetClassInfo.Result convertToPb(@NotNull final GetClassInfo.Result result) { - - final qlua.rpc.GetClassInfo.Result.Builder pbResult = qlua.rpc.GetClassInfo.Result.newBuilder(); - final ClassInfo classInfo = result.getClassInfo(); - if (classInfo != null) { - pbResult.setClassInfo( convertToPbClassInfo(classInfo) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java new file mode 100644 index 0000000..e10ca2c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetClassSecuritiesArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetClassSecurities.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetClassSecurities.Request convert(@NotNull final GetClassSecurities.Args args) { + + return qlua.rpc.GetClassSecurities.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java deleted file mode 100644 index c8242d3..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetClassSecuritiesRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASS_SECURITIES; - - @Override - public byte[] serialize(final GetClassSecurities.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassSecurities.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetClassSecurities.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetClassSecurities.Request convertFromPb(@NotNull final qlua.rpc.GetClassSecurities.Request request) { - return new GetClassSecurities.Request( request.getClassCode() ); - } - - @Override - public qlua.rpc.GetClassSecurities.Request convertToPb(@NotNull final GetClassSecurities.Request request) { - - return qlua.rpc.GetClassSecurities.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbDeserializer.java new file mode 100644 index 0000000..1a360a9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum GetClassSecuritiesResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassSecurities.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetClassSecurities.Result.parseFrom(data) ); + } + + @Override + public GetClassSecurities.Result convert(@NotNull final qlua.rpc.GetClassSecurities.Result result) { + return new GetClassSecurities.Result( convertFromPbString(result.getClassSecurities()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java deleted file mode 100644 index 41d3672..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum GetClassSecuritiesResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetClassSecurities.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassSecurities.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetClassSecurities.Result.parseFrom(data) ); - } - - @Override - public GetClassSecurities.Result convertFromPb(@NotNull final qlua.rpc.GetClassSecurities.Result result) { - return new GetClassSecurities.Result( convertFromPbString(result.getClassSecurities()) ); - } - - @Override - public qlua.rpc.GetClassSecurities.Result convertToPb(@NotNull final GetClassSecurities.Result result) { - return qlua.rpc.GetClassSecurities.Result.newBuilder() - .setClassSecurities( convertToPbString(result.getClassSecurities()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java deleted file mode 100644 index 2a90988..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetClassesListRequestPbSerde implements Serde { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_CLASSES_LIST; - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final GetClassesList.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassesList.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return GetClassesList.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbDeserializer.java new file mode 100644 index 0000000..4de0bd3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum GetClassesListResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetClassesList.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetClassesList.Result.parseFrom(data) ); + } + + @Override + public GetClassesList.Result convert(@NotNull final qlua.rpc.GetClassesList.Result result) { + return new GetClassesList.Result( convertFromPbString(result.getClassesList()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java deleted file mode 100644 index cec4098..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum GetClassesListResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetClassesList.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetClassesList.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetClassesList.Result.parseFrom(data) ); - } - - @Override - public GetClassesList.Result convertFromPb(@NotNull final qlua.rpc.GetClassesList.Result result) { - return new GetClassesList.Result( convertFromPbString(result.getClassesList()) ); - } - - @Override - public qlua.rpc.GetClassesList.Result convertToPb(@NotNull final GetClassesList.Result result) { - return qlua.rpc.GetClassesList.Result.newBuilder() - .setClassesList( convertToPbString(result.getClassesList()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerializer.java new file mode 100644 index 0000000..5adba44 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetDepoArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetDepo.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetDepo.Request convert(@NotNull final GetDepo.Args args) { + + return qlua.rpc.GetDepo.Request.newBuilder() + .setClientCode( args.getClientCode() ) + .setFirmid( args.getFirmId() ) + .setSecCode( args.getSecCode() ) + .setTrdaccid( args.getTrdAccId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java new file mode 100644 index 0000000..499f76d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +enum GetDepoExArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_DEPO_EX; + + @Override + public @NotNull byte[] serialize(@NotNull final GetDepoEx.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetDepoEx.Request convert(@NotNull final GetDepoEx.Args args) { + + return qlua.rpc.GetDepoEx.Request.newBuilder() + .setFirmid( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .setSecCode( args.getSecCode() ) + .setTrdaccid( args.getTrdAccId() ) + .setLimitKind( args.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java deleted file mode 100644 index 26fd20d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerde.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetDepoExRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_DEPO_EX; - - @Override - public byte[] serialize(final GetDepoEx.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetDepoEx.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetDepoEx.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetDepoEx.Request convertFromPb(@NotNull final qlua.rpc.GetDepoEx.Request request) { - return GetDepoEx.Request.builder() - .firmId( request.getFirmid() ) - .clientCode( request.getClientCode() ) - .secCode( request.getSecCode() ) - .trdAccId( request.getTrdaccid() ) - .limitKind( request.getLimitKind() ) - .build(); - } - - @Override - public qlua.rpc.GetDepoEx.Request convertToPb(@NotNull final GetDepoEx.Request request) { - - return qlua.rpc.GetDepoEx.Request.newBuilder() - .setFirmid( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .setSecCode( request.getSecCode() ) - .setTrdaccid( request.getTrdAccId() ) - .setLimitKind( request.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbDeserializer.java new file mode 100644 index 0000000..b749fd1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDepoLimit; + +enum GetDepoExResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepoEx.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetDepoEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetDepoEx.Result convert(@NotNull final qlua.rpc.GetDepoEx.Result result) { + + final DepoLimit depoLimit = result.hasDepoEx() ? convertFromPbDepoLimit(result.getDepoEx()) : null; + return GetDepoEx.Result.getInstance(depoLimit); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java deleted file mode 100644 index 71f5862..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerde.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetDepoExResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetDepoEx.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetDepoEx.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetDepoEx.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetDepoEx.Result convertFromPb(@NotNull final qlua.rpc.GetDepoEx.Result result) { - - final DepoLimit depoLimit = result.hasDepoEx() ? convertFromPbDepoLimit(result.getDepoEx()) : null; - return GetDepoEx.Result.getInstance(depoLimit); - } - - @NotNull - @Override - public qlua.rpc.GetDepoEx.Result convertToPb(@NotNull final GetDepoEx.Result result) { - - final qlua.rpc.GetDepoEx.Result.Builder pbResult = qlua.rpc.GetDepoEx.Result.newBuilder(); - final DepoLimit depoLimit = result.getDepoEx(); - if (depoLimit != null) { - pbResult.setDepoEx( convertToPbDepoLimit(depoLimit) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java deleted file mode 100644 index 397e4fe..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerde.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetDepoRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_DEPO; - - @Override - public byte[] serialize(final GetDepo.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetDepo.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetDepo.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetDepo.Request convertFromPb(@NotNull final qlua.rpc.GetDepo.Request request) { - - return GetDepo.Request.builder() - .clientCode( request.getClientCode() ) - .firmId( request.getFirmid() ) - .secCode( request.getSecCode() ) - .trdAccId( request.getTrdaccid() ) - .build(); - } - - @Override - public qlua.rpc.GetDepo.Request convertToPb(@NotNull final GetDepo.Request request) { - - return qlua.rpc.GetDepo.Request.newBuilder() - .setClientCode( request.getClientCode() ) - .setFirmid( request.getFirmId() ) - .setSecCode( request.getSecCode() ) - .setTrdaccid( request.getTrdAccId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbDeserializer.java new file mode 100644 index 0000000..429d3e2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDepo; + +enum GetDepoResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetDepo.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetDepo.Result.parseFrom(data) ); + } + + @Override + public GetDepo.Result convert(@NotNull final qlua.rpc.GetDepo.Result result) { + return new GetDepo.Result( convertFromPbDepo(result.getDepo()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java deleted file mode 100644 index 25a8c0b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetDepoResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetDepo.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetDepo.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetDepo.Result.parseFrom(data) ); - } - - @Override - public GetDepo.Result convertFromPb(@NotNull final qlua.rpc.GetDepo.Result result) { - return new GetDepo.Result( convertFromPbDepo(result.getDepo()) ); - } - - @Override - public qlua.rpc.GetDepo.Result convertToPb(@NotNull final GetDepo.Result result) { - - return qlua.rpc.GetDepo.Result.newBuilder() - .setDepo( convertToPbDepo(result.getDepo()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java new file mode 100644 index 0000000..a1b5024 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetFuturesHoldingArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetFuturesHolding.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetFuturesHolding.Request convert(@NotNull final GetFuturesHolding.Args args) { + + return qlua.rpc.GetFuturesHolding.Request.newBuilder() + .setFirmid( args.getFirmId() ) + .setTrdaccid( args.getTrdAccId() ) + .setSecCode( args.getSecCode() ) + .setType( args.getType() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java deleted file mode 100644 index fa9d743..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerde.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetFuturesHoldingRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_FUTURES_HOLDING; - - @Override - public byte[] serialize(final GetFuturesHolding.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetFuturesHolding.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetFuturesHolding.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetFuturesHolding.Request convertFromPb(@NotNull final qlua.rpc.GetFuturesHolding.Request request) { - return GetFuturesHolding.Request.builder() - .firmId( request.getFirmid() ) - .trdAccId( request.getTrdaccid() ) - .secCode( request.getSecCode() ) - .type( request.getType() ) - .build(); - } - - @Override - public qlua.rpc.GetFuturesHolding.Request convertToPb(@NotNull final GetFuturesHolding.Request request) { - - return qlua.rpc.GetFuturesHolding.Request.newBuilder() - .setFirmid( request.getFirmId() ) - .setTrdaccid( request.getTrdAccId() ) - .setSecCode( request.getSecCode() ) - .setType( request.getType() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbDeserializer.java new file mode 100644 index 0000000..06c50d7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbFuturesClientHolding; + +enum GetFuturesHoldingResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesHolding.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetFuturesHolding.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetFuturesHolding.Result convert(@NotNull final qlua.rpc.GetFuturesHolding.Result result) { + + final FuturesClientHolding futuresClientHolding = result.hasFuturesHolding() ? convertFromPbFuturesClientHolding(result.getFuturesHolding()) : null; + return GetFuturesHolding.Result.getInstance(futuresClientHolding); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java deleted file mode 100644 index ee01b0f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerde.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbFuturesClientHolding; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbFuturesClientHolding; - -enum GetFuturesHoldingResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetFuturesHolding.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetFuturesHolding.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetFuturesHolding.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetFuturesHolding.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesHolding.Result result) { - - final FuturesClientHolding futuresClientHolding = result.hasFuturesHolding() ? convertFromPbFuturesClientHolding(result.getFuturesHolding()) : null; - return GetFuturesHolding.Result.getInstance(futuresClientHolding); - } - - @NotNull - @Override - public qlua.rpc.GetFuturesHolding.Result convertToPb(@NotNull final GetFuturesHolding.Result result) { - - final qlua.rpc.GetFuturesHolding.Result.Builder pbResult = qlua.rpc.GetFuturesHolding.Result.newBuilder(); - final FuturesClientHolding futuresClientHolding = result.getFuturesHolding(); - if (futuresClientHolding != null) { - pbResult.setFuturesHolding( convertToPbFuturesClientHolding(futuresClientHolding) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerializer.java new file mode 100644 index 0000000..c959023 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetFuturesLimitArgsPbSerializer implements Serializer, ToPbConverter< GetFuturesLimit.Args, qlua.rpc.GetFuturesLimit.Request> { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetFuturesLimit.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetFuturesLimit.Request convert(@NotNull final GetFuturesLimit.Args args) { + + return qlua.rpc.GetFuturesLimit.Request.newBuilder() + .setFirmid( args.getFirmId() ) + .setTrdaccid( args.getTrdAccId() ) + .setLimitType( args.getLimitType() ) + .setCurrcode( args.getCurrCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java deleted file mode 100644 index b950c8d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerde.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetFuturesLimitRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_FUTURES_LIMIT; - - @Override - public byte[] serialize(final GetFuturesLimit.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetFuturesLimit.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetFuturesLimit.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetFuturesLimit.Request convertFromPb(@NotNull final qlua.rpc.GetFuturesLimit.Request request) { - return GetFuturesLimit.Request.builder() - .firmId( request.getFirmid() ) - .trdAccId( request.getTrdaccid() ) - .limitType( request.getLimitType() ) - .currCode( request.getCurrcode() ) - .build(); - } - - @Override - public qlua.rpc.GetFuturesLimit.Request convertToPb(@NotNull final GetFuturesLimit.Request request) { - - return qlua.rpc.GetFuturesLimit.Request.newBuilder() - .setFirmid( request.getFirmId() ) - .setTrdaccid( request.getTrdAccId() ) - .setLimitType( request.getLimitType() ) - .setCurrcode( request.getCurrCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbDeserializer.java new file mode 100644 index 0000000..373a756 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbFuturesLimit; + +enum GetFuturesLimitResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetFuturesLimit.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetFuturesLimit.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetFuturesLimit.Result convert(@NotNull final qlua.rpc.GetFuturesLimit.Result result) { + + final FuturesLimit futuresLimit = result.hasFuturesLimit() ? convertFromPbFuturesLimit(result.getFuturesLimit()) : null; + return GetFuturesLimit.Result.getInstance(futuresLimit); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java deleted file mode 100644 index a3b3ad7..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerde.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetFuturesLimitResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetFuturesLimit.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetFuturesLimit.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetFuturesLimit.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetFuturesLimit.Result convertFromPb(@NotNull final qlua.rpc.GetFuturesLimit.Result result) { - - final FuturesLimit futuresLimit = result.hasFuturesLimit() ? convertFromPbFuturesLimit(result.getFuturesLimit()) : null; - return GetFuturesLimit.Result.getInstance(futuresLimit); - } - - @NotNull - @Override - public qlua.rpc.GetFuturesLimit.Result convertToPb(@NotNull final GetFuturesLimit.Result result) { - - final qlua.rpc.GetFuturesLimit.Result.Builder pbResult = qlua.rpc.GetFuturesLimit.Result.newBuilder(); - final FuturesLimit futuresLimit = result.getFuturesLimit(); - if (futuresLimit != null) { - pbResult.setFuturesLimit( convertToPbFuturesLimit(futuresLimit) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java new file mode 100644 index 0000000..2bcad98 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetInfoParamArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetInfoParam.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetInfoParam.Request convert(@NotNull final GetInfoParam.Args args) { + + return qlua.rpc.GetInfoParam.Request.newBuilder() + .setParamName( args.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java deleted file mode 100644 index fad9860..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetInfoParamRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_INFO_PARAM; - - @Override - public byte[] serialize(final GetInfoParam.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetInfoParam.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetInfoParam.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetInfoParam.Request convertFromPb(@NotNull final qlua.rpc.GetInfoParam.Request request) { - return new GetInfoParam.Request( request.getParamName() ); - } - - @Override - public qlua.rpc.GetInfoParam.Request convertToPb(@NotNull final GetInfoParam.Request request) { - - return qlua.rpc.GetInfoParam.Request.newBuilder() - .setParamName( request.getParamName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbDeserializer.java new file mode 100644 index 0000000..fb3e628 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetInfoParamResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetInfoParam.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetInfoParam.Result.parseFrom(data) ); + } + + @Override + public GetInfoParam.Result convert(@NotNull final qlua.rpc.GetInfoParam.Result result) { + return new GetInfoParam.Result( result.getInfoParam() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java deleted file mode 100644 index 3122f6d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetInfoParamResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetInfoParam.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetInfoParam.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetInfoParam.Result.parseFrom(data) ); - } - - @Override - public GetInfoParam.Result convertFromPb(@NotNull final qlua.rpc.GetInfoParam.Result result) { - return new GetInfoParam.Result( result.getInfoParam() ); - } - - @Override - public qlua.rpc.GetInfoParam.Result convertToPb(@NotNull final GetInfoParam.Result result) { - return qlua.rpc.GetInfoParam.Result.newBuilder() - .setInfoParam( result.getInfoParam() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java new file mode 100644 index 0000000..37e29db --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetItemArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetItem.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetItem.Request convert(@NotNull final GetItem.Args args) { + + return qlua.rpc.GetItem.Request.newBuilder() + .setTableName( args.getTableName() ) + .setIndex( args.getIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java deleted file mode 100644 index e22f477..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetItemRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_ITEM; - - @Override - public byte[] serialize(final GetItem.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetItem.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetItem.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetItem.Request convertFromPb(@NotNull final qlua.rpc.GetItem.Request request) { - return new GetItem.Request(request.getTableName(), request.getIndex()); - } - - @Override - public qlua.rpc.GetItem.Request convertToPb(@NotNull final GetItem.Request request) { - - return qlua.rpc.GetItem.Request.newBuilder() - .setTableName( request.getTableName() ) - .setIndex( request.getIndex() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbDeserializer.java new file mode 100644 index 0000000..0dc2ceb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetItemResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetItem.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetItem.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetItem.Result convert(@NotNull final qlua.rpc.GetItem.Result result) { + return GetItem.Result.getInstance(result.getNullTableRow() ? null : result.getTableRowMap()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java deleted file mode 100644 index 078cd58..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerde.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import java.util.Map; - -enum GetItemResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetItem.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetItem.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetItem.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetItem.Result convertFromPb(@NotNull final qlua.rpc.GetItem.Result result) { - return GetItem.Result.getInstance( result.getTableRowMap() ); - } - - @NotNull - @Override - public qlua.rpc.GetItem.Result convertToPb(@NotNull final GetItem.Result result) { - - final qlua.rpc.GetItem.Result.Builder pbResult = qlua.rpc.GetItem.Result.newBuilder(); - final Map tableRow = result.getTableRow(); - if (tableRow != null) { - pbResult.putAllTableRow(tableRow); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerializer.java new file mode 100644 index 0000000..b75b9f5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetLabelParamsArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetLabelParams.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetLabelParams.Args convert(@NotNull final GetLabelParams.Args args) { + + return qlua.rpc.GetLabelParams.Args.newBuilder() + .setChartTag( args.getChartTag() ) + .setLabelId( args.getLabelId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java deleted file mode 100644 index 51d41e4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetLabelParamsRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_LABEL_PARAMS; - - @Override - public byte[] serialize(final GetLabelParams.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetLabelParams.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetLabelParams.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetLabelParams.Request convertFromPb(@NotNull final qlua.rpc.GetLabelParams.Request request) { - return new GetLabelParams.Request(request.getChartTag(), request.getLabelId()); - } - - @Override - public qlua.rpc.GetLabelParams.Request convertToPb(@NotNull final GetLabelParams.Request request) { - - return qlua.rpc.GetLabelParams.Request.newBuilder() - .setChartTag( request.getChartTag() ) - .setLabelId( request.getLabelId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbDeserializer.java new file mode 100644 index 0000000..211a57b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetLabelParamsResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLabelParams.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetLabelParams.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetLabelParams.Result convert(@NotNull final qlua.rpc.GetLabelParams.Result result) { + return GetLabelParams.Result.getInstance(result.getNullLabelParams() ? null : result.getLabelParamsMap()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java deleted file mode 100644 index ee951bc..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerde.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import java.util.Map; - -enum GetLabelParamsResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetLabelParams.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetLabelParams.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetLabelParams.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetLabelParams.Result convertFromPb(@NotNull final qlua.rpc.GetLabelParams.Result result) { - return GetLabelParams.Result.getInstance( result.getLabelParamsMap() ); - } - - @NotNull - @Override - public qlua.rpc.GetLabelParams.Result convertToPb(@NotNull final GetLabelParams.Result result) { - - final qlua.rpc.GetLabelParams.Result.Builder pbResult = qlua.rpc.GetLabelParams.Result.newBuilder(); - final Map labelParams = result.getLabelParams(); - if (labelParams != null) { - pbResult.putAllLabelParams(labelParams); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java new file mode 100644 index 0000000..7da3134 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetLinesCountArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetLinesCount.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetLinesCount.Request convert(@NotNull final GetLinesCount.Args args) { + + return qlua.rpc.GetLinesCount.Request.newBuilder() + .setTag( args.getTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java deleted file mode 100644 index 45d913d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetLinesCountRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_LINES_COUNT; - - @Override - public byte[] serialize(final GetLinesCount.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetLinesCount.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetLinesCount.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetLinesCount.Request convertFromPb(@NotNull final qlua.rpc.GetLinesCount.Request request) { - return new GetLinesCount.Request( request.getTag() ); - } - - @Override - public qlua.rpc.GetLinesCount.Request convertToPb(@NotNull final GetLinesCount.Request request) { - - return qlua.rpc.GetLinesCount.Request.newBuilder() - .setTag( request.getTag() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbDeserializer.java new file mode 100644 index 0000000..bda5f9e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetLinesCountResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetLinesCount.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetLinesCount.Result.parseFrom(data) ); + } + + @Override + public GetLinesCount.Result convert(@NotNull final qlua.rpc.GetLinesCount.Result result) { + return new GetLinesCount.Result( result.getLinesCount() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java deleted file mode 100644 index 990c56e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetLinesCountResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetLinesCount.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetLinesCount.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetLinesCount.Result.parseFrom(data) ); - } - - @Override - public GetLinesCount.Result convertFromPb(@NotNull final qlua.rpc.GetLinesCount.Result result) { - return new GetLinesCount.Result( result.getLinesCount() ); - } - - @Override - public qlua.rpc.GetLinesCount.Result convertToPb(@NotNull final GetLinesCount.Result result) { - return qlua.rpc.GetLinesCount.Result.newBuilder() - .setLinesCount( result.getLinesCount() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java new file mode 100644 index 0000000..144f268 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetMoneyArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetMoney.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetMoney.Request convert(@NotNull final GetMoney.Args args) { + + return qlua.rpc.GetMoney.Request.newBuilder() + .setClientCode( args.getClientCode() ) + .setFirmid( args.getFirmId() ) + .setTag( args.getTag() ) + .setCurrcode( args.getCurrCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java new file mode 100644 index 0000000..1e073fe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetMoneyExArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetMoneyEx.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetMoneyEx.Request convert(@NotNull final GetMoneyEx.Args args) { + + return qlua.rpc.GetMoneyEx.Request.newBuilder() + .setFirmid( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .setTag( args.getTag() ) + .setCurrcode( args.getCurrCode() ) + .setLimitKind( args.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java deleted file mode 100644 index bbfae93..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerde.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetMoneyExRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_MONEY_EX; - - @Override - public byte[] serialize(final GetMoneyEx.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetMoneyEx.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetMoneyEx.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetMoneyEx.Request convertFromPb(@NotNull final qlua.rpc.GetMoneyEx.Request request) { - - return GetMoneyEx.Request.builder() - .firmId( request.getFirmid() ) - .clientCode( request.getClientCode() ) - .tag( request.getTag() ) - .currCode( request.getCurrcode() ) - .limitKind( request.getLimitKind() ) - .build(); - } - - @Override - public qlua.rpc.GetMoneyEx.Request convertToPb(@NotNull final GetMoneyEx.Request request) { - - return qlua.rpc.GetMoneyEx.Request.newBuilder() - .setFirmid( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .setTag( request.getTag() ) - .setCurrcode( request.getCurrCode() ) - .setLimitKind( request.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbDeserializer.java new file mode 100644 index 0000000..dbd879e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoneyLimit; + +enum GetMoneyExResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoneyEx.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetMoneyEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetMoneyEx.Result convert(@NotNull final qlua.rpc.GetMoneyEx.Result result) { + + final MoneyLimit moneyLimit = result.hasMoneyEx() ? convertFromPbMoneyLimit(result.getMoneyEx()) : null; + return GetMoneyEx.Result.getInstance(moneyLimit); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java deleted file mode 100644 index aeb1d21..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerde.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoneyLimit; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbMoneyLimit; - -enum GetMoneyExResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetMoneyEx.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetMoneyEx.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetMoneyEx.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetMoneyEx.Result convertFromPb(@NotNull final qlua.rpc.GetMoneyEx.Result result) { - - final MoneyLimit moneyLimit = result.hasMoneyEx() ? convertFromPbMoneyLimit(result.getMoneyEx()) : null; - return GetMoneyEx.Result.getInstance(moneyLimit); - } - - @NotNull - @Override - public qlua.rpc.GetMoneyEx.Result convertToPb(@NotNull final GetMoneyEx.Result result) { - - final qlua.rpc.GetMoneyEx.Result.Builder pbResult = qlua.rpc.GetMoneyEx.Result.newBuilder(); - final MoneyLimit moneyLimit = result.getMoneyEx(); - if (moneyLimit != null) { - pbResult.setMoneyEx( convertToPbMoneyLimit(moneyLimit) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java deleted file mode 100644 index 233792e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerde.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetMoneyRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_MONEY; - - @Override - public byte[] serialize(final GetMoney.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetMoney.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetMoney.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetMoney.Request convertFromPb(@NotNull final qlua.rpc.GetMoney.Request request) { - - return GetMoney.Request.builder() - .clientCode( request.getClientCode() ) - .firmId( request.getFirmid() ) - .tag( request.getTag() ) - .currCode( request.getCurrcode() ) - .build(); - } - - @Override - public qlua.rpc.GetMoney.Request convertToPb(@NotNull final GetMoney.Request request) { - - return qlua.rpc.GetMoney.Request.newBuilder() - .setClientCode( request.getClientCode() ) - .setFirmid( request.getFirmId() ) - .setTag( request.getTag() ) - .setCurrcode( request.getCurrCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbDeserializer.java new file mode 100644 index 0000000..ab335e3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoney; + +enum GetMoneyResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetMoney.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetMoney.Result.parseFrom(data) ); + } + + @Override + public GetMoney.Result convert(@NotNull final qlua.rpc.GetMoney.Result result) { + return new GetMoney.Result( convertFromPbMoney(result.getMoney()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java deleted file mode 100644 index 3c8d61d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerde.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbMoney; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbMoney; - -enum GetMoneyResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetMoney.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetMoney.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetMoney.Result.parseFrom(data) ); - } - - @Override - public GetMoney.Result convertFromPb(@NotNull final qlua.rpc.GetMoney.Result result) { - return new GetMoney.Result( convertFromPbMoney(result.getMoney()) ); - } - - @Override - public qlua.rpc.GetMoney.Result convertToPb(@NotNull final GetMoney.Result result) { - - return qlua.rpc.GetMoney.Result.newBuilder() - .setMoney( convertToPbMoney(result.getMoney()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java new file mode 100644 index 0000000..e773e5a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetNumCandlesArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetNumCandles.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetNumCandles.Request convert(@NotNull final GetNumCandles.Args args) { + + return qlua.rpc.GetNumCandles.Request.newBuilder() + .setTag( args.getTag() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java deleted file mode 100644 index 9face89..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetNumCandlesRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_NUM_CANDLES; - - @Override - public byte[] serialize(final GetNumCandles.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetNumCandles.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetNumCandles.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetNumCandles.Request convertFromPb(@NotNull final qlua.rpc.GetNumCandles.Request request) { - return new GetNumCandles.Request( request.getTag() ); - } - - @Override - public qlua.rpc.GetNumCandles.Request convertToPb(@NotNull final GetNumCandles.Request request) { - - return qlua.rpc.GetNumCandles.Request.newBuilder() - .setTag( request.getTag() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbDeserializer.java new file mode 100644 index 0000000..df59e74 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetNumCandlesResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumCandles.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetNumCandles.Result.parseFrom(data) ); + } + + @Override + public GetNumCandles.Result convert(@NotNull final qlua.rpc.GetNumCandles.Result result) { + return new GetNumCandles.Result( result.getNumCandles() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java deleted file mode 100644 index 572c525..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetNumCandlesResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetNumCandles.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetNumCandles.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetNumCandles.Result.parseFrom(data) ); - } - - @Override - public GetNumCandles.Result convertFromPb(@NotNull final qlua.rpc.GetNumCandles.Result result) { - return new GetNumCandles.Result( result.getNumCandles() ); - } - - @Override - public qlua.rpc.GetNumCandles.Result convertToPb(@NotNull final GetNumCandles.Result result) { - return qlua.rpc.GetNumCandles.Result.newBuilder() - .setNumCandles( result.getNumCandles() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java new file mode 100644 index 0000000..1690d69 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetNumberOfArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetNumberOf.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetNumberOf.Request convert(@NotNull final GetNumberOf.Args args) { + + return qlua.rpc.GetNumberOf.Request.newBuilder() + .setTableName( args.getTableName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java deleted file mode 100644 index 574fb1b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetNumberOfRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_NUMBER_OF; - - @Override - public byte[] serialize(final GetNumberOf.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetNumberOf.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetNumberOf.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetNumberOf.Request convertFromPb(@NotNull final qlua.rpc.GetNumberOf.Request request) { - return new GetNumberOf.Request( request.getTableName() ); - } - - @Override - public qlua.rpc.GetNumberOf.Request convertToPb(@NotNull final GetNumberOf.Request request) { - - return qlua.rpc.GetNumberOf.Request.newBuilder() - .setTableName( request.getTableName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbDeserializer.java new file mode 100644 index 0000000..e73000f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetNumberOfResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetNumberOf.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetNumberOf.Result.parseFrom(data) ); + } + + @Override + public GetNumberOf.Result convert(@NotNull final qlua.rpc.GetNumberOf.Result result) { + return new GetNumberOf.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java deleted file mode 100644 index f38d1d4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetNumberOfResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetNumberOf.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetNumberOf.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetNumberOf.Result.parseFrom(data) ); - } - - @Override - public GetNumberOf.Result convertFromPb(@NotNull final qlua.rpc.GetNumberOf.Result result) { - return new GetNumberOf.Result( result.getResult() ); - } - - @Override - public qlua.rpc.GetNumberOf.Result convertToPb(@NotNull final GetNumberOf.Result result) { - return qlua.rpc.GetNumberOf.Result.newBuilder() - .setResult( result.getResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java new file mode 100644 index 0000000..cbaad68 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetOrderByNumberArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetOrderByNumber.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetOrderByNumber.Request convert(@NotNull final GetOrderByNumber.Args args) { + + return qlua.rpc.GetOrderByNumber.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setOrderId( args.getOrderId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java deleted file mode 100644 index 43978ab..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetOrderByNumberRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_ORDER_BY_NUMBER; - - @Override - public byte[] serialize(final GetOrderByNumber.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetOrderByNumber.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetOrderByNumber.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetOrderByNumber.Request convertFromPb(@NotNull final qlua.rpc.GetOrderByNumber.Request request) { - return new GetOrderByNumber.Request(request.getClassCode(), request.getOrderId()); - } - - @Override - public qlua.rpc.GetOrderByNumber.Request convertToPb(@NotNull final GetOrderByNumber.Request request) { - - return qlua.rpc.GetOrderByNumber.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setOrderId( request.getOrderId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbDeserializer.java new file mode 100644 index 0000000..a74441f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbDeserializer.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbOrder; + +enum GetOrderByNumberResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetOrderByNumber.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetOrderByNumber.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetOrderByNumber.Result convert(@NotNull final qlua.rpc.GetOrderByNumber.Result result) { + + final Order order = result.hasOrder() ? convertFromPbOrder(result.getOrder()) : null; + final Integer indx = result.getNullIndx() ? null : result.getValueIndx(); + return GetOrderByNumber.Result.getInstance(order, indx); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java deleted file mode 100644 index dc1d01b..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerde.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; -import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum GetOrderByNumberResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetOrderByNumber.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetOrderByNumber.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetOrderByNumber.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetOrderByNumber.Result convertFromPb(@NotNull final qlua.rpc.GetOrderByNumber.Result result) { - - final Order order = result.hasOrder() ? convertFromPbOrder(result.getOrder()) : null; - return GetOrderByNumber.Result.getInstance(order, result.getIndx()); - } - - @NotNull - @Override - public qlua.rpc.GetOrderByNumber.Result convertToPb(@NotNull final GetOrderByNumber.Result result) { - - final qlua.rpc.GetOrderByNumber.Result.Builder pbResult = qlua.rpc.GetOrderByNumber.Result.newBuilder(); - final Order order = result.getOrder(); - if (order != null) { - pbResult.setOrder( convertToPbOrder(order) ); - pbResult.setIndx( result.getIndx() ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerializer.java new file mode 100644 index 0000000..d7e0049 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetParamEx2ArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetParamEx2.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetParamEx2.Request convert(@NotNull final GetParamEx2.Args args) { + + return qlua.rpc.GetParamEx2.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setParamName( args.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java deleted file mode 100644 index 4b403c7..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetParamEx2RequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PARAM_EX_2; - - @Override - public byte[] serialize(final GetParamEx2.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetParamEx2.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetParamEx2.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetParamEx2.Request convertFromPb(@NotNull final qlua.rpc.GetParamEx2.Request request) { - - return GetParamEx2.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .paramName( request.getParamName() ) - .build(); - } - - @Override - public qlua.rpc.GetParamEx2.Request convertToPb(@NotNull final GetParamEx2.Request request) { - - return qlua.rpc.GetParamEx2.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setParamName( request.getParamName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbDeserializer.java new file mode 100644 index 0000000..6befff6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum GetParamEx2ResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx2.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetParamEx2.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetParamEx2.Result convert(@NotNull final qlua.rpc.GetParamEx2.Result result) { + + if (!result.hasParamEx()) { + throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано."); + } + + final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = result.getParamEx(); + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType( convertFromPbString(pbParamEx.getParamType()) ) + .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) + .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) + .result( convertFromPbString(pbParamEx.getResult()) ) + .build(); + + return new GetParamEx2.Result(paramEx); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java deleted file mode 100644 index 5506d40..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerde.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum GetParamEx2ResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetParamEx2.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetParamEx2.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetParamEx2.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetParamEx2.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx2.Result result) { - - if (!result.hasParamEx()) { - throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано."); - } - - final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = result.getParamEx(); - final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() - .paramType( convertFromPbString(pbParamEx.getParamType()) ) - .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) - .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) - .result( convertFromPbString(pbParamEx.getResult()) ) - .build(); - - return new GetParamEx2.Result(paramEx); - } - - @NotNull - @Override - public qlua.rpc.GetParamEx2.Result convertToPb(@NotNull final GetParamEx2.Result result) { - - final GetParamEx2.ParamEx2 paramEx = result.getParamEx(); - final qlua.rpc.GetParamEx2.ParamEx2 pbParamEx = qlua.rpc.GetParamEx2.ParamEx2.newBuilder() - .setParamType( convertToPbString(paramEx.getParamType()) ) - .setParamValue( convertToPbString(paramEx.getParamValue()) ) - .setParamImage( convertToPbString(paramEx.getParamImage()) ) - .setResult( convertToPbString(paramEx.getResult()) ) - .build(); - - return qlua.rpc.GetParamEx2.Result.newBuilder() - .setParamEx(pbParamEx) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java new file mode 100644 index 0000000..d5f0c72 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetParamExArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetParamEx.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetParamEx.Request convert(@NotNull final GetParamEx.Args args) { + + return qlua.rpc.GetParamEx.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setParamName( args.getParamName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java deleted file mode 100644 index 0efd2fa..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetParamExRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PARAM_EX; - - @Override - public byte[] serialize(final GetParamEx.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetParamEx.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetParamEx.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetParamEx.Request convertFromPb(@NotNull final qlua.rpc.GetParamEx.Request request) { - - return GetParamEx.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .paramName( request.getParamName() ) - .build(); - } - - @Override - public qlua.rpc.GetParamEx.Request convertToPb(@NotNull final GetParamEx.Request request) { - - return qlua.rpc.GetParamEx.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setParamName( request.getParamName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbDeserializer.java new file mode 100644 index 0000000..29872ea --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum GetParamExResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetParamEx.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetParamEx.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetParamEx.Result convert(@NotNull final qlua.rpc.GetParamEx.Result result) { + + if (!result.hasParamEx()) { + throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано."); + } + + final qlua.rpc.GetParamEx.ParamEx pbParamEx = result.getParamEx(); + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType( convertFromPbString(pbParamEx.getParamType()) ) + .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) + .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) + .result( convertFromPbString(pbParamEx.getResult()) ) + .build(); + + return new GetParamEx.Result(paramEx); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java deleted file mode 100644 index bf87221..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerde.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum GetParamExResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetParamEx.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetParamEx.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetParamEx.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetParamEx.Result convertFromPb(@NotNull final qlua.rpc.GetParamEx.Result result) { - - if (!result.hasParamEx()) { - throw new IllegalArgumentException("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано."); - } - - final qlua.rpc.GetParamEx.ParamEx pbParamEx = result.getParamEx(); - final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() - .paramType( convertFromPbString(pbParamEx.getParamType()) ) - .paramValue( convertFromPbString(pbParamEx.getParamValue()) ) - .paramImage( convertFromPbString(pbParamEx.getParamImage()) ) - .result( convertFromPbString(pbParamEx.getResult()) ) - .build(); - - return new GetParamEx.Result(paramEx); - } - - @NotNull - @Override - public qlua.rpc.GetParamEx.Result convertToPb(@NotNull final GetParamEx.Result result) { - - final GetParamEx.ParamEx paramEx = result.getParamEx(); - final qlua.rpc.GetParamEx.ParamEx pbParamEx = qlua.rpc.GetParamEx.ParamEx.newBuilder() - .setParamType( convertToPbString(paramEx.getParamType()) ) - .setParamValue( convertToPbString(paramEx.getParamValue()) ) - .setParamImage( convertToPbString(paramEx.getParamImage()) ) - .setResult( convertToPbString(paramEx.getResult()) ) - .build(); - - return qlua.rpc.GetParamEx.Result.newBuilder() - .setParamEx(pbParamEx) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java new file mode 100644 index 0000000..0d73aa3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetPortfolioInfoArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetPortfolioInfo.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetPortfolioInfo.Request convert(@NotNull final GetPortfolioInfo.Args args) { + + return qlua.rpc.GetPortfolioInfo.Request.newBuilder() + .setFirmId( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerializer.java new file mode 100644 index 0000000..e2917b4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetPortfolioInfoExArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetPortfolioInfoEx.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetPortfolioInfoEx.Request convert(@NotNull final GetPortfolioInfoEx.Args args) { + + return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() + .setFirmId( args.getFirmId() ) + .setClientCode( args.getClientCode() ) + .setLimitKind( args.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java deleted file mode 100644 index 64c2906..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetPortfolioInfoExRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PORTFOLIO_INFO_EX; - - @Override - public byte[] serialize(final GetPortfolioInfoEx.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetPortfolioInfoEx.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetPortfolioInfoEx.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetPortfolioInfoEx.Request convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfoEx.Request request) { - - return GetPortfolioInfoEx.Request.builder() - .firmId( request.getFirmId() ) - .clientCode( request.getClientCode() ) - .limitKind( request.getLimitKind() ) - .build(); - } - - @Override - public qlua.rpc.GetPortfolioInfoEx.Request convertToPb(@NotNull final GetPortfolioInfoEx.Request request) { - - return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() - .setFirmId( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .setLimitKind( request.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbDeserializer.java similarity index 52% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbDeserializer.java index 1b893a4..0caeef3 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbDeserializer.java @@ -1,33 +1,28 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.google.protobuf.InvalidProtocolBufferException; import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbPortfolioInfo; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -enum GetPortfolioInfoExResultPbSerde implements Serde, PbConverter { +enum GetPortfolioInfoExResultPbDeserializer implements Deserializer, FromPbConverter { INSTANCE; - @Override - public byte[] serialize(final GetPortfolioInfoEx.Result result) { - return convertToPb(result).toByteArray(); - } - @NotNull @SneakyThrows(InvalidProtocolBufferException.class) @Override public GetPortfolioInfoEx.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetPortfolioInfoEx.Result.parseFrom(data) ); + return convert( qlua.rpc.GetPortfolioInfoEx.Result.parseFrom(data) ); } @NotNull @Override - public GetPortfolioInfoEx.Result convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfoEx.Result result) { + public GetPortfolioInfoEx.Result convert(@NotNull final qlua.rpc.GetPortfolioInfoEx.Result result) { if (!result.hasPortfolioInfoEx()) { throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfoEx'."); @@ -64,39 +59,4 @@ public GetPortfolioInfoEx.Result convertFromPb(@NotNull final qlua.rpc.GetPortfo .futAccruedInt( convertFromPbString(portfolioInfoEx.getFutAccuredInt()) ) .build(); } - - @NotNull - @Override - public qlua.rpc.GetPortfolioInfoEx.Result convertToPb(@NotNull final GetPortfolioInfoEx.Result result) { - - final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder() - .setPortfolioInfo( convertToPbPortfolioInfo(result.getPortfolioInfo()) ) - .setInitMargin( convertToPbString(result.getInitMargin()) ) - .setMinMargin( convertToPbString(result.getMinMargin()) ) - .setCorrectedMargin( convertToPbString(result.getCorrectedMargin()) ) - .setClientType( convertToPbString(result.getClientType()) ) - .setPortfolioValue( convertToPbString(result.getPortfolioValue()) ) - .setStartLimitOpenPos( convertToPbString(result.getStartLimitOpenPos()) ) - .setTotalLimitOpenPos( convertToPbString(result.getTotalLimitOpenPos()) ) - .setLimitOpenPos( convertToPbString(result.getLimitOpenPos()) ) - .setUsedLimOpenPos( convertToPbString(result.getUsedLimOpenPos()) ) - .setAccVarMargin( convertToPbString(result.getAccVarMargin()) ) - .setClVarMargin( convertToPbString(result.getClVarMargin()) ) - .setOptLiquidCost( convertToPbString(result.getOptLiquidCost()) ) - .setFutAsset( convertToPbString(result.getFutAsset()) ) - .setFutTotalAsset( convertToPbString(result.getFutTotalAsset()) ) - .setFutDebt( convertToPbString(result.getFutDebt()) ) - .setFutRateAsset( convertToPbString(result.getFutRateAsset()) ) - .setFutRateAssetOpen( convertToPbString(result.getFutRateAssetOpen()) ) - .setFutRateGo( convertToPbString(result.getFutRateGo()) ) - .setPlanedRateGo( convertToPbString(result.getPlanedRateGo()) ) - .setCashLeverage( convertToPbString(result.getCashLeverage()) ) - .setFutPositionType( convertToPbString(result.getFutPositionType()) ) - .setFutAccuredInt( convertToPbString(result.getFutAccruedInt()) ) - .build(); - - return qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() - .setPortfolioInfoEx(portfolioInfoEx) - .build(); - } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java deleted file mode 100644 index abfaa44..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerde.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetPortfolioInfoRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_PORTFOLIO_INFO; - - @Override - public byte[] serialize(final GetPortfolioInfo.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetPortfolioInfo.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetPortfolioInfo.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetPortfolioInfo.Request convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfo.Request request) { - - return GetPortfolioInfo.Request.builder() - .firmId( request.getFirmId() ) - .clientCode( request.getClientCode() ) - .build(); - } - - @Override - public qlua.rpc.GetPortfolioInfo.Request convertToPb(@NotNull final GetPortfolioInfo.Request request) { - - return qlua.rpc.GetPortfolioInfo.Request.newBuilder() - .setFirmId( request.getFirmId() ) - .setClientCode( request.getClientCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbDeserializer.java new file mode 100644 index 0000000..00651e7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbDeserializer.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbPortfolioInfo; + +enum GetPortfolioInfoResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetPortfolioInfo.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetPortfolioInfo.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetPortfolioInfo.Result convert(@NotNull final qlua.rpc.GetPortfolioInfo.Result result) { + + if (!result.hasPortfolioInfo()) { + throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfo.Result не содержит поля 'portfolioInfo'."); + } + + return new GetPortfolioInfo.Result( convertFromPbPortfolioInfo(result.getPortfolioInfo()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java deleted file mode 100644 index 8731ce9..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerde.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbPortfolioInfo; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbPortfolioInfo; - -enum GetPortfolioInfoResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetPortfolioInfo.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetPortfolioInfo.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetPortfolioInfo.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetPortfolioInfo.Result convertFromPb(@NotNull final qlua.rpc.GetPortfolioInfo.Result result) { - - if (!result.hasPortfolioInfo()) { - throw new IllegalArgumentException("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfo.Result не содержит поля 'portfolioInfo'."); - } - - return new GetPortfolioInfo.Result( convertFromPbPortfolioInfo(result.getPortfolioInfo()) ); - } - - @NotNull - @Override - public qlua.rpc.GetPortfolioInfo.Result convertToPb(@NotNull final GetPortfolioInfo.Result result) { - return qlua.rpc.GetPortfolioInfo.Result.newBuilder() - .setPortfolioInfo( convertToPbPortfolioInfo(result.getPortfolioInfo()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerializer.java new file mode 100644 index 0000000..b528e04 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetQuoteLevel2ArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetQuoteLevel2.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetQuoteLevel2.Request convert(@NotNull final GetQuoteLevel2.Args args) { + + return qlua.rpc.GetQuoteLevel2.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java deleted file mode 100644 index fab2f86..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerde.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetQuoteLevel2RequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_QUOTE_LEVEL2; - - @Override - public byte[] serialize(final GetQuoteLevel2.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetQuoteLevel2.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetQuoteLevel2.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetQuoteLevel2.Request convertFromPb(@NotNull final qlua.rpc.GetQuoteLevel2.Request request) { - - return GetQuoteLevel2.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .build(); - } - - @Override - public qlua.rpc.GetQuoteLevel2.Request convertToPb(@NotNull final GetQuoteLevel2.Request request) { - - return qlua.rpc.GetQuoteLevel2.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbDeserializer.java new file mode 100644 index 0000000..fb98786 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbDeserializer.java @@ -0,0 +1,43 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.common.collect.ImmutableList; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbQuoteEntry; + +enum GetQuoteLevel2ResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetQuoteLevel2.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetQuoteLevel2.Result.parseFrom(data) ); + } + + @Override + public GetQuoteLevel2.Result convert(@NotNull final qlua.rpc.GetQuoteLevel2.Result result) { + + final ImmutableList.Builder bids = ImmutableList.builder(); + for (final qlua.rpc.GetQuoteLevel2.QuoteEntry bid : result.getBidsList()) { + bids.add( convertFromPbQuoteEntry(bid) ); + } + + final ImmutableList.Builder offers = ImmutableList.builder(); + for (final qlua.rpc.GetQuoteLevel2.QuoteEntry offer : result.getOffersList()) { + offers.add( convertFromPbQuoteEntry(offer) ); + } + + return GetQuoteLevel2.Result.builder() + .bidCount( result.getBidCount() ) + .offerCount( result.getOfferCount() ) + .bids( bids.build() ) + .offers( offers.build() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java deleted file mode 100644 index e3b8a19..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerde.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.common.collect.ImmutableList; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbQuoteEntry; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbQuoteEntry; - -enum GetQuoteLevel2ResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetQuoteLevel2.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetQuoteLevel2.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetQuoteLevel2.Result.parseFrom(data) ); - } - - @Override - public GetQuoteLevel2.Result convertFromPb(@NotNull final qlua.rpc.GetQuoteLevel2.Result result) { - - final ImmutableList.Builder bids = ImmutableList.builder(); - for (final qlua.rpc.GetQuoteLevel2.QuoteEntry bid : result.getBidsList()) { - bids.add( convertFromPbQuoteEntry(bid) ); - } - - final ImmutableList.Builder offers = ImmutableList.builder(); - for (final qlua.rpc.GetQuoteLevel2.QuoteEntry offer : result.getOffersList()) { - offers.add( convertFromPbQuoteEntry(offer) ); - } - - return GetQuoteLevel2.Result.builder() - .bidCount( result.getBidCount() ) - .offerCount( result.getOfferCount() ) - .bids( bids.build() ) - .offers( offers.build() ) - .build(); - } - - @Override - public qlua.rpc.GetQuoteLevel2.Result convertToPb(@NotNull final GetQuoteLevel2.Result result) { - - final qlua.rpc.GetQuoteLevel2.Result.Builder pbResult = qlua.rpc.GetQuoteLevel2.Result.newBuilder(); - - for (final GetQuoteLevel2.QuoteEntry bid : result.getBids()) { - pbResult.addBids( convertToPbQuoteEntry(bid) ); - } - - for (final GetQuoteLevel2.QuoteEntry offer : result.getOffers()) { - pbResult.addOffers( convertToPbQuoteEntry(offer) ); - } - - return pbResult - .setBidCount( result.getBidCount() ) - .setOfferCount( result.getOfferCount() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java deleted file mode 100644 index a139053..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetScriptPathRequestPbSerde implements Serde { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_SCRIPT_PATH; - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final GetScriptPath.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetScriptPath.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return GetScriptPath.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbDeserializer.java new file mode 100644 index 0000000..40bcc81 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetScriptPathResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetScriptPath.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetScriptPath.Result.parseFrom(data) ); + } + + @Override + public GetScriptPath.Result convert(@NotNull final qlua.rpc.GetScriptPath.Result result) { + return new GetScriptPath.Result( result.getScriptPath() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java deleted file mode 100644 index dac6b75..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetScriptPathResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetScriptPath.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetScriptPath.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetScriptPath.Result.parseFrom(data) ); - } - - @Override - public GetScriptPath.Result convertFromPb(@NotNull final qlua.rpc.GetScriptPath.Result result) { - return new GetScriptPath.Result( result.getScriptPath() ); - } - - @Override - public qlua.rpc.GetScriptPath.Result convertToPb(@NotNull final GetScriptPath.Result result) { - return qlua.rpc.GetScriptPath.Result.newBuilder() - .setScriptPath( result.getScriptPath() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java new file mode 100644 index 0000000..89d50e5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetSecurityInfoArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetSecurityInfo.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetSecurityInfo.Request convert(@NotNull final GetSecurityInfo.Args args) { + + return qlua.rpc.GetSecurityInfo.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java deleted file mode 100644 index a40e87c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerde.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetSecurityInfoRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_SECURITY_INFO; - - @Override - public byte[] serialize(final GetSecurityInfo.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetSecurityInfo.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetSecurityInfo.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetSecurityInfo.Request convertFromPb(@NotNull final qlua.rpc.GetSecurityInfo.Request request) { - - return GetSecurityInfo.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .build(); - } - - @Override - public qlua.rpc.GetSecurityInfo.Request convertToPb(@NotNull final GetSecurityInfo.Request request) { - - return qlua.rpc.GetSecurityInfo.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbDeserializer.java new file mode 100644 index 0000000..df3266c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbSecurity; + +enum GetSecurityInfoResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetSecurityInfo.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetSecurityInfo.Result.parseFrom(data) ); + } + + @Override + public GetSecurityInfo.Result convert(@NotNull final qlua.rpc.GetSecurityInfo.Result result) { + + return result.hasSecurityInfo() ? + GetSecurityInfo.Result.getInstance( convertFromPbSecurity(result.getSecurityInfo()) ) + : + GetSecurityInfo.Result.getInstance(null); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java deleted file mode 100644 index 0df3cdf..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerde.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; -import com.enfernuz.quik.lua.rpc.api.structures.Security; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbSecurity; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbSecurity; - -enum GetSecurityInfoResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetSecurityInfo.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetSecurityInfo.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetSecurityInfo.Result.parseFrom(data) ); - } - - @Override - public GetSecurityInfo.Result convertFromPb(@NotNull final qlua.rpc.GetSecurityInfo.Result result) { - - return result.hasSecurityInfo() ? - GetSecurityInfo.Result.getInstance( convertFromPbSecurity(result.getSecurityInfo()) ) - : - GetSecurityInfo.Result.getInstance(null); - } - - @Override - public qlua.rpc.GetSecurityInfo.Result convertToPb(@NotNull final GetSecurityInfo.Result result) { - - final qlua.rpc.GetSecurityInfo.Result.Builder pbResult = qlua.rpc.GetSecurityInfo.Result.newBuilder(); - - final Security security = result.getSecurityInfo(); - if (security != null) { - pbResult.setSecurityInfo( convertToPbSecurity(result.getSecurityInfo()) ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java new file mode 100644 index 0000000..e2c7a41 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetTableSizeArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetTableSize.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetTableSize.Request convert(@NotNull final GetTableSize.Args request) { + + return qlua.rpc.GetTableSize.Request.newBuilder() + .setTId( request.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java deleted file mode 100644 index b2bc498..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetTableSizeRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_TABLE_SIZE; - - @Override - public byte[] serialize(final GetTableSize.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetTableSize.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetTableSize.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetTableSize.Request convertFromPb(@NotNull final qlua.rpc.GetTableSize.Request request) { - return new GetTableSize.Request(request.getTId()); - } - - @Override - public qlua.rpc.GetTableSize.Request convertToPb(@NotNull final GetTableSize.Request request) { - - return qlua.rpc.GetTableSize.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbDeserializer.java new file mode 100644 index 0000000..6e6867c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbDeserializer.java @@ -0,0 +1,34 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetTableSizeResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTableSize.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetTableSize.Result.parseFrom(data) ); + } + + @Override + public GetTableSize.Result convert(@NotNull final qlua.rpc.GetTableSize.Result result) { + + if (result.hasTableSize()) { + final qlua.rpc.GetTableSize.TableSize pbTableSize = result.getTableSize(); + final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() + .rows( pbTableSize.getRows() ) + .col( pbTableSize.getCol() ) + .build(); + return GetTableSize.Result.getInstance(tableSize); + } + + return GetTableSize.Result.getErrorInstance(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java deleted file mode 100644 index 7f5df51..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerde.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetTableSizeResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetTableSize.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetTableSize.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetTableSize.Result.parseFrom(data) ); - } - - @Override - public GetTableSize.Result convertFromPb(@NotNull final qlua.rpc.GetTableSize.Result result) { - - if (result.hasTableSize()) { - final qlua.rpc.GetTableSize.TableSize pbTableSize = result.getTableSize(); - final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() - .rows( pbTableSize.getRows() ) - .col( pbTableSize.getCol() ) - .build(); - return GetTableSize.Result.getInstance(tableSize); - } - - return GetTableSize.Result.getErrorInstance(); - } - - @Override - public qlua.rpc.GetTableSize.Result convertToPb(@NotNull final GetTableSize.Result result) { - - final GetTableSize.TableSize tableSize = result.getTableSize(); - if (tableSize == null) { - return qlua.rpc.GetTableSize.Result.newBuilder().build(); - } - - final qlua.rpc.GetTableSize.TableSize pbTableSize = qlua.rpc.GetTableSize.TableSize.newBuilder() - .setRows( tableSize.getRows() ) - .setCol( tableSize.getCol() ) - .build(); - return qlua.rpc.GetTableSize.Result.newBuilder() - .setTableSize(pbTableSize) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java deleted file mode 100644 index d8bb8d0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetTradeDateRequestPbSerde implements Serde { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_TRADE_DATE; - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final GetTradeDate.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetTradeDate.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return GetTradeDate.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbDeserializer.java new file mode 100644 index 0000000..12be6cf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbDeserializer.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetTradeDateResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetTradeDate.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetTradeDate.Result.parseFrom(data) ); + } + + @NotNull + @Override + public GetTradeDate.Result convert(@NotNull final qlua.rpc.GetTradeDate.Result result) { + + if (!result.hasTradeDate()) { + throw new IllegalArgumentException("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано."); + } + + final qlua.rpc.GetTradeDate.TradeDate pbTradeDate = result.getTradeDate(); + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date( pbTradeDate.getDate() ) + .year( pbTradeDate.getYear() ) + .month( pbTradeDate.getMonth() ) + .day( pbTradeDate.getDay() ) + .build(); + + return new GetTradeDate.Result(tradeDate); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java deleted file mode 100644 index 3e94457..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetTradeDateResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetTradeDate.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetTradeDate.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetTradeDate.Result.parseFrom(data) ); - } - - @NotNull - @Override - public GetTradeDate.Result convertFromPb(@NotNull final qlua.rpc.GetTradeDate.Result result) { - - if (!result.hasTradeDate()) { - throw new IllegalArgumentException("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано."); - } - - final qlua.rpc.GetTradeDate.TradeDate pbTradeDate = result.getTradeDate(); - final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() - .date( pbTradeDate.getDate() ) - .year( pbTradeDate.getYear() ) - .month( pbTradeDate.getMonth() ) - .day( pbTradeDate.getDay() ) - .build(); - - return new GetTradeDate.Result(tradeDate); - } - - @NotNull - @Override - public qlua.rpc.GetTradeDate.Result convertToPb(@NotNull final GetTradeDate.Result result) { - - final GetTradeDate.TradeDate tradeDate = result.getTradeDate(); - final qlua.rpc.GetTradeDate.TradeDate pbTradeDate = qlua.rpc.GetTradeDate.TradeDate.newBuilder() - .setDate( tradeDate.getDate() ) - .setYear( tradeDate.getYear() ) - .setMonth( tradeDate.getMonth() ) - .setDay( tradeDate.getDay() ) - .build(); - - return qlua.rpc.GetTradeDate.Result.newBuilder() - .setTradeDate(pbTradeDate) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java new file mode 100644 index 0000000..34c3a63 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetWindowCaption.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetWindowCaption.Request convert(@NotNull final GetWindowCaption.Args args) { + + return qlua.rpc.GetWindowCaption.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java deleted file mode 100644 index 579325c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetWindowCaptionRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WINDOW_CAPTION; - - @Override - public byte[] serialize(final GetWindowCaption.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWindowCaption.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetWindowCaption.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetWindowCaption.Request convertFromPb(@NotNull final qlua.rpc.GetWindowCaption.Request request) { - return new GetWindowCaption.Request(request.getTId()); - } - - @Override - public qlua.rpc.GetWindowCaption.Request convertToPb(@NotNull final GetWindowCaption.Request request) { - - return qlua.rpc.GetWindowCaption.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbDeserializer.java new file mode 100644 index 0000000..6158efb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum GetWindowCaptionResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowCaption.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetWindowCaption.Result.parseFrom(data) ); + } + + @Override + public GetWindowCaption.Result convert(@NotNull final qlua.rpc.GetWindowCaption.Result result) { + return GetWindowCaption.Result.getInstance( convertFromPbString(result.getCaption()) ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java deleted file mode 100644 index fd8aeee..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerde.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum GetWindowCaptionResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetWindowCaption.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWindowCaption.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetWindowCaption.Result.parseFrom(data) ); - } - - @Override - public GetWindowCaption.Result convertFromPb(@NotNull final qlua.rpc.GetWindowCaption.Result result) { - return GetWindowCaption.Result.getInstance( convertFromPbString(result.getCaption()) ); - } - - @Override - public qlua.rpc.GetWindowCaption.Result convertToPb(@NotNull final GetWindowCaption.Result result) { - - return qlua.rpc.GetWindowCaption.Result.newBuilder() - .setCaption( convertToPbString(result.getCaption()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerializer.java new file mode 100644 index 0000000..43d7dd2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum GetWindowRectArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final GetWindowRect.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.GetWindowRect.Request convert(@NotNull final GetWindowRect.Args args) { + + return qlua.rpc.GetWindowRect.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java deleted file mode 100644 index 3570ac5..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetWindowRectRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WINDOW_RECT; - - @Override - public byte[] serialize(final GetWindowRect.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWindowRect.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.GetWindowRect.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public GetWindowRect.Request convertFromPb(@NotNull final qlua.rpc.GetWindowRect.Request request) { - return new GetWindowRect.Request(request.getTId()); - } - - @Override - public qlua.rpc.GetWindowRect.Request convertToPb(@NotNull final GetWindowRect.Request request) { - - return qlua.rpc.GetWindowRect.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbDeserializer.java new file mode 100644 index 0000000..6f27081 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetWindowRectResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWindowRect.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetWindowRect.Result.parseFrom(data) ); + } + + @Override + public GetWindowRect.Result convert(@NotNull final qlua.rpc.GetWindowRect.Result result) { + + if (result.hasWindowRect()) { + final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = result.getWindowRect(); + final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() + .top( pbWindowRect.getTop() ) + .left( pbWindowRect.getLeft() ) + .bottom( pbWindowRect.getBottom() ) + .right( pbWindowRect.getRight() ) + .build(); + return GetWindowRect.Result.getInstance(windowRect); + } + + return GetWindowRect.Result.getErrorInstance(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java deleted file mode 100644 index a84e0d0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetWindowRectResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetWindowRect.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWindowRect.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetWindowRect.Result.parseFrom(data) ); - } - - @Override - public GetWindowRect.Result convertFromPb(@NotNull final qlua.rpc.GetWindowRect.Result result) { - - if (result.hasWindowRect()) { - final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = result.getWindowRect(); - final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() - .top( pbWindowRect.getTop() ) - .left( pbWindowRect.getLeft() ) - .bottom( pbWindowRect.getBottom() ) - .right( pbWindowRect.getRight() ) - .build(); - return GetWindowRect.Result.getInstance(windowRect); - } - - return GetWindowRect.Result.getErrorInstance(); - } - - @Override - public qlua.rpc.GetWindowRect.Result convertToPb(@NotNull final GetWindowRect.Result result) { - - final GetWindowRect.WindowRect windowRect = result.getWindowRect(); - if (windowRect == null) { - return qlua.rpc.GetWindowRect.Result.newBuilder().build(); - } - - final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = qlua.rpc.GetWindowRect.WindowRect.newBuilder() - .setTop( windowRect.getTop() ) - .setLeft( windowRect.getLeft() ) - .setBottom( windowRect.getBottom() ) - .setRight( windowRect.getRight() ) - .build(); - return qlua.rpc.GetWindowRect.Result.newBuilder() - .setWindowRect(pbWindowRect) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java deleted file mode 100644 index e00b766..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum GetWorkingFolderRequestPbSerde implements Serde { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.GET_WORKING_FOLDER; - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final GetWorkingFolder.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWorkingFolder.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return GetWorkingFolder.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbDeserializer.java new file mode 100644 index 0000000..3070326 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum GetWorkingFolderResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public GetWorkingFolder.Result deserialize(final byte[] data) { + return convert( qlua.rpc.GetWorkingFolder.Result.parseFrom(data) ); + } + + @Override + public GetWorkingFolder.Result convert(@NotNull final qlua.rpc.GetWorkingFolder.Result result) { + return new GetWorkingFolder.Result( result.getWorkingFolder() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java deleted file mode 100644 index fe8c9fa..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum GetWorkingFolderResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final GetWorkingFolder.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public GetWorkingFolder.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.GetWorkingFolder.Result.parseFrom(data) ); - } - - @Override - public GetWorkingFolder.Result convertFromPb(@NotNull final qlua.rpc.GetWorkingFolder.Result result) { - return new GetWorkingFolder.Result( result.getWorkingFolder() ); - } - - @Override - public qlua.rpc.GetWorkingFolder.Result convertToPb(@NotNull final GetWorkingFolder.Result result) { - return qlua.rpc.GetWorkingFolder.Result.newBuilder() - .setWorkingFolder( result.getWorkingFolder() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java new file mode 100644 index 0000000..73baa24 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum HighlightArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final Highlight.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.Highlight.Request convert(@NotNull final Highlight.Args args) { + + return qlua.rpc.Highlight.Request.newBuilder() + .setTId( args.getTId() ) + .setRow( args.getRow() ) + .setCol( args.getCol() ) + .setBColor( args.getBColor() ) + .setFColor( args.getFColor() ) + .setTimeout( args.getTimeout() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java deleted file mode 100644 index 1715a6c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerde.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Highlight; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum HighlightRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.HIGHLIGHT; - - @Override - public byte[] serialize(final Highlight.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Highlight.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.Highlight.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public Highlight.Request convertFromPb(@NotNull final qlua.rpc.Highlight.Request request) { - - return Highlight.Request.builder() - .tId( request.getTId() ) - .row( request.getRow() ) - .col( request.getCol() ) - .bColor( request.getBColor() ) - .fColor( request.getFColor() ) - .timeout( request.getTimeout() ) - .build(); - } - - @Override - public qlua.rpc.Highlight.Request convertToPb(@NotNull final Highlight.Request request) { - - return qlua.rpc.Highlight.Request.newBuilder() - .setTId( request.getTId() ) - .setRow( request.getRow() ) - .setCol( request.getCol() ) - .setBColor( request.getBColor() ) - .setFColor( request.getFColor() ) - .setTimeout( request.getTimeout() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbDeserializer.java new file mode 100644 index 0000000..75dd7e1 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum HighlightResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Highlight.Result deserialize(final byte[] data) { + return convert( qlua.rpc.Highlight.Result.parseFrom(data) ); + } + + @Override + public Highlight.Result convert(@NotNull final qlua.rpc.Highlight.Result result) { + return Highlight.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java deleted file mode 100644 index e3de7db..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Highlight; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum HighlightResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Highlight.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Highlight.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.Highlight.Result.parseFrom(data) ); - } - - @Override - public Highlight.Result convertFromPb(@NotNull final qlua.rpc.Highlight.Result result) { - return Highlight.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.Highlight.Result convertToPb(@NotNull final Highlight.Result result) { - return qlua.rpc.Highlight.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java new file mode 100644 index 0000000..a3853d3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum InsertRowArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final InsertRow.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.InsertRow.Request convert(@NotNull final InsertRow.Args args) { + + return qlua.rpc.InsertRow.Request.newBuilder() + .setTId( args.getTId() ) + .setKey( args.getKey() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java deleted file mode 100644 index 75a04c0..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerde.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum InsertRowRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.INSERT_ROW; - - @Override - public byte[] serialize(final InsertRow.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public InsertRow.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.InsertRow.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public InsertRow.Request convertFromPb(@NotNull final qlua.rpc.InsertRow.Request request) { - - return InsertRow.Request.builder() - .tId( request.getTId() ) - .key( request.getKey() ) - .build(); - } - - @Override - public qlua.rpc.InsertRow.Request convertToPb(@NotNull final InsertRow.Request request) { - - return qlua.rpc.InsertRow.Request.newBuilder() - .setTId( request.getTId() ) - .setKey( request.getKey() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbDeserializer.java new file mode 100644 index 0000000..bbe9f29 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum InsertRowResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public InsertRow.Result deserialize(final byte[] data) { + return convert( qlua.rpc.InsertRow.Result.parseFrom(data) ); + } + + @Override + public InsertRow.Result convert(@NotNull final qlua.rpc.InsertRow.Result result) { + return new InsertRow.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java deleted file mode 100644 index 522d81f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum InsertRowResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final InsertRow.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public InsertRow.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.InsertRow.Result.parseFrom(data) ); - } - - @Override - public InsertRow.Result convertFromPb(@NotNull final qlua.rpc.InsertRow.Result result) { - return new InsertRow.Result( result.getResult() ); - } - - @Override - public qlua.rpc.InsertRow.Result convertToPb(@NotNull final InsertRow.Result result) { - return qlua.rpc.InsertRow.Result.newBuilder() - .setResult( result.getResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java deleted file mode 100644 index 291cb17..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum IsConnectedRequestPbSerde implements Serde { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_CONNECTED; - private static final byte[] PB_SERIALIZED_FORM = createPbSerializedForm(); - - @Override - public byte[] serialize(final IsConnected.Request request) { - return PB_SERIALIZED_FORM.clone(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsConnected.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return IsConnected.Request.INSTANCE; - } - - private static byte[] createPbSerializedForm() { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .build() - .toByteArray(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbDeserializer.java new file mode 100644 index 0000000..ff213d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum IsConnectedResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsConnected.Result deserialize(final byte[] data) { + return convert( qlua.rpc.IsConnected.Result.parseFrom(data) ); + } + + @Override + public IsConnected.Result convert(@NotNull final qlua.rpc.IsConnected.Result result) { + return IsConnected.Result.getInstance( result.getIsConnected() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java deleted file mode 100644 index feda0ce..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum IsConnectedResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final IsConnected.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsConnected.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.IsConnected.Result.parseFrom(data) ); - } - - @Override - public IsConnected.Result convertFromPb(@NotNull final qlua.rpc.IsConnected.Result result) { - return IsConnected.Result.getInstance( result.getIsConnected() ); - } - - @Override - public qlua.rpc.IsConnected.Result convertToPb(@NotNull final IsConnected.Result result) { - return qlua.rpc.IsConnected.Result.newBuilder() - .setIsConnected( result.getIsConnected() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java new file mode 100644 index 0000000..374d8d2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.IsSubscribedLevelIIQuotes; + +enum IsSubscribedLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final IsSubscribedLevel2Quotes.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.IsSubscribedLevelIIQuotes.Request convert(@NotNull final IsSubscribedLevel2Quotes.Args args) { + + return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java deleted file mode 100644 index b662f35..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerde.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum IsSubscribedLevel2QuotesRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES; - - @Override - public byte[] serialize(final IsSubscribedLevel2Quotes.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsSubscribedLevel2Quotes.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.IsSubscribedLevelIIQuotes.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public IsSubscribedLevel2Quotes.Request convertFromPb(@NotNull final qlua.rpc.IsSubscribedLevelIIQuotes.Request request) { - - return IsSubscribedLevel2Quotes.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .build(); - } - - @Override - public qlua.rpc.IsSubscribedLevelIIQuotes.Request convertToPb(@NotNull final IsSubscribedLevel2Quotes.Request request) { - - return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbDeserializer.java new file mode 100644 index 0000000..fb24eae --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.IsSubscribedLevelIIQuotes; + +enum IsSubscribedLevel2QuotesResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsSubscribedLevel2Quotes.Result deserialize(final byte[] data) { + return convert( qlua.rpc.IsSubscribedLevelIIQuotes.Result.parseFrom(data) ); + } + + @Override + public IsSubscribedLevel2Quotes.Result convert(@NotNull final qlua.rpc.IsSubscribedLevelIIQuotes.Result result) { + return IsSubscribedLevel2Quotes.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java deleted file mode 100644 index b2416ff..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum IsSubscribedLevel2QuotesResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final IsSubscribedLevel2Quotes.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsSubscribedLevel2Quotes.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.IsSubscribedLevelIIQuotes.Result.parseFrom(data) ); - } - - @Override - public IsSubscribedLevel2Quotes.Result convertFromPb(@NotNull final qlua.rpc.IsSubscribedLevelIIQuotes.Result result) { - return IsSubscribedLevel2Quotes.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.IsSubscribedLevelIIQuotes.Result convertToPb(@NotNull final IsSubscribedLevel2Quotes.Result result) { - return qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerializer.java new file mode 100644 index 0000000..afbb697 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum IsWindowClosedArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final IsWindowClosed.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.IsWindowClosed.Request convert(@NotNull final IsWindowClosed.Args args) { + + return qlua.rpc.IsWindowClosed.Request.newBuilder() + .setTId( args.getTId() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java deleted file mode 100644 index 06f355e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerde.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum IsWindowClosedRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.IS_WINDOW_CLOSED; - - @Override - public byte[] serialize(final IsWindowClosed.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsWindowClosed.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.IsWindowClosed.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public IsWindowClosed.Request convertFromPb(@NotNull final qlua.rpc.IsWindowClosed.Request request) { - return new IsWindowClosed.Request(request.getTId()); - } - - @Override - public qlua.rpc.IsWindowClosed.Request convertToPb(@NotNull final IsWindowClosed.Request request) { - - return qlua.rpc.IsWindowClosed.Request.newBuilder() - .setTId( request.getTId() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbDeserializer.java new file mode 100644 index 0000000..e35aad3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum IsWindowClosedResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public IsWindowClosed.Result deserialize(final byte[] data) { + return convert( qlua.rpc.IsWindowClosed.Result.parseFrom(data) ); + } + + @Override + public IsWindowClosed.Result convert(@NotNull final qlua.rpc.IsWindowClosed.Result result) { + + return result.getNullWindowClosed() ? + IsWindowClosed.Result.getInstance(null) : IsWindowClosed.Result.getInstance(result.getValueWindowClosed()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java deleted file mode 100644 index 75ef5a8..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerde.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum IsWindowClosedResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final IsWindowClosed.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public IsWindowClosed.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.IsWindowClosed.Result.parseFrom(data) ); - } - - @Override - public IsWindowClosed.Result convertFromPb(@NotNull final qlua.rpc.IsWindowClosed.Result result) { - - if (result.hasWindowClosed()) { - final IsWindowClosed.WindowClosed windowClosed = - IsWindowClosed.WindowClosed.getInstance( result.getWindowClosed().getResult() ); - return IsWindowClosed.Result.getInstance(windowClosed); - } - - return IsWindowClosed.Result.getInstance(null); - } - - @Override - public qlua.rpc.IsWindowClosed.Result convertToPb(@NotNull final IsWindowClosed.Result result) { - - final qlua.rpc.IsWindowClosed.Result.Builder pbResult = qlua.rpc.IsWindowClosed.Result.newBuilder(); - - final IsWindowClosed.WindowClosed windowClosed = result.getWindowClosed(); - if (windowClosed != null) { - final qlua.rpc.IsWindowClosed.WindowClosed pbWindowClosed = qlua.rpc.IsWindowClosed.WindowClosed.newBuilder() - .setResult( windowClosed.isResult() ) - .build(); - pbResult.setWindowClosed(pbWindowClosed); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java new file mode 100644 index 0000000..cc41353 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum MessageArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final Message.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.Message.Request convert(@NotNull final Message.Args args) { + + final Message.IconType iconType = args.getIconType(); + final qlua.rpc.Message.IconType pbIconType; + if (iconType == null) { + pbIconType = qlua.rpc.Message.IconType.UNDEFINED; + } else { + switch (iconType) { + case INFO: + pbIconType = qlua.rpc.Message.IconType.INFO; + break; + case WARNING: + pbIconType = qlua.rpc.Message.IconType.WARNING; + break; + case ERROR: + pbIconType = qlua.rpc.Message.IconType.ERROR; + break; + default: + throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения): '%s'.", iconType)); + } + } + + return qlua.rpc.Message.Request.newBuilder() + .setMessage( args.getMessage() ) + .setIconType(pbIconType) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java deleted file mode 100644 index 6a15a63..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerde.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum MessageRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Message.Request request) { - - return qlua.rpc.RPC.Request.newBuilder() - .setTypeValue( RPC.ProcedureType.MESSAGE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Message.Request deserialize(final byte[] data) { - - final qlua.rpc.RPC.Request request = qlua.rpc.RPC.Request.parseFrom(data); - assertEquals(request.getType(), RPC.ProcedureType.MESSAGE); - - return convertFromPb( - qlua.rpc.Message.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public Message.Request convertFromPb(@NotNull final qlua.rpc.Message.Request request) { - - final qlua.rpc.Message.IconType pbIconType = request.getIconType(); - final Message.IconType iconType; - switch (pbIconType) { - case UNDEFINED: - iconType = null; - break; - case INFO: - iconType = Message.IconType.INFO; - break; - case WARNING: - iconType = Message.IconType.WARNING; - break; - case ERROR: - iconType = Message.IconType.ERROR; - break; - default: - throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения) для формата protobuf: '%s'.", pbIconType)); - } - - return new Message.Request(request.getMessage(), iconType); - } - - @Override - public qlua.rpc.Message.Request convertToPb(@NotNull final Message.Request request) { - - final Message.IconType iconType = request.getIconType(); - final qlua.rpc.Message.IconType pbIconType; - if (iconType == null) { - pbIconType = qlua.rpc.Message.IconType.UNDEFINED; - } else { - switch (iconType) { - case INFO: - pbIconType = qlua.rpc.Message.IconType.INFO; - break; - case WARNING: - pbIconType = qlua.rpc.Message.IconType.WARNING; - break; - case ERROR: - pbIconType = qlua.rpc.Message.IconType.ERROR; - break; - default: - throw new IllegalArgumentException(String.format("Неизвестный IconType (тип иконки сообщения): '%s'.", iconType)); - } - } - - return qlua.rpc.Message.Request.newBuilder() - .setMessage( request.getMessage() ) - .setIconType(pbIconType) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbDeserializer.java new file mode 100644 index 0000000..49ec77a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbDeserializer.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum MessageResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Message.Result deserialize(final byte[] data) { + return convert( qlua.rpc.Message.Result.parseFrom(data) ); + } + + @Override + public Message.Result convert(@NotNull final qlua.rpc.Message.Result result) { + + if (result.getNullResult()) { + return Message.Result.getInstance(null); + } + + return Message.Result.getInstance(result.getValueResult()); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java deleted file mode 100644 index b8bd9d4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerde.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum MessageResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Message.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Message.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.Message.Result.parseFrom(data) ); - } - - @Override - public Message.Result convertFromPb(@NotNull final qlua.rpc.Message.Result result) { - - if (result.getNullResult()) { - return Message.Result.getInstance(null); - } - - return Message.Result.getInstance( Message.MessageResult.getInstance(result.getValueResult()) ); - } - - @Override - public qlua.rpc.Message.Result convertToPb(@NotNull final Message.Result result) { - - final qlua.rpc.Message.Result.Builder pbResult = qlua.rpc.Message.Result.newBuilder(); - - final Message.MessageResult messageResult = result.getMessageResult(); - if (messageResult == null) { - pbResult.setNullResult(true); - } else { - pbResult.setValueResult( messageResult.getResult() ); - } - - return pbResult.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbDeserializer.java new file mode 100644 index 0000000..59925a8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbDeserializer.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum MoneyLimitDeletePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public MoneyLimitDelete deserialize(final byte[] data) { + return convert(QluaStructures.MoneyLimitDelete.parseFrom(data)); + } + + @Override + public MoneyLimitDelete convert(@NotNull QluaStructures.MoneyLimitDelete moneyLimitDelete) { + + return MoneyLimitDelete.builder() + .currCode( convertFromPbString(moneyLimitDelete.getCurrcode()) ) + .tag( convertFromPbString(moneyLimitDelete.getTag()) ) + .clientCode( convertFromPbString(moneyLimitDelete.getClientCode()) ) + .firmId( convertFromPbString(moneyLimitDelete.getFirmid()) ) + .limitKind( moneyLimitDelete.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java deleted file mode 100644 index 000be83..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerde.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum MoneyLimitDeletePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final MoneyLimitDelete moneyLimitDelete) { - return convertToPb(moneyLimitDelete).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public MoneyLimitDelete deserialize(final byte[] data) { - return convertFromPb(QluaStructures.MoneyLimitDelete.parseFrom(data)); - } - - @Override - public MoneyLimitDelete convertFromPb(@NotNull QluaStructures.MoneyLimitDelete moneyLimitDelete) { - - return MoneyLimitDelete.builder() - .currCode( convertFromPbString(moneyLimitDelete.getCurrcode()) ) - .tag( convertFromPbString(moneyLimitDelete.getTag()) ) - .clientCode( convertFromPbString(moneyLimitDelete.getClientCode()) ) - .firmId( convertFromPbString(moneyLimitDelete.getFirmid()) ) - .limitKind( moneyLimitDelete.getLimitKind() ) - .build(); - } - - @Override - public QluaStructures.MoneyLimitDelete convertToPb(@NotNull final MoneyLimitDelete moneyLimitDelete) { - - return QluaStructures.MoneyLimitDelete.newBuilder() - .setCurrcode( convertToPbString(moneyLimitDelete.getCurrCode()) ) - .setTag( convertToPbString(moneyLimitDelete.getTag()) ) - .setClientCode( convertToPbString(moneyLimitDelete.getClientCode()) ) - .setFirmid( convertToPbString(moneyLimitDelete.getFirmId()) ) - .setLimitKind( moneyLimitDelete.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java new file mode 100644 index 0000000..e9d963d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbDeserializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum MoneyLimitPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public MoneyLimit deserialize(final byte[] data) { + return convert( QluaStructures.MoneyLimit.parseFrom(data) ); + } + + @Override + public MoneyLimit convert(@NotNull QluaStructures.MoneyLimit moneyLimit) { + + return MoneyLimit + .builder() + .currCode( convertFromPbString(moneyLimit.getCurrcode()) ) + .tag( convertFromPbString(moneyLimit.getTag()) ) + .firmId( convertFromPbString(moneyLimit.getFirmid()) ) + .clientCode( convertFromPbString(moneyLimit.getClientCode()) ) + .openBal( convertFromPbString(moneyLimit.getOpenbal()) ) + .openLimit( convertFromPbString(moneyLimit.getOpenlimit()) ) + .currentBal( convertFromPbString(moneyLimit.getCurrentbal()) ) + .currentLimit( convertFromPbString(moneyLimit.getCurrentlimit()) ) + .locked( convertFromPbString(moneyLimit.getLocked()) ) + .lockedValueCoef( convertFromPbString(moneyLimit.getLockedValueCoef()) ) + .lockedMarginValue( convertFromPbString(moneyLimit.getLockedMarginValue()) ) + .leverage( convertFromPbString(moneyLimit.getLeverage()) ) + .limitKind( moneyLimit.getLimitKind() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java deleted file mode 100644 index fa0ca4f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerde.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum MoneyLimitPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final MoneyLimit moneyLimit) { - return convertToPb(moneyLimit).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public MoneyLimit deserialize(final byte[] data) { - return convertFromPb( QluaStructures.MoneyLimit.parseFrom(data) ); - } - - @Override - public MoneyLimit convertFromPb(@NotNull QluaStructures.MoneyLimit moneyLimit) { - - return MoneyLimit - .builder() - .currCode( convertFromPbString(moneyLimit.getCurrcode()) ) - .tag( convertFromPbString(moneyLimit.getTag()) ) - .firmId( convertFromPbString(moneyLimit.getFirmid()) ) - .clientCode( convertFromPbString(moneyLimit.getClientCode()) ) - .openBal( convertFromPbString(moneyLimit.getOpenbal()) ) - .openLimit( convertFromPbString(moneyLimit.getOpenlimit()) ) - .currentBal( convertFromPbString(moneyLimit.getCurrentbal()) ) - .currentLimit( convertFromPbString(moneyLimit.getCurrentlimit()) ) - .locked( convertFromPbString(moneyLimit.getLocked()) ) - .lockedValueCoef( convertFromPbString(moneyLimit.getLockedValueCoef()) ) - .lockedMarginValue( convertFromPbString(moneyLimit.getLockedMarginValue()) ) - .leverage( convertFromPbString(moneyLimit.getLeverage()) ) - .limitKind( moneyLimit.getLimitKind() ) - .build(); - } - - @Override - public QluaStructures.MoneyLimit convertToPb(@NotNull final MoneyLimit moneyLimit) { - - return QluaStructures.MoneyLimit.newBuilder() - .setCurrcode( convertToPbString(moneyLimit.getCurrCode()) ) - .setTag( convertToPbString(moneyLimit.getTag()) ) - .setFirmid( convertToPbString(moneyLimit.getFirmId()) ) - .setClientCode( convertToPbString(moneyLimit.getClientCode()) ) - .setOpenbal( convertToPbString(moneyLimit.getOpenBal()) ) - .setOpenlimit( convertToPbString(moneyLimit.getOpenLimit()) ) - .setCurrentbal( convertToPbString(moneyLimit.getCurrentBal()) ) - .setCurrentlimit( convertToPbString(moneyLimit.getCurrentLimit()) ) - .setLocked( convertToPbString(moneyLimit.getLocked()) ) - .setLockedValueCoef( convertToPbString(moneyLimit.getLockedValueCoef()) ) - .setLockedMarginValue( convertToPbString(moneyLimit.getLockedMarginValue()) ) - .setLeverage( convertToPbString(moneyLimit.getLeverage()) ) - .setLimitKind( moneyLimit.getLimitKind() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbDeserializer.java new file mode 100644 index 0000000..12260df --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbDeserializer.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetMoney; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum MoneyPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Money deserialize(final byte[] data) { + return convert(qlua.rpc.GetMoney.Money.parseFrom(data)); + } + + @Override + public Money convert(@NotNull qlua.rpc.GetMoney.Money money) { + + return Money.builder() + .moneyOpenLimit( convertFromPbString(money.getMoneyOpenLimit()) ) + .moneyLimitLockedNonMarginalValue( convertFromPbString(money.getMoneyLimitLockedNonmarginalValue()) ) + .moneyLimitLocked( convertFromPbString(money.getMoneyLimitLocked()) ) + .moneyOpenBalance( convertFromPbString(money.getMoneyOpenBalance()) ) + .moneyCurrentLimit( convertFromPbString(money.getMoneyCurrentLimit()) ) + .moneyCurrentBalance( convertFromPbString(money.getMoneyCurrentBalance()) ) + .moneyLimitAvailable( convertFromPbString(money.getMoneyLimitAvailable()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java deleted file mode 100644 index 4e8c64f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerde.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Money; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum MoneyPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Money money) { - return convertToPb(money).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Money deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.GetMoney.Money.parseFrom(data)); - } - - @Override - public Money convertFromPb(@NotNull qlua.rpc.GetMoney.Money money) { - - return Money.builder() - .moneyOpenLimit( convertFromPbString(money.getMoneyOpenLimit()) ) - .moneyLimitLockedNonMarginalValue( convertFromPbString(money.getMoneyLimitLockedNonmarginalValue()) ) - .moneyLimitLocked( convertFromPbString(money.getMoneyLimitLocked()) ) - .moneyOpenBalance( convertFromPbString(money.getMoneyOpenBalance()) ) - .moneyCurrentLimit( convertFromPbString(money.getMoneyCurrentLimit()) ) - .moneyCurrentBalance( convertFromPbString(money.getMoneyCurrentBalance()) ) - .moneyLimitAvailable( convertFromPbString(money.getMoneyLimitAvailable()) ) - .build(); - } - - @Override - public qlua.rpc.GetMoney.Money convertToPb(@NotNull final Money money) { - - return qlua.rpc.GetMoney.Money.newBuilder() - .setMoneyOpenLimit( convertToPbString(money.getMoneyOpenLimit()) ) - .setMoneyLimitLockedNonmarginalValue( convertToPbString(money.getMoneyLimitLockedNonMarginalValue()) ) - .setMoneyLimitLocked( convertToPbString(money.getMoneyLimitLocked()) ) - .setMoneyOpenBalance( convertToPbString(money.getMoneyOpenBalance()) ) - .setMoneyCurrentLimit( convertToPbString(money.getMoneyCurrentLimit()) ) - .setMoneyCurrentBalance( convertToPbString(money.getMoneyCurrentBalance()) ) - .setMoneyLimitAvailable( convertToPbString(money.getMoneyLimitAvailable()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbDeserializer.java new file mode 100644 index 0000000..f61b5ef --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbDeserializer.java @@ -0,0 +1,87 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum NegDealPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public NegDeal deserialize(final byte[] data) { + return convert(QluaStructures.NegDeal.parseFrom(data)); + } + + @Override + public NegDeal convert(@NotNull QluaStructures.NegDeal negDeal) { + + final NegDeal.NegDealBuilder result = NegDeal.builder() + .negDealNum( negDeal.getNegDealNum() ) + .negDealTime( convertFromPbString(negDeal.getNegDealTime()) ) + .flags( negDeal.getFlags() ) + .brokerRef( convertFromPbString(negDeal.getBrokerref()) ) + .userId( convertFromPbString(negDeal.getUserid()) ) + .firmId( convertFromPbString(negDeal.getFirmid()) ) + .cpUserId( convertFromPbString(negDeal.getCpuserid()) ) + .cpFirmId( convertFromPbString(negDeal.getCpfirmid()) ) + .account( convertFromPbString(negDeal.getAccount()) ) + .price( convertFromPbString(negDeal.getPrice()) ) + .qty( negDeal.getQty() ) + .matchRef( convertFromPbString(negDeal.getMatchref()) ) + .settleCode( convertFromPbString(negDeal.getSettlecode()) ) + .yield( convertFromPbString(negDeal.getYield()) ) + .accruedInt( convertFromPbString(negDeal.getAccruedint()) ) + .value( convertFromPbString(negDeal.getValue()) ) + .price2( convertFromPbString(negDeal.getPrice2()) ) + .repoRate( convertFromPbString(negDeal.getReporate()) ) + .refundRate( convertFromPbString(negDeal.getRefundrate()) ) + .transId( convertFromPbString(negDeal.getTransId()) ) + .clientCode( convertFromPbString(negDeal.getClientCode()) ) + .repoEntry( negDeal.getRepoentry() ) + .repoValue( convertFromPbString(negDeal.getRepovalue()) ) + .repo2Value( convertFromPbString(negDeal.getRepo2Value()) ) + .repoTerm( convertFromPbString(negDeal.getRepoterm()) ) + .startDiscount( convertFromPbString(negDeal.getStartDiscount()) ) + .lowerDiscount( convertFromPbString(negDeal.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(negDeal.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(negDeal.getBlockSecurities()) ) + .uid( convertFromPbString(negDeal.getUid()) ) + .withdrawTime( convertFromPbString(negDeal.getWithdrawTime()) ) + .negDealDate( convertFromPbString(negDeal.getNegDealDate()) ) + .balance( convertFromPbString(negDeal.getBalance()) ) + .originRepoValue( convertFromPbString(negDeal.getOriginRepovalue()) ) + .originQty( convertFromPbString(negDeal.getOriginQty()) ) + .originDiscount( convertFromPbString(negDeal.getOriginDiscount()) ) + .negDealActivationDate( convertFromPbString(negDeal.getNegDealActivationDate()) ) + .negDealActivationTime( convertFromPbString(negDeal.getNegDealActivationTime()) ) + .quoteNo( convertFromPbString(negDeal.getQuoteno()) ) + .settleCurrency( convertFromPbString(negDeal.getSettleCurrency()) ) + .secCode( convertFromPbString(negDeal.getSecCode()) ) + .classCode( convertFromPbString(negDeal.getClassCode()) ) + .bankAccId( convertFromPbString(negDeal.getBankAccId()) ) + .withdrawDate( convertFromPbString(negDeal.getWithdrawDate()) ) + .linkedOrder( convertFromPbString(negDeal.getLinkedorder()) ); + + if (negDeal.hasActivationDateTime()) { + result.activationDateTime( convertFromPbDateTimeEntry(negDeal.getActivationDateTime()) ); + } + + if (negDeal.hasWithdrawDateTime()) { + result.withdrawDateTime( convertFromPbDateTimeEntry(negDeal.getWithdrawDateTime()) ); + } + + if (negDeal.hasDateTime()) { + result.dateTime( convertFromPbDateTimeEntry(negDeal.getDateTime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java deleted file mode 100644 index 82649f6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerde.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum NegDealPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final NegDeal negDeal) { - return convertToPb(negDeal).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public NegDeal deserialize(final byte[] data) { - return convertFromPb(QluaStructures.NegDeal.parseFrom(data)); - } - - @Override - public NegDeal convertFromPb(@NotNull QluaStructures.NegDeal negDeal) { - - final NegDeal.NegDealBuilder result = NegDeal.builder() - .negDealNum( negDeal.getNegDealNum() ) - .negDealTime( convertFromPbString(negDeal.getNegDealTime()) ) - .flags( negDeal.getFlags() ) - .brokerRef( convertFromPbString(negDeal.getBrokerref()) ) - .userId( convertFromPbString(negDeal.getUserid()) ) - .firmId( convertFromPbString(negDeal.getFirmid()) ) - .cpUserId( convertFromPbString(negDeal.getCpuserid()) ) - .cpFirmId( convertFromPbString(negDeal.getCpfirmid()) ) - .account( convertFromPbString(negDeal.getAccount()) ) - .price( convertFromPbString(negDeal.getPrice()) ) - .qty( negDeal.getQty() ) - .matchRef( convertFromPbString(negDeal.getMatchref()) ) - .settleCode( convertFromPbString(negDeal.getSettlecode()) ) - .yield( convertFromPbString(negDeal.getYield()) ) - .accruedInt( convertFromPbString(negDeal.getAccruedint()) ) - .value( convertFromPbString(negDeal.getValue()) ) - .price2( convertFromPbString(negDeal.getPrice2()) ) - .repoRate( convertFromPbString(negDeal.getReporate()) ) - .refundRate( convertFromPbString(negDeal.getRefundrate()) ) - .transId( convertFromPbString(negDeal.getTransId()) ) - .clientCode( convertFromPbString(negDeal.getClientCode()) ) - .repoEntry( negDeal.getRepoentry() ) - .repoValue( convertFromPbString(negDeal.getRepovalue()) ) - .repo2Value( convertFromPbString(negDeal.getRepo2Value()) ) - .repoTerm( convertFromPbString(negDeal.getRepoterm()) ) - .startDiscount( convertFromPbString(negDeal.getStartDiscount()) ) - .lowerDiscount( convertFromPbString(negDeal.getLowerDiscount()) ) - .upperDiscount( convertFromPbString(negDeal.getUpperDiscount()) ) - .blockSecurities( convertFromPbString(negDeal.getBlockSecurities()) ) - .uid( convertFromPbString(negDeal.getUid()) ) - .withdrawTime( convertFromPbString(negDeal.getWithdrawTime()) ) - .negDealDate( convertFromPbString(negDeal.getNegDealDate()) ) - .balance( convertFromPbString(negDeal.getBalance()) ) - .originRepoValue( convertFromPbString(negDeal.getOriginRepovalue()) ) - .originQty( convertFromPbString(negDeal.getOriginQty()) ) - .originDiscount( convertFromPbString(negDeal.getOriginDiscount()) ) - .negDealActivationDate( convertFromPbString(negDeal.getNegDealActivationDate()) ) - .negDealActivationTime( convertFromPbString(negDeal.getNegDealActivationTime()) ) - .quoteNo( convertFromPbString(negDeal.getQuoteno()) ) - .settleCurrency( convertFromPbString(negDeal.getSettleCurrency()) ) - .secCode( convertFromPbString(negDeal.getSecCode()) ) - .classCode( convertFromPbString(negDeal.getClassCode()) ) - .bankAccId( convertFromPbString(negDeal.getBankAccId()) ) - .withdrawDate( convertFromPbString(negDeal.getWithdrawDate()) ) - .linkedOrder( convertFromPbString(negDeal.getLinkedorder()) ); - - if (negDeal.hasActivationDateTime()) { - result.activationDateTime( convertFromPbDateTimeEntry(negDeal.getActivationDateTime()) ); - } - - if (negDeal.hasWithdrawDateTime()) { - result.withdrawDateTime( convertFromPbDateTimeEntry(negDeal.getWithdrawDateTime()) ); - } - - if (negDeal.hasDateTime()) { - result.dateTime( convertFromPbDateTimeEntry(negDeal.getDateTime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.NegDeal convertToPb(@NotNull final NegDeal negDeal) { - - final QluaStructures.NegDeal.Builder result = QluaStructures.NegDeal.newBuilder() - .setNegDealNum( negDeal.getNegDealNum() ) - .setNegDealTime( convertToPbString(negDeal.getNegDealTime()) ) - .setFlags( negDeal.getFlags() ) - .setBrokerref( convertToPbString(negDeal.getBrokerRef()) ) - .setUserid( convertToPbString(negDeal.getUserId()) ) - .setFirmid( convertToPbString(negDeal.getFirmId()) ) - .setCpuserid( convertToPbString(negDeal.getCpUserId()) ) - .setCpfirmid( convertToPbString(negDeal.getCpFirmId()) ) - .setAccount( convertToPbString(negDeal.getAccount()) ) - .setPrice( convertToPbString(negDeal.getPrice()) ) - .setQty( negDeal.getQty() ) - .setMatchref( convertToPbString(negDeal.getMatchRef()) ) - .setSettlecode( convertToPbString(negDeal.getSettleCode()) ) - .setYield( convertToPbString(negDeal.getYield()) ) - .setAccruedint( convertToPbString(negDeal.getAccruedInt()) ) - .setValue( convertToPbString(negDeal.getValue()) ) - .setPrice2( convertToPbString(negDeal.getPrice2()) ) - .setReporate( convertToPbString(negDeal.getRepoRate()) ) - .setRefundrate( convertToPbString(negDeal.getRefundRate()) ) - .setTransId( convertToPbString(negDeal.getTransId()) ) - .setClientCode( convertToPbString(negDeal.getClientCode()) ) - .setRepoentry( negDeal.getRepoEntry() ) - .setRepovalue( convertToPbString(negDeal.getRepoValue()) ) - .setRepo2Value( convertToPbString(negDeal.getRepo2Value()) ) - .setRepoterm( convertToPbString(negDeal.getRepoTerm()) ) - .setStartDiscount( convertToPbString(negDeal.getStartDiscount()) ) - .setLowerDiscount( convertToPbString(negDeal.getLowerDiscount()) ) - .setUpperDiscount( convertToPbString(negDeal.getUpperDiscount()) ) - .setBlockSecurities( convertToPbString(negDeal.getBlockSecurities()) ) - .setUid( convertToPbString(negDeal.getUid()) ) - .setWithdrawTime( convertToPbString(negDeal.getWithdrawTime()) ) - .setNegDealDate( convertToPbString(negDeal.getNegDealDate()) ) - .setBalance( convertToPbString(negDeal.getBalance()) ) - .setOriginRepovalue( convertToPbString(negDeal.getOriginRepoValue()) ) - .setOriginQty( convertToPbString(negDeal.getOriginQty()) ) - .setOriginDiscount( convertToPbString(negDeal.getOriginDiscount()) ) - .setNegDealActivationDate( convertToPbString(negDeal.getNegDealActivationDate()) ) - .setNegDealActivationTime( convertToPbString(negDeal.getNegDealActivationTime()) ) - .setQuoteno( convertToPbString(negDeal.getQuoteNo()) ) - .setSettleCurrency( convertToPbString(negDeal.getSettleCurrency()) ) - .setSecCode( convertToPbString(negDeal.getSecCode()) ) - .setClassCode( convertToPbString(negDeal.getClassCode()) ) - .setBankAccId( convertToPbString(negDeal.getBankAccId()) ) - .setWithdrawDate( convertToPbString(negDeal.getWithdrawDate()) ) - .setLinkedorder( convertToPbString(negDeal.getLinkedOrder()) ); - - final DateTimeEntry activationDateTime = negDeal.getActivationDateTime(); - if (activationDateTime != null) { - result.setActivationDateTime( convertToPbDateTimeEntry(activationDateTime) ); - } - - final DateTimeEntry withdrawDateTime = negDeal.getWithdrawDateTime(); - if (withdrawDateTime != null) { - result.setWithdrawDateTime( convertToPbDateTimeEntry(withdrawDateTime) ); - } - - final DateTimeEntry dateTime = negDeal.getDateTime(); - if (dateTime != null) { - result.setDateTime( convertToPbDateTimeEntry(dateTime) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java new file mode 100644 index 0000000..dfd2418 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java @@ -0,0 +1,89 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum NegTradePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public NegTrade deserialize(final byte[] data) { + return convert(QluaStructures.NegTrade.parseFrom(data)); + } + + @Override + public NegTrade convert(@NotNull QluaStructures.NegTrade negTrade) { + + return NegTrade.builder() + .tradeNum( negTrade.getTradeNum() ) + .tradeDate( convertFromPbString(negTrade.getTradeDate()) ) + .settleDate( convertFromPbString(negTrade.getSettleDate()) ) + .flags( negTrade.getFlags() ) + .brokerRef( convertFromPbString(negTrade.getBrokerref()) ) + .firmId( convertFromPbString(negTrade.getFirmid()) ) + .account( convertFromPbString(negTrade.getAccount()) ) + .cpFirmId( convertFromPbString(negTrade.getCpfirmid()) ) + .cpAccount( convertFromPbString(negTrade.getCpaccount()) ) + .price( convertFromPbString(negTrade.getPrice()) ) + .qty( negTrade.getQty() ) + .value( convertFromPbString(negTrade.getValue()) ) + .settleCode( convertFromPbString(negTrade.getSettlecode()) ) + .reportNum( convertFromPbString(negTrade.getReportNum()) ) + .cpReportNum( convertFromPbString(negTrade.getCpreportNum()) ) + .accruedInt( convertFromPbString(negTrade.getAccruedint()) ) + .repoTradeNo( convertFromPbString(negTrade.getRepotradeno()) ) + .price1( convertFromPbString(negTrade.getPrice1()) ) + .repoRate( convertFromPbString(negTrade.getReporate()) ) + .price2( convertFromPbString(negTrade.getPrice2()) ) + .clientCode( convertFromPbString(negTrade.getClientCode()) ) + .tsComission( convertFromPbString(negTrade.getTsComission()) ) + .balance( convertFromPbString(negTrade.getBalance()) ) + .settleTime( convertFromPbString(negTrade.getSettleTime()) ) + .amount( convertFromPbString(negTrade.getAmount()) ) + .repoValue( convertFromPbString(negTrade.getRepovalue()) ) + .repoTerm( convertFromPbString(negTrade.getRepoterm()) ) + .repo2Value( convertFromPbString(negTrade.getRepo2Value()) ) + .returnValue( convertFromPbString(negTrade.getReturnValue()) ) + .discount( convertFromPbString(negTrade.getDiscount()) ) + .lowerDiscount( convertFromPbString(negTrade.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(negTrade.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(negTrade.getBlockSecurities()) ) + .urgencyFlag( convertFromPbString(negTrade.getUrgencyFlag()) ) + .type( negTrade.getType() ) + .operationType( negTrade.getOperationType() ) + .expectedDiscount( convertFromPbString(negTrade.getExpectedDiscount()) ) + .expectedQuantity( convertFromPbString(negTrade.getExpectedQuantity()) ) + .expectedRepoValue( convertFromPbString(negTrade.getExpectedRepovalue()) ) + .expectedRepo2Value( convertFromPbString(negTrade.getExpectedRepo2Value()) ) + .expectedReturnValue( convertFromPbString(negTrade.getExpectedReturnValue()) ) + .orderNum( convertFromPbString(negTrade.getOrderNum()) ) + .reportTradeDate( convertFromPbString(negTrade.getReportTradeDate()) ) + .settled( negTrade.getSettled() ) + .clearingType( negTrade.getClearingType() ) + .reportComission( convertFromPbString(negTrade.getReportComission()) ) + .couponPayment( convertFromPbString(negTrade.getCouponPayment()) ) + .principalPayment( convertFromPbString(negTrade.getPrincipalPayment()) ) + .principalPaymentDate( convertFromPbString(negTrade.getPrincipalPaymentDate()) ) + .nextDaySettle( convertFromPbString(negTrade.getNextdaysettle()) ) + .settleCurrency( convertFromPbString(negTrade.getSettleCurrency()) ) + .secCode( convertFromPbString(negTrade.getSecCode()) ) + .classCode( convertFromPbString(negTrade.getClassCode()) ) + .compVal( convertFromPbString(negTrade.getCompval()) ) + .parentTradeNo( convertFromPbString(negTrade.getParenttradeno()) ) + .bankId( convertFromPbString(negTrade.getBankid()) ) + .bankAccId( convertFromPbString(negTrade.getBankaccid()) ) + .preciseBalance( convertFromPbString(negTrade.getPrecisebalance()) ) + .confirmTime( convertFromPbString(negTrade.getConfirmtime()) ) + .exFlags( negTrade.getExFlags() ) + .confirmReport( convertFromPbString(negTrade.getConfirmreport()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java deleted file mode 100644 index 1207887..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerde.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum NegTradePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final NegTrade negTrade) { - return convertToPb(negTrade).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public NegTrade deserialize(final byte[] data) { - return convertFromPb(QluaStructures.NegTrade.parseFrom(data)); - } - - @Override - public NegTrade convertFromPb(@NotNull QluaStructures.NegTrade negTrade) { - - return NegTrade.builder() - .tradeNum( negTrade.getTradeNum() ) - .tradeDate( convertFromPbString(negTrade.getTradeDate()) ) - .settleDate( convertFromPbString(negTrade.getSettleDate()) ) - .flags( negTrade.getFlags() ) - .brokerRef( convertFromPbString(negTrade.getBrokerref()) ) - .firmId( convertFromPbString(negTrade.getFirmid()) ) - .account( convertFromPbString(negTrade.getAccount()) ) - .cpFirmId( convertFromPbString(negTrade.getCpfirmid()) ) - .cpAccount( convertFromPbString(negTrade.getCpaccount()) ) - .price( convertFromPbString(negTrade.getPrice()) ) - .qty( negTrade.getQty() ) - .value( convertFromPbString(negTrade.getValue()) ) - .settleCode( convertFromPbString(negTrade.getSettlecode()) ) - .reportNum( convertFromPbString(negTrade.getReportNum()) ) - .cpReportNum( convertFromPbString(negTrade.getCpreportNum()) ) - .accruedInt( convertFromPbString(negTrade.getAccruedint()) ) - .repoTradeNo( convertFromPbString(negTrade.getRepotradeno()) ) - .price1( convertFromPbString(negTrade.getPrice1()) ) - .repoRate( convertFromPbString(negTrade.getReporate()) ) - .price2( convertFromPbString(negTrade.getPrice2()) ) - .clientCode( convertFromPbString(negTrade.getClientCode()) ) - .tsComission( convertFromPbString(negTrade.getTsComission()) ) - .balance( convertFromPbString(negTrade.getBalance()) ) - .settleTime( convertFromPbString(negTrade.getSettleTime()) ) - .amount( convertFromPbString(negTrade.getAmount()) ) - .repoValue( convertFromPbString(negTrade.getRepovalue()) ) - .repoTerm( convertFromPbString(negTrade.getRepoterm()) ) - .repo2Value( convertFromPbString(negTrade.getRepo2Value()) ) - .returnValue( convertFromPbString(negTrade.getReturnValue()) ) - .discount( convertFromPbString(negTrade.getDiscount()) ) - .lowerDiscount( convertFromPbString(negTrade.getLowerDiscount()) ) - .upperDiscount( convertFromPbString(negTrade.getUpperDiscount()) ) - .blockSecurities( convertFromPbString(negTrade.getBlockSecurities()) ) - .urgencyFlag( convertFromPbString(negTrade.getUrgencyFlag()) ) - .type( negTrade.getType() ) - .operationType( negTrade.getOperationType() ) - .expectedDiscount( convertFromPbString(negTrade.getExpectedDiscount()) ) - .expectedQuantity( convertFromPbString(negTrade.getExpectedQuantity()) ) - .expectedRepoValue( convertFromPbString(negTrade.getExpectedRepovalue()) ) - .expectedRepo2Value( convertFromPbString(negTrade.getExpectedRepo2Value()) ) - .expectedReturnValue( convertFromPbString(negTrade.getExpectedReturnValue()) ) - .orderNum( convertFromPbString(negTrade.getOrderNum()) ) - .reportTradeDate( convertFromPbString(negTrade.getReportTradeDate()) ) - .settled( negTrade.getSettled() ) - .clearingType( negTrade.getClearingType() ) - .reportComission( convertFromPbString(negTrade.getReportComission()) ) - .couponPayment( convertFromPbString(negTrade.getCouponPayment()) ) - .principalPayment( convertFromPbString(negTrade.getPrincipalPayment()) ) - .principalPaymentDate( convertFromPbString(negTrade.getPrincipalPaymentDate()) ) - .nextDaySettle( convertFromPbString(negTrade.getNextdaysettle()) ) - .settleCurrency( convertFromPbString(negTrade.getSettleCurrency()) ) - .secCode( convertFromPbString(negTrade.getSecCode()) ) - .classCode( convertFromPbString(negTrade.getClassCode()) ) - .compVal( convertFromPbString(negTrade.getCompval()) ) - .parentTradeNo( convertFromPbString(negTrade.getParenttradeno()) ) - .bankId( convertFromPbString(negTrade.getBankid()) ) - .bankAccId( convertFromPbString(negTrade.getBankaccid()) ) - .preciseBalance( convertFromPbString(negTrade.getPrecisebalance()) ) - .confirmTime( convertFromPbString(negTrade.getConfirmtime()) ) - .exFlags( negTrade.getExFlags() ) - .confirmReport( convertFromPbString(negTrade.getConfirmreport()) ) - .build(); - } - - @Override - public QluaStructures.NegTrade convertToPb(@NotNull final NegTrade negTrade) { - - return QluaStructures.NegTrade.newBuilder() - .setTradeNum( negTrade.getTradeNum() ) - .setTradeDate( convertToPbString(negTrade.getTradeDate()) ) - .setSettleDate( convertToPbString(negTrade.getSettleDate()) ) - .setFlags( negTrade.getFlags() ) - .setBrokerref( convertToPbString(negTrade.getBrokerRef()) ) - .setFirmid( convertToPbString(negTrade.getFirmId()) ) - .setAccount( convertToPbString(negTrade.getAccount()) ) - .setCpfirmid( convertToPbString(negTrade.getCpFirmId()) ) - .setCpaccount( convertToPbString(negTrade.getCpAccount()) ) - .setPrice( convertToPbString(negTrade.getPrice()) ) - .setQty( negTrade.getQty() ) - .setValue( convertToPbString(negTrade.getValue()) ) - .setSettlecode( convertToPbString(negTrade.getSettleCode()) ) - .setReportNum( convertToPbString(negTrade.getReportNum()) ) - .setCpreportNum( convertToPbString(negTrade.getCpReportNum()) ) - .setAccruedint( convertToPbString(negTrade.getAccruedInt()) ) - .setRepotradeno( convertToPbString(negTrade.getRepoTradeNo()) ) - .setPrice1( convertToPbString(negTrade.getPrice1()) ) - .setReporate( convertToPbString(negTrade.getRepoRate()) ) - .setPrice2( convertToPbString(negTrade.getPrice2()) ) - .setClientCode( convertToPbString(negTrade.getClientCode()) ) - .setTsComission( convertToPbString(negTrade.getTsComission()) ) - .setBalance( convertToPbString(negTrade.getBalance()) ) - .setSettleTime( convertToPbString(negTrade.getSettleTime()) ) - .setAmount( convertToPbString(negTrade.getAmount()) ) - .setRepovalue( convertToPbString(negTrade.getRepoValue()) ) - .setRepoterm( convertToPbString(negTrade.getRepoTerm()) ) - .setRepo2Value( convertToPbString(negTrade.getRepo2Value()) ) - .setReturnValue( convertToPbString(negTrade.getReturnValue()) ) - .setDiscount( convertToPbString(negTrade.getDiscount()) ) - .setLowerDiscount( convertToPbString(negTrade.getLowerDiscount()) ) - .setUpperDiscount( convertToPbString(negTrade.getUpperDiscount()) ) - .setBlockSecurities( convertToPbString(negTrade.getBlockSecurities()) ) - .setUrgencyFlag( convertToPbString(negTrade.getUrgencyFlag()) ) - .setType( negTrade.getType() ) - .setOperationType( negTrade.getOperationType() ) - .setExpectedDiscount( convertToPbString(negTrade.getExpectedDiscount()) ) - .setExpectedQuantity( convertToPbString(negTrade.getExpectedQuantity()) ) - .setExpectedRepovalue( convertToPbString(negTrade.getExpectedRepoValue()) ) - .setExpectedRepo2Value( convertToPbString(negTrade.getExpectedRepo2Value()) ) - .setExpectedReturnValue( convertToPbString(negTrade.getExpectedReturnValue()) ) - .setOrderNum( convertToPbString(negTrade.getOrderNum()) ) - .setReportTradeDate( convertToPbString(negTrade.getReportTradeDate()) ) - .setSettled( negTrade.getSettled() ) - .setClearingType( negTrade.getClearingType() ) - .setReportComission( convertToPbString(negTrade.getReportComission()) ) - .setCouponPayment( convertToPbString(negTrade.getCouponPayment()) ) - .setPrincipalPayment( convertToPbString(negTrade.getPrincipalPayment()) ) - .setPrincipalPaymentDate( convertToPbString(negTrade.getPrincipalPaymentDate()) ) - .setNextdaysettle( convertToPbString(negTrade.getNextDaySettle()) ) - .setSettleCurrency( convertToPbString(negTrade.getSettleCurrency()) ) - .setSecCode( convertToPbString(negTrade.getSecCode()) ) - .setClassCode( convertToPbString(negTrade.getClassCode()) ) - .setCompval( convertToPbString(negTrade.getCompVal()) ) - .setParenttradeno( convertToPbString(negTrade.getParentTradeNo()) ) - .setBankid( convertToPbString(negTrade.getBankId()) ) - .setBankaccid( convertToPbString(negTrade.getBankAccId()) ) - .setPrecisebalance( convertToPbString(negTrade.getPreciseBalance()) ) - .setConfirmtime( convertToPbString(negTrade.getConfirmTime()) ) - .setExFlags( negTrade.getExFlags() ) - .setConfirmreport( convertToPbString(negTrade.getConfirmReport()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbDeserializer.java new file mode 100644 index 0000000..2d1381d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbDeserializer.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum OrderPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Order deserialize(final byte[] data) { + return convert(QluaStructures.Order.parseFrom(data)); + } + + @Override + public Order convert(@NotNull QluaStructures.Order order) { + + final Order.OrderBuilder result = Order.builder() + .orderNum( order.getOrderNum() ) + .flags( order.getFlags() ) + .brokerRef( convertFromPbString(order.getBrokerref()) ) + .userId( convertFromPbString(order.getUserid()) ) + .firmId( convertFromPbString(order.getFirmid()) ) + .account( convertFromPbString(order.getAccount()) ) + .price( convertFromPbString(order.getPrice()) ) + .qty( order.getQty() ) + .balance( convertFromPbString(order.getBalance()) ) + .value( convertFromPbString(order.getValue()) ) + .accruedInt( convertFromPbString(order.getAccruedint()) ) + .yield( convertFromPbString(order.getYield()) ) + .transId( convertFromPbString(order.getTransId()) ) + .clientCode( convertFromPbString(order.getClientCode()) ) + .price2( convertFromPbString(order.getPrice2()) ) + .settleCode( convertFromPbString(order.getSettlecode()) ) + .uid( convertFromPbString(order.getUid()) ) + .canceledUid( convertFromPbString(order.getCanceledUid()) ) + .exchangeCode( convertFromPbString(order.getExchangeCode()) ) + .activationTime( convertFromPbString(order.getActivationTime()) ) + .linkedOrder( convertFromPbString(order.getLinkedorder()) ) + .expiry( convertFromPbString(order.getExpiry()) ) + .secCode( convertFromPbString(order.getSecCode()) ) + .classCode( convertFromPbString(order.getClassCode()) ) + .bankAccId( convertFromPbString(order.getBankAccId()) ) + .valueEntryType( order.getValueEntryType() ) + .repoTerm( convertFromPbString(order.getRepoterm()) ) + .repoValue( convertFromPbString(order.getRepovalue()) ) + .repo2Value( convertFromPbString(order.getRepo2Value()) ) + .repoValueBalance( convertFromPbString(order.getRepoValueBalance()) ) + .startDiscount( convertFromPbString(order.getStartDiscount()) ) + .rejectReason( convertFromPbString(order.getRejectReason()) ) + .extOrderFlags( convertFromPbString(order.getExtOrderFlags()) ) + .minQty( order.getMinQty() ) + .execType( order.getExecType() ) + .sideQualifier( order.getSideQualifier() ) + .acntType( order.getAcntType() ) + .capacity( order.getCapacity() ) + .passiveOnlyOrder( order.getPassiveOnlyOrder() ) + .visible( order.getVisible() ); + + if (order.hasDatetime()) { + result.datetime( convertFromPbDateTimeEntry(order.getDatetime()) ); + } + + if (order.hasWithdrawDatetime()) { + result.withdrawDatetime( convertFromPbDateTimeEntry(order.getWithdrawDatetime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java deleted file mode 100644 index d4f497f..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerde.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import java.util.Objects; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum OrderPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Order firm) { - return convertToPb(firm).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Order deserialize(final byte[] data) { - return convertFromPb(QluaStructures.Order.parseFrom(data)); - } - - @Override - public Order convertFromPb(@NotNull QluaStructures.Order order) { - - final Order.OrderBuilder result = Order.builder() - .orderNum( order.getOrderNum() ) - .flags( order.getFlags() ) - .brokerRef( convertFromPbString(order.getBrokerref()) ) - .userId( convertFromPbString(order.getUserid()) ) - .firmId( convertFromPbString(order.getFirmid()) ) - .account( convertFromPbString(order.getAccount()) ) - .price( convertFromPbString(order.getPrice()) ) - .qty( order.getQty() ) - .balance( convertFromPbString(order.getBalance()) ) - .value( convertFromPbString(order.getValue()) ) - .accruedInt( convertFromPbString(order.getAccruedint()) ) - .yield( convertFromPbString(order.getYield()) ) - .transId( convertFromPbString(order.getTransId()) ) - .clientCode( convertFromPbString(order.getClientCode()) ) - .price2( convertFromPbString(order.getPrice2()) ) - .settleCode( convertFromPbString(order.getSettlecode()) ) - .uid( convertFromPbString(order.getUid()) ) - .canceledUid( convertFromPbString(order.getCanceledUid()) ) - .exchangeCode( convertFromPbString(order.getExchangeCode()) ) - .activationTime( convertFromPbString(order.getActivationTime()) ) - .linkedOrder( convertFromPbString(order.getLinkedorder()) ) - .expiry( convertFromPbString(order.getExpiry()) ) - .secCode( convertFromPbString(order.getSecCode()) ) - .classCode( convertFromPbString(order.getClassCode()) ) - .bankAccId( convertFromPbString(order.getBankAccId()) ) - .valueEntryType( order.getValueEntryType() ) - .repoTerm( convertFromPbString(order.getRepoterm()) ) - .repoValue( convertFromPbString(order.getRepovalue()) ) - .repo2Value( convertFromPbString(order.getRepo2Value()) ) - .repoValueBalance( convertFromPbString(order.getRepoValueBalance()) ) - .startDiscount( convertFromPbString(order.getStartDiscount()) ) - .rejectReason( convertFromPbString(order.getRejectReason()) ) - .extOrderFlags( convertFromPbString(order.getExtOrderFlags()) ) - .minQty( order.getMinQty() ) - .execType( order.getExecType() ) - .sideQualifier( order.getSideQualifier() ) - .acntType( order.getAcntType() ) - .capacity( order.getCapacity() ) - .passiveOnlyOrder( order.getPassiveOnlyOrder() ) - .visible( order.getVisible() ); - - if (order.hasDatetime()) { - result.datetime( convertFromPbDateTimeEntry(order.getDatetime()) ); - } - - if (order.hasWithdrawDatetime()) { - result.withdrawDatetime( convertFromPbDateTimeEntry(order.getWithdrawDatetime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.Order convertToPb(@NotNull final Order order) { - - final QluaStructures.Order.Builder result = QluaStructures.Order.newBuilder() - .setOrderNum( order.getOrderNum() ) - .setFlags( order.getFlags() ) - .setBrokerref( convertToPbString(order.getBrokerRef()) ) - .setUserid( convertToPbString(order.getUserId()) ) - .setFirmid( convertToPbString(order.getFirmId()) ) - .setAccount( convertToPbString(order.getAccount()) ) - .setPrice( convertToPbString(order.getPrice()) ) - .setQty( order.getQty() ) - .setBalance( convertToPbString(order.getBalance()) ) - .setValue( convertToPbString(order.getValue()) ) - .setAccruedint( convertToPbString(order.getAccruedInt()) ) - .setYield( convertToPbString(order.getYield()) ) - .setTransId( convertToPbString(order.getTransId()) ) - .setClientCode( convertToPbString(order.getClientCode()) ) - .setPrice2( convertToPbString(order.getPrice2()) ) - .setSettlecode( convertToPbString(order.getSettleCode()) ) - .setUid( convertToPbString(order.getUid()) ) - .setCanceledUid( convertToPbString(order.getCanceledUid()) ) - .setExchangeCode( convertToPbString(order.getExchangeCode()) ) - .setActivationTime( convertToPbString(order.getActivationTime()) ) - .setLinkedorder( convertToPbString(order.getLinkedOrder()) ) - .setExpiry( convertToPbString(order.getExpiry()) ) - .setSecCode( convertToPbString(order.getSecCode()) ) - .setClassCode( convertToPbString(order.getClassCode()) ) - .setBankAccId( convertToPbString(order.getBankAccId()) ) - .setValueEntryType( order.getValueEntryType() ) - .setRepoterm( convertToPbString(order.getRepoTerm()) ) - .setRepovalue( convertToPbString(order.getRepoValue()) ) - .setRepo2Value( convertToPbString(order.getRepo2Value()) ) - .setRepoValueBalance( convertToPbString(order.getRepoValueBalance()) ) - .setStartDiscount( convertToPbString(order.getStartDiscount()) ) - .setRejectReason( convertToPbString(order.getRejectReason()) ) - .setExtOrderFlags( convertToPbString(order.getExtOrderFlags()) ) - .setMinQty( order.getMinQty() ) - .setExecType( order.getExecType() ) - .setSideQualifier( order.getSideQualifier() ) - .setAcntType( order.getAcntType() ) - .setCapacity( order.getCapacity() ) - .setPassiveOnlyOrder( order.getPassiveOnlyOrder() ) - .setVisible( order.getVisible() ); - - final DateTimeEntry dateTime = order.getDatetime(); - if (dateTime != null) { - result.setDatetime( convertToPbDateTimeEntry(dateTime) ); - } - - final DateTimeEntry withdrawDateTime = order.getWithdrawDatetime(); - if (withdrawDateTime != null) { - result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbDeserializer.java new file mode 100644 index 0000000..4e4c26a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum ParamEventInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ParamEventInfo deserialize(final byte[] data) { + return convert(QluaStructures.ParamEventInfo.parseFrom(data)); + } + + @Override + public ParamEventInfo convert(@NotNull QluaStructures.ParamEventInfo paramEventInfo) { + + return ParamEventInfo.builder() + .classCode( convertFromPbString(paramEventInfo.getClassCode()) ) + .secCode( convertFromPbString(paramEventInfo.getSecCode()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java deleted file mode 100644 index 6864e9c..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerde.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum ParamEventInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ParamEventInfo paramEventInfo) { - return convertToPb(paramEventInfo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ParamEventInfo deserialize(final byte[] data) { - return convertFromPb(QluaStructures.ParamEventInfo.parseFrom(data)); - } - - @Override - public ParamEventInfo convertFromPb(@NotNull QluaStructures.ParamEventInfo paramEventInfo) { - - return ParamEventInfo.builder() - .classCode( convertFromPbString(paramEventInfo.getClassCode()) ) - .secCode( convertFromPbString(paramEventInfo.getSecCode()) ) - .build(); - } - - @Override - public QluaStructures.ParamEventInfo convertToPb(@NotNull final ParamEventInfo paramEventInfo) { - - return QluaStructures.ParamEventInfo.newBuilder() - .setClassCode( convertToPbString(paramEventInfo.getClassCode()) ) - .setSecCode( convertToPbString(paramEventInfo.getSecCode()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java new file mode 100644 index 0000000..a3e4c80 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum ParamRequestArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final ParamRequest.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.ParamRequest.Request convert(@NotNull final ParamRequest.Args args) { + + return qlua.rpc.ParamRequest.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setDbName( args.getDbName() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java deleted file mode 100644 index b369aa2..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerde.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.assertEquals; - -enum ParamRequestRequestPbSerde implements Serde, PbConverter { - - INSTANCE; - - private static final RPC.ProcedureType PROCEDURE_TYPE = RPC.ProcedureType.PARAM_REQUEST; - - @Override - public byte[] serialize(final ParamRequest.Request request) { - - return RPC.Request.newBuilder() - .setTypeValue( PROCEDURE_TYPE.getNumber() ) - .setArgs( convertToPb(request).toByteString() ) - .build() - .toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ParamRequest.Request deserialize(final byte[] data) { - - final RPC.Request request = RPC.Request.parseFrom(data); - assertEquals(request.getType(), PROCEDURE_TYPE); - - return convertFromPb( - qlua.rpc.ParamRequest.Request.parseFrom( request.getArgs() ) - ); - } - - @Override - public ParamRequest.Request convertFromPb(@NotNull final qlua.rpc.ParamRequest.Request request) { - - return ParamRequest.Request.builder() - .classCode( request.getClassCode() ) - .secCode( request.getSecCode() ) - .dbName( request.getDbName() ) - .build(); - } - - @Override - public qlua.rpc.ParamRequest.Request convertToPb(@NotNull final ParamRequest.Request request) { - - return qlua.rpc.ParamRequest.Request.newBuilder() - .setClassCode( request.getClassCode() ) - .setSecCode( request.getSecCode() ) - .setDbName( request.getDbName() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbDeserializer.java new file mode 100644 index 0000000..79ca9ff --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum ParamRequestResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ParamRequest.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.ParamRequest.Result.parseFrom(data) ); + } + + @NotNull + @Override + public ParamRequest.Result convert(@NotNull final qlua.rpc.ParamRequest.Result result) { + return ParamRequest.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java deleted file mode 100644 index 52c9170..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerde.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum ParamRequestResultPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ParamRequest.Result result) { - return convertToPb(result).toByteArray(); - } - - @NotNull - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ParamRequest.Result deserialize(final byte[] data) { - return convertFromPb( qlua.rpc.ParamRequest.Result.parseFrom(data) ); - } - - @Override - public ParamRequest.Result convertFromPb(@NotNull final qlua.rpc.ParamRequest.Result result) { - return ParamRequest.Result.getInstance( result.getResult() ); - } - - @Override - public qlua.rpc.ParamRequest.Result convertToPb(@NotNull final ParamRequest.Result result) { - return qlua.rpc.ParamRequest.Result.newBuilder() - .setResult( result.isResult() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbDeserializer.java new file mode 100644 index 0000000..561377a --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbDeserializer.java @@ -0,0 +1,68 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetPortfolioInfo; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum PortfolioInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public PortfolioInfo deserialize(final byte[] data) { + return convert(qlua.rpc.GetPortfolioInfo.PortfolioInfo.parseFrom(data)); + } + + @Override + public PortfolioInfo convert(@NotNull qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo) { + + return PortfolioInfo.builder() + .isLeverage( convertFromPbString(portfolioInfo.getIsLeverage()) ) + .inAssets( convertFromPbString(portfolioInfo.getInAssets()) ) + .leverage( convertFromPbString(portfolioInfo.getLeverage()) ) + .openLimit( convertFromPbString(portfolioInfo.getOpenLimit()) ) + .valShort( convertFromPbString(portfolioInfo.getValShort()) ) + .valLong( convertFromPbString(portfolioInfo.getValLong()) ) + .valLongMargin( convertFromPbString(portfolioInfo.getValLongMargin()) ) + .valLongAsset( convertFromPbString(portfolioInfo.getValLongAsset()) ) + .assets( convertFromPbString(portfolioInfo.getAssets()) ) + .curLeverage( convertFromPbString(portfolioInfo.getCurLeverage()) ) + .margin( convertFromPbString(portfolioInfo.getMargin()) ) + .limAll( convertFromPbString(portfolioInfo.getLimAll()) ) + .avLimAll( convertFromPbString(portfolioInfo.getAvLimAll()) ) + .lockedBuy( convertFromPbString(portfolioInfo.getLockedBuy()) ) + .lockedBuyMargin( convertFromPbString(portfolioInfo.getLockedBuyMargin()) ) + .lockedBuyAsset( convertFromPbString(portfolioInfo.getLockedBuyAsset()) ) + .lockedSell( convertFromPbString(portfolioInfo.getLockedSell()) ) + .lockedValueCoef( convertFromPbString(portfolioInfo.getLockedValueCoef()) ) + .inAllAssets( convertFromPbString(portfolioInfo.getInAllAssets()) ) + .allAssets( convertFromPbString(portfolioInfo.getAllAssets()) ) + .profitLoss( convertFromPbString(portfolioInfo.getProfitLoss()) ) + .rateChange( convertFromPbString(portfolioInfo.getRateChange()) ) + .limBuy( convertFromPbString(portfolioInfo.getLimBuy()) ) + .limSell( convertFromPbString(portfolioInfo.getLimSell()) ) + .limNonMargin( convertFromPbString(portfolioInfo.getLimNonMargin()) ) + .limBuyAsset( convertFromPbString(portfolioInfo.getLimBuyAsset()) ) + .valShortNet( convertFromPbString(portfolioInfo.getValShortNet()) ) + .valLongNet( convertFromPbString(portfolioInfo.getValLongNet()) ) + .totalMoneyBal( convertFromPbString(portfolioInfo.getTotalMoneyBal()) ) + .totalLockedMoney( convertFromPbString(portfolioInfo.getTotalLockedMoney()) ) + .haircuts( convertFromPbString(portfolioInfo.getHaircuts()) ) + .assetsWithoutHc( convertFromPbString(portfolioInfo.getAssetsWithoutHc()) ) + .statusCoef( convertFromPbString(portfolioInfo.getStatusCoef()) ) + .varMargin( convertFromPbString(portfolioInfo.getVarmargin()) ) + .goForPositions( convertFromPbString(portfolioInfo.getGoForPositions()) ) + .goForOrders( convertFromPbString(portfolioInfo.getGoForOrders()) ) + .rateFutures( convertFromPbString(portfolioInfo.getRateFutures()) ) + .isQualClient( convertFromPbString(portfolioInfo.getIsQualClient()) ) + .isFutures( convertFromPbString(portfolioInfo.getIsFutures()) ) + .currTag( convertFromPbString(portfolioInfo.getCurrTag()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java deleted file mode 100644 index fd413a4..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerde.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum PortfolioInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final PortfolioInfo money) { - return convertToPb(money).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public PortfolioInfo deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.GetPortfolioInfo.PortfolioInfo.parseFrom(data)); - } - - @Override - public PortfolioInfo convertFromPb(@NotNull qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo) { - - return PortfolioInfo.builder() - .isLeverage( convertFromPbString(portfolioInfo.getIsLeverage()) ) - .inAssets( convertFromPbString(portfolioInfo.getInAssets()) ) - .leverage( convertFromPbString(portfolioInfo.getLeverage()) ) - .openLimit( convertFromPbString(portfolioInfo.getOpenLimit()) ) - .valShort( convertFromPbString(portfolioInfo.getValShort()) ) - .valLong( convertFromPbString(portfolioInfo.getValLong()) ) - .valLongMargin( convertFromPbString(portfolioInfo.getValLongMargin()) ) - .valLongAsset( convertFromPbString(portfolioInfo.getValLongAsset()) ) - .assets( convertFromPbString(portfolioInfo.getAssets()) ) - .curLeverage( convertFromPbString(portfolioInfo.getCurLeverage()) ) - .margin( convertFromPbString(portfolioInfo.getMargin()) ) - .limAll( convertFromPbString(portfolioInfo.getLimAll()) ) - .avLimAll( convertFromPbString(portfolioInfo.getAvLimAll()) ) - .lockedBuy( convertFromPbString(portfolioInfo.getLockedBuy()) ) - .lockedBuyMargin( convertFromPbString(portfolioInfo.getLockedBuyMargin()) ) - .lockedBuyAsset( convertFromPbString(portfolioInfo.getLockedBuyAsset()) ) - .lockedSell( convertFromPbString(portfolioInfo.getLockedSell()) ) - .lockedValueCoef( convertFromPbString(portfolioInfo.getLockedValueCoef()) ) - .inAllAssets( convertFromPbString(portfolioInfo.getInAllAssets()) ) - .allAssets( convertFromPbString(portfolioInfo.getAllAssets()) ) - .profitLoss( convertFromPbString(portfolioInfo.getProfitLoss()) ) - .rateChange( convertFromPbString(portfolioInfo.getRateChange()) ) - .limBuy( convertFromPbString(portfolioInfo.getLimBuy()) ) - .limSell( convertFromPbString(portfolioInfo.getLimSell()) ) - .limNonMargin( convertFromPbString(portfolioInfo.getLimNonMargin()) ) - .limBuyAsset( convertFromPbString(portfolioInfo.getLimBuyAsset()) ) - .valShortNet( convertFromPbString(portfolioInfo.getValShortNet()) ) - .valLongNet( convertFromPbString(portfolioInfo.getValLongNet()) ) - .totalMoneyBal( convertFromPbString(portfolioInfo.getTotalMoneyBal()) ) - .totalLockedMoney( convertFromPbString(portfolioInfo.getTotalLockedMoney()) ) - .haircuts( convertFromPbString(portfolioInfo.getHaircuts()) ) - .assetsWithoutHc( convertFromPbString(portfolioInfo.getAssetsWithoutHc()) ) - .statusCoef( convertFromPbString(portfolioInfo.getStatusCoef()) ) - .varMargin( convertFromPbString(portfolioInfo.getVarmargin()) ) - .goForPositions( convertFromPbString(portfolioInfo.getGoForPositions()) ) - .goForOrders( convertFromPbString(portfolioInfo.getGoForOrders()) ) - .rateFutures( convertFromPbString(portfolioInfo.getRateFutures()) ) - .isQualClient( convertFromPbString(portfolioInfo.getIsQualClient()) ) - .isFutures( convertFromPbString(portfolioInfo.getIsFutures()) ) - .currTag( convertFromPbString(portfolioInfo.getCurrTag()) ) - .build(); - } - - @Override - public qlua.rpc.GetPortfolioInfo.PortfolioInfo convertToPb(@NotNull final PortfolioInfo portfolioInfo) { - - return qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() - .setIsLeverage( convertToPbString(portfolioInfo.getIsLeverage()) ) - .setInAssets( convertToPbString(portfolioInfo.getInAssets()) ) - .setLeverage( convertToPbString(portfolioInfo.getLeverage()) ) - .setOpenLimit( convertToPbString(portfolioInfo.getOpenLimit()) ) - .setValShort( convertToPbString(portfolioInfo.getValShort()) ) - .setValLong( convertToPbString(portfolioInfo.getValLong()) ) - .setValLongMargin( convertToPbString(portfolioInfo.getValLongMargin()) ) - .setValLongAsset( convertToPbString(portfolioInfo.getValLongAsset()) ) - .setAssets( convertToPbString(portfolioInfo.getAssets()) ) - .setCurLeverage( convertToPbString(portfolioInfo.getCurLeverage()) ) - .setMargin( convertToPbString(portfolioInfo.getMargin()) ) - .setLimAll( convertToPbString(portfolioInfo.getLimAll()) ) - .setAvLimAll( convertToPbString(portfolioInfo.getAvLimAll()) ) - .setLockedBuy( convertToPbString(portfolioInfo.getLockedBuy()) ) - .setLockedBuyMargin( convertToPbString(portfolioInfo.getLockedBuyMargin()) ) - .setLockedBuyAsset( convertToPbString(portfolioInfo.getLockedBuyAsset()) ) - .setLockedSell( convertToPbString(portfolioInfo.getLockedSell()) ) - .setLockedValueCoef( convertToPbString(portfolioInfo.getLockedValueCoef()) ) - .setInAllAssets( convertToPbString(portfolioInfo.getInAllAssets()) ) - .setAllAssets( convertToPbString(portfolioInfo.getAllAssets()) ) - .setProfitLoss( convertToPbString(portfolioInfo.getProfitLoss()) ) - .setRateChange( convertToPbString(portfolioInfo.getRateChange()) ) - .setLimBuy( convertToPbString(portfolioInfo.getLimBuy()) ) - .setLimSell( convertToPbString(portfolioInfo.getLimSell()) ) - .setLimNonMargin( convertToPbString(portfolioInfo.getLimNonMargin()) ) - .setLimBuyAsset( convertToPbString(portfolioInfo.getLimBuyAsset()) ) - .setValShortNet( convertToPbString(portfolioInfo.getValShortNet()) ) - .setValLongNet( convertToPbString(portfolioInfo.getValLongNet()) ) - .setTotalMoneyBal( convertToPbString(portfolioInfo.getTotalMoneyBal()) ) - .setTotalLockedMoney( convertToPbString(portfolioInfo.getTotalLockedMoney()) ) - .setHaircuts( convertToPbString(portfolioInfo.getHaircuts()) ) - .setAssetsWithoutHc( convertToPbString(portfolioInfo.getAssetsWithoutHc()) ) - .setStatusCoef( convertToPbString(portfolioInfo.getStatusCoef()) ) - .setVarmargin( convertToPbString(portfolioInfo.getVarMargin()) ) - .setGoForPositions( convertToPbString(portfolioInfo.getGoForPositions()) ) - .setGoForOrders( convertToPbString(portfolioInfo.getGoForOrders()) ) - .setRateFutures( convertToPbString(portfolioInfo.getRateFutures()) ) - .setIsQualClient( convertToPbString(portfolioInfo.getIsQualClient()) ) - .setIsFutures( convertToPbString(portfolioInfo.getIsFutures()) ) - .setCurrTag( convertToPbString(portfolioInfo.getCurrTag()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java new file mode 100644 index 0000000..0b5a63f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java @@ -0,0 +1,23 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum PrintDbgStrArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final PrintDbgStr.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.PrintDbgStr.Request convert(@NotNull final PrintDbgStr.Args args) { + + return qlua.rpc.PrintDbgStr.Request.newBuilder() + .setS( args.getS() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java similarity index 51% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java index 0a39f5c..a7ded23 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java @@ -1,47 +1,27 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import com.google.common.primitives.Ints; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import qlua.events.QluaEvents; import java.util.Arrays; -import java.util.EnumMap; import java.util.HashMap; import java.util.Map; /** - * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса + * Десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса * quik-lua-rpc, использующего формат Protocol Buffers. *
* @see quik-lua-rpc * @see Protocol Buffers */ -enum ProtobufQluaEventTypeSerde implements Serde { +enum ProtobufQluaEventTypeDeserializer implements Deserializer { INSTANCE; private static final Map PB_EVENT_TYPE_HASH_TO_EVENT_TYPE_MAP = createPbEventTypeHashToEventTypeMap(); - private static final EnumMap EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP = - createEventTypeToPbEventTypeBytesMap(); - - /** - * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса - * quik-lua-rpc, использующего формат Protocol Buffers. - * - * @param eventType тип события API QLua терминала QUIK - * @return бинарное представление, отвечающее данному типу события; - * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null - */ - @Override - public byte[] serialize(final QluaEvent.EventType eventType) { - return EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP.get(eventType); - } - /** * Десериализует бинарное представление типа события API QLua терминала QUIK в рамках удалённого RPC-сервиса * quik-lua-rpc, использующего формат Protocol Buffers. @@ -94,40 +74,6 @@ private static Map createPbEventTypeHashToEventTyp return result; } - private static EnumMap createEventTypeToPbEventTypeBytesMap() { - - final EnumMap result = new EnumMap<>(QluaEvent.EventType.class); - - result.put(QluaEvent.EventType.ON_CLOSE, asStringBytes(QluaEvents.EventType.ON_CLOSE.getNumber())); - result.put(QluaEvent.EventType.ON_STOP, asStringBytes(QluaEvents.EventType.ON_STOP.getNumber())); - result.put(QluaEvent.EventType.ON_FIRM, asStringBytes(QluaEvents.EventType.ON_FIRM.getNumber())); - result.put(QluaEvent.EventType.ON_ALL_TRADE, asStringBytes(QluaEvents.EventType.ON_ALL_TRADE.getNumber())); - result.put(QluaEvent.EventType.ON_TRADE, asStringBytes(QluaEvents.EventType.ON_TRADE.getNumber())); - result.put(QluaEvent.EventType.ON_ORDER, asStringBytes(QluaEvents.EventType.ON_ORDER.getNumber())); - result.put(QluaEvent.EventType.ON_ACCOUNT_BALANCE, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber())); - result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber())); - result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber())); - result.put(QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING, asStringBytes(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber())); - result.put(QluaEvent.EventType.ON_MONEY_LIMIT, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber())); - result.put(QluaEvent.EventType.ON_MONEY_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber())); - result.put(QluaEvent.EventType.ON_DEPO_LIMIT, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber())); - result.put(QluaEvent.EventType.ON_DEPO_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber())); - result.put(QluaEvent.EventType.ON_ACCOUNT_POSITION, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber())); - result.put(QluaEvent.EventType.ON_NEG_DEAL, asStringBytes(QluaEvents.EventType.ON_NEG_DEAL.getNumber())); - result.put(QluaEvent.EventType.ON_NEG_TRADE, asStringBytes(QluaEvents.EventType.ON_NEG_TRADE.getNumber())); - result.put(QluaEvent.EventType.ON_STOP_ORDER, asStringBytes(QluaEvents.EventType.ON_STOP_ORDER.getNumber())); - result.put(QluaEvent.EventType.ON_TRANS_REPLY, asStringBytes(QluaEvents.EventType.ON_TRANS_REPLY.getNumber())); - result.put(QluaEvent.EventType.ON_PARAM, asStringBytes(QluaEvents.EventType.ON_PARAM.getNumber())); - result.put(QluaEvent.EventType.ON_QUOTE, asStringBytes(QluaEvents.EventType.ON_QUOTE.getNumber())); - result.put(QluaEvent.EventType.ON_DISCONNECTED, asStringBytes(QluaEvents.EventType.ON_DISCONNECTED.getNumber())); - result.put(QluaEvent.EventType.ON_CONNECTED, asStringBytes(QluaEvents.EventType.ON_CONNECTED.getNumber())); - result.put(QluaEvent.EventType.ON_CLEAN_UP, asStringBytes(QluaEvents.EventType.ON_CLEAN_UP.getNumber())); - - assert (result.size() == QluaEvent.EventType.values().length); - - return result; - } - private static byte[] asStringBytes(final int number) { return Integer.toString(number).getBytes(ProtobufSerdeUtils.DEFAULT_PROTOBUF_CHARSET); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index d8bdc43..8ff4482 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -1,40 +1,40 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; -import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.serde.Serde; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.common.collect.ImmutableMap; +import lombok.NonNull; import org.jetbrains.annotations.NotNull; -import java.util.HashMap; import java.util.Map; -import static java.util.Objects.requireNonNull; - public enum ProtobufSerdeModule implements SerdeModule { INSTANCE; - private static final Map, Serde> CLASS_TO_SERDE_MAP = createClassToSerdeMap(); + private static final Map, Serializer> CLASS_TO_SERIALIZER_MAP = createClassToSerializerMap(); + private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = createClassToDeserializerMap(); @Override - public byte[] serialize(final T t) { - - requireNonNull(t, "Аргумент не должен быть null."); + public byte[] serialize(@NonNull final T t) { - // This cast is safe because we used the registerSerde method to fill the map. + // This cast is safe because we use the registerSerializer method to fill the map. @SuppressWarnings("unchecked") - final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(t.getClass()); - if (serde == null) { + final Serializer serializer = (Serializer) CLASS_TO_SERIALIZER_MAP.get(t.getClass()); + if (serializer == null) { throw new SerdeException( String.format("Неподдерживаемый класс для сериализации в protobuf-представление: %s.", t.getClass().getName()) ); } else { try { - return serde.serialize(t); + return serializer.serialize(t); } catch (final Exception ex) { throw new SerdeException( String.format("Ошибка при сериализации экземпляра класса '%s' в protobuf-представление.", t.getClass().getName()), @@ -45,12 +45,12 @@ public byte[] serialize(final T t) { } @Override - public T deserialize(final Class clazz, final byte[] data) { + public @NotNull T deserialize(@NotNull final Class clazz, @NotNull final byte[] data) { - // This cast is safe because we used the registerSerde method to fill the map. + // This cast is safe because we use the registerDeserializer method to fill the map. @SuppressWarnings("unchecked") - final Serde serde = (Serde) CLASS_TO_SERDE_MAP.get(clazz); - if (serde == null) { + final Deserializer deserializer = (Deserializer) CLASS_TO_DESERIALIZER_MAP.get(clazz); + if (deserializer == null) { throw new SerdeException( new IllegalArgumentException( String.format("Неподдерживаемый класс для десериализации из protobuf-представления: %s.", clazz.getName()) @@ -58,7 +58,7 @@ public T deserialize(final Class clazz, final byte[] data) { ); } else { try { - return serde.deserialize(data); + return deserializer.deserialize(data); } catch (final Exception ex) { throw new SerdeException( String.format("Ошибка при десериализации экземпляра класса '%s' из protobuf-представления.", clazz.getName()), @@ -68,154 +68,191 @@ public T deserialize(final Class clazz, final byte[] data) { } } - private static void registerSerde( - @NotNull final Map, Serde> map, + private static > void registerSerializer( + @NotNull final ImmutableMap.Builder, Serializer> map, @NotNull final Class clazz, - @NotNull final Serde serde) { + @NotNull final Serializer serde) { map.put(clazz, serde); } - private static Map, Serde> createClassToSerdeMap() { - - final Map, Serde> result = new HashMap<>(); - - registerSerde(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); - registerSerde(result, StopEventInfo.class, StopEventInfoPbSerde.INSTANCE); - registerSerde(result, ConnectedEventInfo.class, ConnectedEventInfoPbSerde.INSTANCE); - registerSerde(result, Trade.class, TradePbSerde.INSTANCE); - registerSerde(result, Order.class, OrderPbSerde.INSTANCE); - registerSerde(result, FuturesLimitDelete.class, FuturesLimitDeletePbSerde.INSTANCE); - registerSerde(result, Firm.class, FirmPbSerde.INSTANCE); - registerSerde(result, MoneyLimit.class, MoneyLimitPbSerde.INSTANCE); - registerSerde(result, MoneyLimitDelete.class, MoneyLimitDeletePbSerde.INSTANCE); - registerSerde(result, DepoLimit.class, DepoLimitPbSerde.INSTANCE); - registerSerde(result, DepoLimitDelete.class, DepoLimitDeletePbSerde.INSTANCE); - registerSerde(result, AccountBalance.class, AccountBalancePbSerde.INSTANCE); - registerSerde(result, AccountPosition.class, AccountPositionPbSerde.INSTANCE); - registerSerde(result, NegDeal.class, NegDealPbSerde.INSTANCE); - registerSerde(result, NegTrade.class, NegTradePbSerde.INSTANCE); - registerSerde(result, StopOrder.class, StopOrderPbSerde.INSTANCE); - registerSerde(result, TransReply.class, TransReplyPbSerde.INSTANCE); - registerSerde(result, DateTimeEntry.class, DateTimeEntryPbSerde.INSTANCE); - registerSerde(result, AllTrade.class, AllTradePbSerde.INSTANCE); - registerSerde(result, FuturesClientHolding.class, FuturesClientHoldingPbSerde.INSTANCE); - registerSerde(result, FuturesLimit.class, FuturesLimitPbSerde.INSTANCE); - registerSerde(result, ParamEventInfo.class, ParamEventInfoPbSerde.INSTANCE); - registerSerde(result, QuoteEventInfo.class, QuoteEventInfoPbSerde.INSTANCE); - registerSerde(result, CandleEntry.class, CandleEntryPbSerde.INSTANCE); - registerSerde(result, ClassInfo.class, ClassInfoPbSerde.INSTANCE); - registerSerde(result, Depo.class, DepoPbSerde.INSTANCE); - registerSerde(result, Money.class, MoneyPbSerde.INSTANCE); - registerSerde(result, PortfolioInfo.class, PortfolioInfoPbSerde.INSTANCE); - registerSerde(result, Security.class, SecurityPbSerde.INSTANCE); - - registerSerde(result, ServiceError.class, ServiceErrorPbSerde.INSTANCE); - registerSerde(result, ResponseEnvelope.class, ResponseEnvelopePbSerde.INSTANCE); - registerSerde(result, AddColumn.Request.class, AddColumnRequestPbSerde.INSTANCE); - registerSerde(result, AddColumn.Result.class, AddColumnResultPbSerde.INSTANCE); - registerSerde(result, AddLabel.Request.class, AddLabelRequestPbSerde.INSTANCE); - registerSerde(result, AddLabel.Result.class, AddLabelResultPbSerde.INSTANCE); - registerSerde(result, AllocTable.Request.class, AllocTableRequestPbSerde.INSTANCE); - registerSerde(result, AllocTable.Result.class, AllocTableResultPbSerde.INSTANCE); - registerSerde(result, CalcBuySell.Request.class, CalcBuySellRequestPbSerde.INSTANCE); - registerSerde(result, CalcBuySell.Result.class, CalcBuySellResultPbSerde.INSTANCE); - registerSerde(result, CancelParamRequest.Request.class, CancelParamRequestRequestPbSerde.INSTANCE); - registerSerde(result, CancelParamRequest.Result.class, CancelParamRequestResultPbSerde.INSTANCE); - registerSerde(result, Clear.Request.class, ClearRequestPbSerde.INSTANCE); - registerSerde(result, Clear.Result.class, ClearResultPbSerde.INSTANCE); - registerSerde(result, CreateWindow.Request.class, CreateWindowRequestPbSerde.INSTANCE); - registerSerde(result, CreateWindow.Result.class, CreateWindowResultPbSerde.INSTANCE); - registerSerde(result, DelAllLabels.Request.class, DelAllLabelsRequestPbSerde.INSTANCE); - registerSerde(result, DelAllLabels.Result.class, DelAllLabelsResultPbSerde.INSTANCE); - registerSerde(result, DeleteRow.Request.class, DeleteRowRequestPbSerde.INSTANCE); - registerSerde(result, DeleteRow.Result.class, DeleteRowResultPbSerde.INSTANCE); - registerSerde(result, DelLabel.Request.class, DelLabelRequestPbSerde.INSTANCE); - registerSerde(result, DelLabel.Result.class, DelLabelResultPbSerde.INSTANCE); - registerSerde(result, DestroyTable.Request.class, DestroyTableRequestPbSerde.INSTANCE); - registerSerde(result, DestroyTable.Result.class, DestroyTableResultPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfo.BuySellInfo.class, BuySellInfoPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfo.Request.class, GetBuySellInfoRequestPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfo.Result.class, GetBuySellInfoResultPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfoEx.BuySellInfoEx.class, BuySellInfoExPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfoEx.Request.class, GetBuySellInfoExRequestPbSerde.INSTANCE); - registerSerde(result, GetBuySellInfoEx.Result.class, GetBuySellInfoExResultPbSerde.INSTANCE); - registerSerde(result, GetCandlesByIndex.Request.class, GetCandlesByIndexRequestPbSerde.INSTANCE); - registerSerde(result, GetCandlesByIndex.Result.class, GetCandlesByIndexResultPbSerde.INSTANCE); - registerSerde(result, GetCell.Request.class, GetCellRequestPbSerde.INSTANCE); - registerSerde(result, GetCell.Result.class, GetCellResultPbSerde.INSTANCE); - registerSerde(result, GetClassesList.Request.class, GetClassesListRequestPbSerde.INSTANCE); - registerSerde(result, GetClassesList.Result.class, GetClassesListResultPbSerde.INSTANCE); - registerSerde(result, GetClassInfo.Request.class, GetClassInfoRequestPbSerde.INSTANCE); - registerSerde(result, GetClassInfo.Result.class, GetClassInfoResultPbSerde.INSTANCE); - registerSerde(result, GetClassSecurities.Request.class, GetClassSecuritiesRequestPbSerde.INSTANCE); - registerSerde(result, GetClassSecurities.Result.class, GetClassSecuritiesResultPbSerde.INSTANCE); - registerSerde(result, GetDepo.Request.class, GetDepoRequestPbSerde.INSTANCE); - registerSerde(result, GetDepo.Result.class, GetDepoResultPbSerde.INSTANCE); - registerSerde(result, GetDepoEx.Request.class, GetDepoExRequestPbSerde.INSTANCE); - registerSerde(result, GetDepoEx.Result.class, GetDepoExResultPbSerde.INSTANCE); - registerSerde(result, GetFuturesHolding.Request.class, GetFuturesHoldingRequestPbSerde.INSTANCE); - registerSerde(result, GetFuturesHolding.Result.class, GetFuturesHoldingResultPbSerde.INSTANCE); - registerSerde(result, GetFuturesLimit.Request.class, GetFuturesLimitRequestPbSerde.INSTANCE); - registerSerde(result, GetFuturesLimit.Result.class, GetFuturesLimitResultPbSerde.INSTANCE); - registerSerde(result, GetInfoParam.Request.class, GetInfoParamRequestPbSerde.INSTANCE); - registerSerde(result, GetInfoParam.Result.class, GetInfoParamResultPbSerde.INSTANCE); - registerSerde(result, GetItem.Request.class, GetItemRequestPbSerde.INSTANCE); - registerSerde(result, GetItem.Result.class, GetItemResultPbSerde.INSTANCE); - registerSerde(result, GetLabelParams.Request.class, GetLabelParamsRequestPbSerde.INSTANCE); - registerSerde(result, GetLabelParams.Result.class, GetLabelParamsResultPbSerde.INSTANCE); - registerSerde(result, GetLinesCount.Request.class, GetLinesCountRequestPbSerde.INSTANCE); - registerSerde(result, GetLinesCount.Result.class, GetLinesCountResultPbSerde.INSTANCE); - registerSerde(result, GetMoney.Request.class, GetMoneyRequestPbSerde.INSTANCE); - registerSerde(result, GetMoney.Result.class, GetMoneyResultPbSerde.INSTANCE); - registerSerde(result, GetMoneyEx.Request.class, GetMoneyExRequestPbSerde.INSTANCE); - registerSerde(result, GetMoneyEx.Result.class, GetMoneyExResultPbSerde.INSTANCE); - registerSerde(result, GetNumberOf.Request.class, GetNumberOfRequestPbSerde.INSTANCE); - registerSerde(result, GetNumberOf.Result.class, GetNumberOfResultPbSerde.INSTANCE); - registerSerde(result, GetNumCandles.Request.class, GetNumCandlesRequestPbSerde.INSTANCE); - registerSerde(result, GetNumCandles.Result.class, GetNumCandlesResultPbSerde.INSTANCE); - registerSerde(result, GetOrderByNumber.Request.class, GetOrderByNumberRequestPbSerde.INSTANCE); - registerSerde(result, GetOrderByNumber.Result.class, GetOrderByNumberResultPbSerde.INSTANCE); - registerSerde(result, GetParamEx.Request.class, GetParamExRequestPbSerde.INSTANCE); - registerSerde(result, GetParamEx.Result.class, GetParamExResultPbSerde.INSTANCE); - registerSerde(result, GetParamEx2.Request.class, GetParamEx2RequestPbSerde.INSTANCE); - registerSerde(result, GetParamEx2.Result.class, GetParamEx2ResultPbSerde.INSTANCE); - registerSerde(result, GetPortfolioInfo.Request.class, GetPortfolioInfoRequestPbSerde.INSTANCE); - registerSerde(result, GetPortfolioInfo.Result.class, GetPortfolioInfoResultPbSerde.INSTANCE); - registerSerde(result, GetPortfolioInfoEx.Request.class, GetPortfolioInfoExRequestPbSerde.INSTANCE); - registerSerde(result, GetPortfolioInfoEx.Result.class, GetPortfolioInfoExResultPbSerde.INSTANCE); - registerSerde(result, GetQuoteLevel2.QuoteEntry.class, QuoteEntryPbSerde.INSTANCE); - registerSerde(result, GetQuoteLevel2.Request.class, GetQuoteLevel2RequestPbSerde.INSTANCE); - registerSerde(result, GetQuoteLevel2.Result.class, GetQuoteLevel2ResultPbSerde.INSTANCE); - registerSerde(result, GetScriptPath.Request.class, GetScriptPathRequestPbSerde.INSTANCE); - registerSerde(result, GetScriptPath.Result.class, GetScriptPathResultPbSerde.INSTANCE); - registerSerde(result, GetSecurityInfo.Request.class, GetSecurityInfoRequestPbSerde.INSTANCE); - registerSerde(result, GetSecurityInfo.Result.class, GetSecurityInfoResultPbSerde.INSTANCE); - registerSerde(result, GetTableSize.Request.class, GetTableSizeRequestPbSerde.INSTANCE); - registerSerde(result, GetTableSize.Result.class, GetTableSizeResultPbSerde.INSTANCE); - registerSerde(result, GetTradeDate.Request.class, GetTradeDateRequestPbSerde.INSTANCE); - registerSerde(result, GetTradeDate.Result.class, GetTradeDateResultPbSerde.INSTANCE); - registerSerde(result, GetWindowCaption.Request.class, GetWindowCaptionRequestPbSerde.INSTANCE); - registerSerde(result, GetWindowCaption.Result.class, GetWindowCaptionResultPbSerde.INSTANCE); - registerSerde(result, GetWindowRect.Request.class, GetWindowRectRequestPbSerde.INSTANCE); - registerSerde(result, GetWindowRect.Result.class, GetWindowRectResultPbSerde.INSTANCE); - registerSerde(result, GetWorkingFolder.Request.class, GetWorkingFolderRequestPbSerde.INSTANCE); - registerSerde(result, GetWorkingFolder.Result.class, GetWorkingFolderResultPbSerde.INSTANCE); - registerSerde(result, Highlight.Request.class, HighlightRequestPbSerde.INSTANCE); - registerSerde(result, Highlight.Result.class, HighlightResultPbSerde.INSTANCE); - registerSerde(result, InsertRow.Request.class, InsertRowRequestPbSerde.INSTANCE); - registerSerde(result, InsertRow.Result.class, InsertRowResultPbSerde.INSTANCE); - registerSerde(result, IsConnected.Request.class, IsConnectedRequestPbSerde.INSTANCE); - registerSerde(result, IsConnected.Result.class, IsConnectedResultPbSerde.INSTANCE); - registerSerde(result, IsSubscribedLevel2Quotes.Request.class, IsSubscribedLevel2QuotesRequestPbSerde.INSTANCE); - registerSerde(result, IsSubscribedLevel2Quotes.Result.class, IsSubscribedLevel2QuotesResultPbSerde.INSTANCE); - registerSerde(result, IsWindowClosed.Request.class, IsWindowClosedRequestPbSerde.INSTANCE); - registerSerde(result, IsWindowClosed.Result.class, IsWindowClosedResultPbSerde.INSTANCE); - registerSerde(result, ParamRequest.Request.class, ParamRequestRequestPbSerde.INSTANCE); - registerSerde(result, ParamRequest.Result.class, ParamRequestResultPbSerde.INSTANCE); - registerSerde(result, Message.Request.class, MessageRequestPbSerde.INSTANCE); - registerSerde(result, Message.Result.class, MessageResultPbSerde.INSTANCE); - - return result; + private static void registerDeserializer( + @NotNull final ImmutableMap.Builder, Deserializer> map, + @NotNull final Class clazz, + @NotNull final Deserializer serde) { + + map.put(clazz, serde); + } + + private static Map, Serializer> createClassToSerializerMap() { + + final ImmutableMap.Builder, Serializer> result = ImmutableMap.builder(); + + registerSerializer(result, AddColumn.Args.class, AddColumnArgsPbSerializer.INSTANCE); + registerSerializer(result, AddLabel.Args.class, AddLabelArgsPbSerializer.INSTANCE); + registerSerializer(result, CalcBuySell.Args.class, CalcBuySellArgsPbSerializer.INSTANCE); + registerSerializer(result, CancelParamRequest.Args.class, CancelParamRequestArgsPbSerializer.INSTANCE); + registerSerializer(result, Clear.Args.class, ClearArgsPbSerializer.INSTANCE); + registerSerializer(result, CreateWindow.Args.class, CreateWindowArgsPbSerializer.INSTANCE); + registerSerializer(result, DelAllLabels.Args.class, DelAllLabelsArgsPbSerializer.INSTANCE); + registerSerializer(result, DeleteRow.Args.class, DeleteRowArgsPbSerializer.INSTANCE); + registerSerializer(result, DelLabel.Args.class, DelLabelArgsPbSerializer.INSTANCE); + registerSerializer(result, DestroyTable.Args.class, DestroyTableArgsPbSerializer.INSTANCE); + registerSerializer(result, GetBuySellInfo.Args.class, GetBuySellInfoArgsPbSerializer.INSTANCE); + registerSerializer(result, GetBuySellInfoEx.Args.class, GetBuySellInfoExArgsPbSerializer.INSTANCE); + registerSerializer(result, GetCandlesByIndex.Args.class, GetCandlesByIndexArgsPbSerializer.INSTANCE); + registerSerializer(result, GetCell.Args.class, GetCellArgsPbSerializer.INSTANCE); + registerSerializer(result, GetClassInfo.Args.class, GetClassInfoArgsPbSerializer.INSTANCE); + registerSerializer(result, GetClassSecurities.Args.class, GetClassSecuritiesArgsPbSerializer.INSTANCE); + registerSerializer(result, GetDepo.Args.class, GetDepoArgsPbSerializer.INSTANCE); + registerSerializer(result, GetDepoEx.Args.class, GetDepoExArgsPbSerializer.INSTANCE); + registerSerializer(result, GetFuturesHolding.Args.class, GetFuturesHoldingArgsPbSerializer.INSTANCE); + registerSerializer(result, GetFuturesLimit.Args.class, GetFuturesLimitArgsPbSerializer.INSTANCE); + registerSerializer(result, GetInfoParam.Args.class, GetInfoParamArgsPbSerializer.INSTANCE); + registerSerializer(result, GetItem.Args.class, GetItemArgsPbSerializer.INSTANCE); + registerSerializer(result, GetLabelParams.Args.class, GetLabelParamsArgsPbSerializer.INSTANCE); + registerSerializer(result, GetLinesCount.Args.class, GetLinesCountArgsPbSerializer.INSTANCE); + registerSerializer(result, GetMoney.Args.class, GetMoneyArgsPbSerializer.INSTANCE); + registerSerializer(result, GetMoneyEx.Args.class, GetMoneyExArgsPbSerializer.INSTANCE); + registerSerializer(result, GetNumberOf.Args.class, GetNumberOfArgsPbSerializer.INSTANCE); + registerSerializer(result, GetNumCandles.Args.class, GetNumCandlesArgsPbSerializer.INSTANCE); + registerSerializer(result, GetOrderByNumber.Args.class, GetOrderByNumberArgsPbSerializer.INSTANCE); + registerSerializer(result, GetParamEx.Args.class, GetParamExArgsPbSerializer.INSTANCE); + registerSerializer(result, GetParamEx2.Args.class, GetParamEx2ArgsPbSerializer.INSTANCE); + registerSerializer(result, GetPortfolioInfo.Args.class, GetPortfolioInfoArgsPbSerializer.INSTANCE); + registerSerializer(result, GetPortfolioInfoEx.Args.class, GetPortfolioInfoExArgsPbSerializer.INSTANCE); + registerSerializer(result, GetQuoteLevel2.Args.class, GetQuoteLevel2ArgsPbSerializer.INSTANCE); + registerSerializer(result, GetSecurityInfo.Args.class, GetSecurityInfoArgsPbSerializer.INSTANCE); + registerSerializer(result, GetTableSize.Args.class, GetTableSizeArgsPbSerializer.INSTANCE); + registerSerializer(result, GetWindowCaption.Args.class, GetWindowCaptionArgsPbSerializer.INSTANCE); + registerSerializer(result, GetWindowRect.Args.class, GetWindowRectArgsPbSerializer.INSTANCE); + registerSerializer(result, Highlight.Args.class, HighlightArgsPbSerializer.INSTANCE); + registerSerializer(result, InsertRow.Args.class, InsertRowArgsPbSerializer.INSTANCE); + registerSerializer(result, IsSubscribedLevel2Quotes.Args.class, IsSubscribedLevel2QuotesArgsPbSerializer.INSTANCE); + registerSerializer(result, IsWindowClosed.Args.class, IsWindowClosedArgsPbSerializer.INSTANCE); + registerSerializer(result, ParamRequest.Args.class, ParamRequestArgsPbSerializer.INSTANCE); + registerSerializer(result, Message.Args.class, MessageArgsPbSerializer.INSTANCE); + registerSerializer(result, ParamRequest.Args.class, ParamRequestArgsPbSerializer.INSTANCE); + registerSerializer(result, PrintDbgStr.Args.class, PrintDbgStrArgsPbSerializer.INSTANCE); + registerSerializer(result, RGB.Args.class, RGBArgsPbSerializer.INSTANCE); + registerSerializer(result, SearchItems.Args.class, SearchItemsArgsPbSerializer.INSTANCE); + registerSerializer(result, SendTransaction.Args.class, SendTransactionArgsPbSerializer.INSTANCE); + registerSerializer(result, SetCell.Args.class, SetCellArgsPbSerializer.INSTANCE); + registerSerializer(result, SetColor.Args.class, SetColorArgsPbSerializer.INSTANCE); + registerSerializer(result, SetLabelParams.Args.class, SetLabelParamsArgsPbSerializer.INSTANCE); + registerSerializer(result, SetSelectedRow.Args.class, SetSelectedRowArgsPbSerializer.INSTANCE); + registerSerializer(result, SetTableNotificationCallback.Args.class, SetTableNotificationCallbackArgsPbSerializer.INSTANCE); + registerSerializer(result, SetWindowCaption.Args.class, SetWindowCaptionArgsPbSerializer.INSTANCE); + registerSerializer(result, SetWindowPos.Args.class, SetWindowPosArgsPbSerializer.INSTANCE); + registerSerializer(result, Sleep.Args.class, SleepArgsPbSerializer.INSTANCE); + registerSerializer(result, SubscribeLevel2Quotes.Args.class, SubscribeLevel2QuotesArgsPbSerializer.INSTANCE); + registerSerializer(result, UnsubscribeLevel2Quotes.Args.class, UnsubscribeLevel2QuotesArgsPbSerializer.INSTANCE); + + // FIXME: add the rest of the serializers + + return result.build(); + } + + private static Map, Deserializer> createClassToDeserializerMap() { + + final ImmutableMap.Builder, Deserializer> result = ImmutableMap.builder(); + + registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeDeserializer.INSTANCE); + registerDeserializer(result, StopEventInfo.class, StopEventInfoPbDeserializer.INSTANCE); + registerDeserializer(result, ConnectedEventInfo.class, ConnectedEventInfoPbDeserializer.INSTANCE); + registerDeserializer(result, Trade.class, TradePbDeserializer.INSTANCE); + registerDeserializer(result, Order.class, OrderPbDeserializer.INSTANCE); + registerDeserializer(result, FuturesLimitDelete.class, FuturesLimitDeletePbDeserializer.INSTANCE); + registerDeserializer(result, Firm.class, FirmPbDeserializer.INSTANCE); + registerDeserializer(result, MoneyLimit.class, MoneyLimitPbDeserializer.INSTANCE); + registerDeserializer(result, MoneyLimitDelete.class, MoneyLimitDeletePbDeserializer.INSTANCE); + registerDeserializer(result, DepoLimit.class, DepoLimitPbDeserializer.INSTANCE); + registerDeserializer(result, DepoLimitDelete.class, DepoLimitDeletePbDeserializer.INSTANCE); + registerDeserializer(result, AccountBalance.class, AccountBalancePbDeserializer.INSTANCE); + registerDeserializer(result, AccountPosition.class, AccountPositionPbDeserializer.INSTANCE); + registerDeserializer(result, NegDeal.class, NegDealPbDeserializer.INSTANCE); + registerDeserializer(result, NegTrade.class, NegTradePbDeserializer.INSTANCE); + registerDeserializer(result, StopOrder.class, StopOrderPbDeserializer.INSTANCE); + registerDeserializer(result, TransReply.class, TransReplyPbDeserializer.INSTANCE); + registerDeserializer(result, DateTimeEntry.class, DateTimeEntryPbDeserializer.INSTANCE); + registerDeserializer(result, AllTrade.class, AllTradePbDeserializer.INSTANCE); + registerDeserializer(result, FuturesClientHolding.class, FuturesClientHoldingPbDeserializer.INSTANCE); + registerDeserializer(result, FuturesLimit.class, FuturesLimitPbDeserializer.INSTANCE); + registerDeserializer(result, ParamEventInfo.class, ParamEventInfoPbDeserializer.INSTANCE); + registerDeserializer(result, QuoteEventInfo.class, QuoteEventInfoPbDeserializer.INSTANCE); + registerDeserializer(result, CandleEntry.class, CandleEntryPbDeserializer.INSTANCE); + registerDeserializer(result, ClassInfo.class, ClassInfoPbDeserializer.INSTANCE); + registerDeserializer(result, Depo.class, DepoPbDeserializer.INSTANCE); + registerDeserializer(result, Money.class, MoneyPbDeserializer.INSTANCE); + registerDeserializer(result, PortfolioInfo.class, PortfolioInfoPbDeserializer.INSTANCE); + registerDeserializer(result, Security.class, SecurityPbDeserializer.INSTANCE); + + registerDeserializer(result, AddColumn.Result.class, AddColumnResultPbDeserializer.INSTANCE); + registerDeserializer(result, AddLabel.Result.class, AddLabelResultPbDeserializer.INSTANCE); + registerDeserializer(result, AllocTable.Result.class, AllocTableResultPbDeserializer.INSTANCE); + registerDeserializer(result, CalcBuySell.Result.class, CalcBuySellResultPbDeserializer.INSTANCE); + registerDeserializer(result, CancelParamRequest.Result.class, CancelParamRequestResultPbDeserializer.INSTANCE); + registerDeserializer(result, Clear.Result.class, ClearResultPbDeserializer.INSTANCE); + registerDeserializer(result, CreateWindow.Result.class, CreateWindowResultPbDeserializer.INSTANCE); + registerDeserializer(result, DelAllLabels.Result.class, DelAllLabelsResultPbDeserializer.INSTANCE); + registerDeserializer(result, DeleteRow.Result.class, DeleteRowResultPbDeserializer.INSTANCE); + registerDeserializer(result, DelLabel.Result.class, DelLabelResultPbDeserializer.INSTANCE); + registerDeserializer(result, DestroyTable.Result.class, DestroyTableResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetBuySellInfoEx.Result.class, GetBuySellInfoExResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetBuySellInfo.Result.class, GetBuySellInfoResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetCandlesByIndex.Result.class, GetCandlesByIndexResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetCell.Result.class, GetCellResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetClassesList.Result.class, GetClassesListResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetClassInfo.Result.class, GetClassInfoResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetClassSecurities.Result.class, GetClassSecuritiesResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetDepoEx.Result.class, GetDepoExResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetDepo.Result.class, GetDepoResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetFuturesHolding.Result.class, GetFuturesHoldingResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetFuturesLimit.Result.class, GetFuturesLimitResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetInfoParam.Result.class, GetInfoParamResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetItem.Result.class, GetItemResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetLabelParams.Result.class, GetLabelParamsResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetLinesCount.Result.class, GetLinesCountResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetMoneyEx.Result.class, GetMoneyExResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetMoney.Result.class, GetMoneyResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetNumberOf.Result.class, GetNumberOfResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetNumCandles.Result.class, GetNumCandlesResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetOrderByNumber.Result.class, GetOrderByNumberResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetParamEx2.Result.class, GetParamEx2ResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetParamEx.Result.class, GetParamExResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetPortfolioInfo.Result.class, GetPortfolioInfoResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetPortfolioInfoEx.Result.class, GetPortfolioInfoExResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetQuoteLevel2.Result.class, GetQuoteLevel2ResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetScriptPath.Result.class, GetScriptPathResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetSecurityInfo.Result.class, GetSecurityInfoResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetTableSize.Result.class, GetTableSizeResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetTradeDate.Result.class, GetTradeDateResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetWindowCaption.Result.class, GetWindowCaptionResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetWindowRect.Result.class, GetWindowRectResultPbDeserializer.INSTANCE); + registerDeserializer(result, GetWorkingFolder.Result.class, GetWorkingFolderResultPbDeserializer.INSTANCE); + registerDeserializer(result, Highlight.Result.class, HighlightResultPbDeserializer.INSTANCE); + registerDeserializer(result, InsertRow.Result.class, InsertRowResultPbDeserializer.INSTANCE); + registerDeserializer(result, IsConnected.Result.class, IsConnectedResultPbDeserializer.INSTANCE); + registerDeserializer(result, IsSubscribedLevel2Quotes.Result.class, IsSubscribedLevel2QuotesResultPbDeserializer.INSTANCE); + registerDeserializer(result, IsWindowClosed.Result.class, IsWindowClosedResultPbDeserializer.INSTANCE); + registerDeserializer(result, Message.Result.class, MessageResultPbDeserializer.INSTANCE); + registerDeserializer(result, ParamRequest.Result.class, ParamRequestResultPbDeserializer.INSTANCE); + registerDeserializer(result, RGB.Result.class, RGBResultPbDeserializer.INSTANCE); + registerDeserializer(result, SearchItems.Result.class, SearchItemsResultPbDeserializer.INSTANCE); + registerDeserializer(result, SendTransaction.Result.class, SendTransactionResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetCell.Result.class, SetCellResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetColor.Result.class, SetColorResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetLabelParams.Result.class, SetLabelParamsResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetSelectedRow.Result.class, SetSelectedRowResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetTableNotificationCallback.Result.class, SetTableNotificationCallbackResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetWindowCaption.Result.class, SetWindowCaptionResultPbDeserializer.INSTANCE); + registerDeserializer(result, SetWindowPos.Result.class, SetWindowPosResultPbDeserializer.INSTANCE); + registerDeserializer(result, Sleep.Result.class, SleepResultPbDeserializer.INSTANCE); + registerDeserializer(result, SubscribeLevel2Quotes.Result.class, SubscribeLevel2QuotesResultPbDeserializer.INSTANCE); + registerDeserializer(result, UnsubscribeLevel2Quotes.Result.class, UnsubscribeLevel2QuotesResultPbDeserializer.INSTANCE); + + // FIXME: add the rest of the deserializers + + return result.build(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index f8c82f7..c287757 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -2,16 +2,15 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; import com.enfernuz.quik.lua.rpc.api.structures.*; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.google.common.base.Strings; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; +import qlua.rpc.GetDepo; +import qlua.rpc.GetMoney; +import qlua.rpc.GetPortfolioInfo; import qlua.structs.QluaStructures; import java.nio.charset.Charset; @@ -21,45 +20,45 @@ final class ProtobufSerdeUtils { static final Charset DEFAULT_PROTOBUF_CHARSET = StandardCharsets.UTF_8; - private static final PbConverter DATE_TIME_ENTRY_PB_CONVERTER = - DateTimeEntryPbSerde.INSTANCE; + private static final FromPbConverter DATE_TIME_ENTRY_PB_CONVERTER = + DateTimeEntryPbDeserializer.INSTANCE; - private static final PbConverter BUY_SELL_INFO_PB_CONVERTER = - BuySellInfoPbSerde.INSTANCE; + private static final FromPbConverter BUY_SELL_INFO_PB_CONVERTER = + BuySellInfoPbDeserializer.INSTANCE; - private static final PbConverter BUY_SELL_INFO_EX_PB_CONVERTER = - BuySellInfoExPbSerde.INSTANCE; + private static final FromPbConverter BUY_SELL_INFO_EX_PB_CONVERTER = + BuySellInfoExPbDeserializer.INSTANCE; - private static final PbConverter CANDLE_ENTRY_PB_CONVERTER = - CandleEntryPbSerde.INSTANCE; + private static final FromPbConverter CANDLE_ENTRY_PB_CONVERTER = + CandleEntryPbDeserializer.INSTANCE; - private static final PbConverter CLASS_INFO_PB_CONVERTER = - ClassInfoPbSerde.INSTANCE; + private static final FromPbConverter CLASS_INFO_PB_CONVERTER = + ClassInfoPbDeserializer.INSTANCE; - private static final PbConverter DEPO_PB_CONVERTER = DepoPbSerde.INSTANCE; + private static final FromPbConverter DEPO_PB_CONVERTER = DepoPbDeserializer.INSTANCE; - private static final PbConverter DEPO_LIMIT_PB_CONVERTER = DepoLimitPbSerde.INSTANCE; + private static final FromPbConverter DEPO_LIMIT_PB_CONVERTER = DepoLimitPbDeserializer.INSTANCE; - private static final PbConverter FUTURES_CLIENT_HOLDING_PB_CONVERTER = - FuturesClientHoldingPbSerde.INSTANCE; + private static final FromPbConverter FUTURES_CLIENT_HOLDING_PB_CONVERTER = + FuturesClientHoldingPbDeserializer.INSTANCE; - private static final PbConverter FUTURES_LIMIT_PB_CONVERTER = - FuturesLimitPbSerde.INSTANCE; + private static final FromPbConverter FUTURES_LIMIT_PB_CONVERTER = + FuturesLimitPbDeserializer.INSTANCE; - private static final PbConverter MONEY_PB_CONVERTER = MoneyPbSerde.INSTANCE; + private static final FromPbConverter MONEY_PB_CONVERTER = MoneyPbDeserializer.INSTANCE; - private static final PbConverter MONEY_LIMIT_PB_CONVERTER = - MoneyLimitPbSerde.INSTANCE; + private static final FromPbConverter MONEY_LIMIT_PB_CONVERTER = + MoneyLimitPbDeserializer.INSTANCE; - private static final PbConverter ORDER_PB_CONVERTER = OrderPbSerde.INSTANCE; + private static final FromPbConverter ORDER_PB_CONVERTER = OrderPbDeserializer.INSTANCE; - private static final PbConverter PORTFOLIO_INFO_PB_CONVERTER = - PortfolioInfoPbSerde.INSTANCE; + private static final FromPbConverter PORTFOLIO_INFO_PB_CONVERTER = + PortfolioInfoPbDeserializer.INSTANCE; - private static final PbConverter QUOTE_ENTRY_PB_CONVERTER = - QuoteEntryPbSerde.INSTANCE; + private static final FromPbConverter QUOTE_ENTRY_PB_CONVERTER = + QuoteEntryPbDeserializer.INSTANCE; - private static final PbConverter SECURITY_PB_CONVERTER = SecurityPbSerde.INSTANCE; + private static final FromPbConverter SECURITY_PB_CONVERTER = SecurityPbDeserializer.INSTANCE; @Contract(" -> fail") private ProtobufSerdeUtils() { @@ -79,159 +78,76 @@ static String convertToPbString(final String string) { @NotNull static DateTimeEntry convertFromPbDateTimeEntry(@NotNull final QluaStructures.DateTimeEntry dateTimeEntry) { - return DATE_TIME_ENTRY_PB_CONVERTER.convertFromPb(dateTimeEntry); - } - - static QluaStructures.DateTimeEntry convertToPbDateTimeEntry(@NotNull final DateTimeEntry dateTimeEntry) { - return DATE_TIME_ENTRY_PB_CONVERTER.convertToPb(dateTimeEntry); + return DATE_TIME_ENTRY_PB_CONVERTER.convert(dateTimeEntry); } @NotNull static GetBuySellInfo.BuySellInfo convertFromPbBuySellInfo(@NotNull final qlua.rpc.GetBuySellInfo.BuySellInfo buySellInfo) { - return BUY_SELL_INFO_PB_CONVERTER.convertFromPb(buySellInfo); - } - - @NotNull - static qlua.rpc.GetBuySellInfo.BuySellInfo convertToPbBuySellInfo(@NotNull final GetBuySellInfo.BuySellInfo buySellInfo) { - return BUY_SELL_INFO_PB_CONVERTER.convertToPb(buySellInfo); + return BUY_SELL_INFO_PB_CONVERTER.convert(buySellInfo); } @NotNull static GetBuySellInfoEx.BuySellInfoEx convertFromPbBuySellInfoEx(@NotNull final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { - return BUY_SELL_INFO_EX_PB_CONVERTER.convertFromPb(buySellInfoEx); - } - - @NotNull - static qlua.rpc.GetBuySellInfoEx.BuySellInfoEx convertToPbBuySellInfoEx(@NotNull final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx) { - return BUY_SELL_INFO_EX_PB_CONVERTER.convertToPb(buySellInfoEx); - } - - @NotNull - static QluaStructures.CandleEntry convertToPbCandleEntry(@NotNull final CandleEntry candleEntry) { - return CANDLE_ENTRY_PB_CONVERTER.convertToPb(candleEntry); + return BUY_SELL_INFO_EX_PB_CONVERTER.convert(buySellInfoEx); } @NotNull static CandleEntry convertFromPbCandleEntry(@NotNull final QluaStructures.CandleEntry candleEntry) { - return CANDLE_ENTRY_PB_CONVERTER.convertFromPb(candleEntry); - } - - @NotNull - static QluaStructures.Klass convertToPbClassInfo(@NotNull final ClassInfo classInfo) { - return CLASS_INFO_PB_CONVERTER.convertToPb(classInfo); + return CANDLE_ENTRY_PB_CONVERTER.convert(candleEntry); } @NotNull static ClassInfo convertFromPbClassInfo(@NotNull final QluaStructures.Klass classInfo) { - return CLASS_INFO_PB_CONVERTER.convertFromPb(classInfo); - } - - @NotNull - static qlua.rpc.GetDepo.Depo convertToPbDepo(@NotNull final Depo depo) { - return DEPO_PB_CONVERTER.convertToPb(depo); + return CLASS_INFO_PB_CONVERTER.convert(classInfo); } @NotNull static Depo convertFromPbDepo(@NotNull final qlua.rpc.GetDepo.Depo depo) { - return DEPO_PB_CONVERTER.convertFromPb(depo); - } - - @NotNull - static QluaStructures.DepoLimit convertToPbDepoLimit(@NotNull final DepoLimit depoLimit) { - return DEPO_LIMIT_PB_CONVERTER.convertToPb(depoLimit); + return DEPO_PB_CONVERTER.convert(depo); } @NotNull static DepoLimit convertFromPbDepoLimit(@NotNull final QluaStructures.DepoLimit depoLimit) { - return DEPO_LIMIT_PB_CONVERTER.convertFromPb(depoLimit); - } - - @NotNull - static QluaStructures.FuturesClientHolding convertToPbFuturesClientHolding(@NotNull final FuturesClientHolding futuresClientHolding) { - return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convertToPb(futuresClientHolding); + return DEPO_LIMIT_PB_CONVERTER.convert(depoLimit); } @NotNull static FuturesClientHolding convertFromPbFuturesClientHolding(@NotNull final QluaStructures.FuturesClientHolding futuresClientHolding) { - return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convertFromPb(futuresClientHolding); - } - - @NotNull - static QluaStructures.FuturesLimit convertToPbFuturesLimit(@NotNull final FuturesLimit futuresLimit) { - return FUTURES_LIMIT_PB_CONVERTER.convertToPb(futuresLimit); + return FUTURES_CLIENT_HOLDING_PB_CONVERTER.convert(futuresClientHolding); } @NotNull static FuturesLimit convertFromPbFuturesLimit(@NotNull final QluaStructures.FuturesLimit futuresLimit) { - return FUTURES_LIMIT_PB_CONVERTER.convertFromPb(futuresLimit); - } - - @NotNull - static qlua.rpc.GetMoney.Money convertToPbMoney(@NotNull final Money money) { - return MONEY_PB_CONVERTER.convertToPb(money); + return FUTURES_LIMIT_PB_CONVERTER.convert(futuresLimit); } @NotNull static Money convertFromPbMoney(@NotNull final qlua.rpc.GetMoney.Money money) { - return MONEY_PB_CONVERTER.convertFromPb(money); - } - - @NotNull - static QluaStructures.MoneyLimit convertToPbMoneyLimit(@NotNull final MoneyLimit moneyLimit) { - return MONEY_LIMIT_PB_CONVERTER.convertToPb(moneyLimit); + return MONEY_PB_CONVERTER.convert(money); } @NotNull static MoneyLimit convertFromPbMoneyLimit(@NotNull final QluaStructures.MoneyLimit moneyLimit) { - return MONEY_LIMIT_PB_CONVERTER.convertFromPb(moneyLimit); - } - - @NotNull - static QluaStructures.Order convertToPbOrder(@NotNull final Order order) { - return ORDER_PB_CONVERTER.convertToPb(order); + return MONEY_LIMIT_PB_CONVERTER.convert(moneyLimit); } @NotNull static Order convertFromPbOrder(@NotNull final QluaStructures.Order order) { - return ORDER_PB_CONVERTER.convertFromPb(order); - } - - @NotNull - static qlua.rpc.GetPortfolioInfo.PortfolioInfo convertToPbPortfolioInfo(@NotNull final PortfolioInfo portfolioInfo) { - return PORTFOLIO_INFO_PB_CONVERTER.convertToPb(portfolioInfo); + return ORDER_PB_CONVERTER.convert(order); } @NotNull static PortfolioInfo convertFromPbPortfolioInfo(@NotNull final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo) { - return PORTFOLIO_INFO_PB_CONVERTER.convertFromPb(portfolioInfo); - } - - @NotNull - static qlua.rpc.GetQuoteLevel2.QuoteEntry convertToPbQuoteEntry(@NotNull final GetQuoteLevel2.QuoteEntry quoteEntry) { - return QUOTE_ENTRY_PB_CONVERTER.convertToPb(quoteEntry); + return PORTFOLIO_INFO_PB_CONVERTER.convert(portfolioInfo); } @NotNull static GetQuoteLevel2.QuoteEntry convertFromPbQuoteEntry(@NotNull final qlua.rpc.GetQuoteLevel2.QuoteEntry quoteEntry) { - return QUOTE_ENTRY_PB_CONVERTER.convertFromPb(quoteEntry); - } - - @NotNull - static QluaStructures.Security convertToPbSecurity(@NotNull final Security security) { - return SECURITY_PB_CONVERTER.convertToPb(security); + return QUOTE_ENTRY_PB_CONVERTER.convert(quoteEntry); } @NotNull static Security convertFromPbSecurity(@NotNull final QluaStructures.Security security) { - return SECURITY_PB_CONVERTER.convertFromPb(security); - } - - static void assertEquals(@NotNull final RPC.ProcedureType actual, @NotNull final RPC.ProcedureType expected) { - - if (actual != expected) { - throw new SerdeException( - String.format("Неожиданный тип процедуры. Получено: %s, ожидалось: %s.", actual, expected) - ); - } + return SECURITY_PB_CONVERTER.convert(security); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbDeserializer.java new file mode 100644 index 0000000..0efa867 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbDeserializer.java @@ -0,0 +1,28 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2.QuoteEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.GetQuoteLevel2; + +enum QuoteEntryPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public QuoteEntry deserialize(final byte[] data) { + return convert(qlua.rpc.GetQuoteLevel2.QuoteEntry.parseFrom(data)); + } + + @Override + public QuoteEntry convert(@NotNull qlua.rpc.GetQuoteLevel2.QuoteEntry quoteEntry) { + + return QuoteEntry.builder() + .price( quoteEntry.getPrice() ) + .quantity( quoteEntry.getQuantity() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java deleted file mode 100644 index d02b646..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerde.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2.QuoteEntry; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -enum QuoteEntryPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final QuoteEntry quoteEntry) { - return convertToPb(quoteEntry).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public QuoteEntry deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.GetQuoteLevel2.QuoteEntry.parseFrom(data)); - } - - @Override - public QuoteEntry convertFromPb(@NotNull qlua.rpc.GetQuoteLevel2.QuoteEntry quoteEntry) { - - return QuoteEntry.builder() - .price( quoteEntry.getPrice() ) - .quantity( quoteEntry.getQuantity() ) - .build(); - } - - @Override - public qlua.rpc.GetQuoteLevel2.QuoteEntry convertToPb(@NotNull final QuoteEntry quoteEntry) { - - return qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder() - .setPrice( quoteEntry.getPrice() ) - .setQuantity( quoteEntry.getQuantity() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbDeserializer.java new file mode 100644 index 0000000..f59ffaf --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum QuoteEventInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public QuoteEventInfo deserialize(final byte[] data) { + return convert(QluaStructures.QuoteEventInfo.parseFrom(data)); + } + + @Override + public QuoteEventInfo convert(@NotNull QluaStructures.QuoteEventInfo quoteEventInfo) { + + return QuoteEventInfo.builder() + .classCode( convertFromPbString(quoteEventInfo.getClassCode()) ) + .secCode( convertFromPbString(quoteEventInfo.getSecCode()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java deleted file mode 100644 index 43ffa1d..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerde.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum QuoteEventInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final QuoteEventInfo quoteEventInfo) { - return convertToPb(quoteEventInfo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public QuoteEventInfo deserialize(final byte[] data) { - return convertFromPb(QluaStructures.QuoteEventInfo.parseFrom(data)); - } - - @Override - public QuoteEventInfo convertFromPb(@NotNull QluaStructures.QuoteEventInfo quoteEventInfo) { - - return QuoteEventInfo.builder() - .classCode( convertFromPbString(quoteEventInfo.getClassCode()) ) - .secCode( convertFromPbString(quoteEventInfo.getSecCode()) ) - .build(); - } - - @Override - public QluaStructures.QuoteEventInfo convertToPb(@NotNull final QuoteEventInfo quoteEventInfo) { - - return QluaStructures.QuoteEventInfo.newBuilder() - .setClassCode( convertToPbString(quoteEventInfo.getClassCode()) ) - .setSecCode( convertToPbString(quoteEventInfo.getSecCode()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java new file mode 100644 index 0000000..a28a926 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum RGBArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final RGB.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.RGB.Request convert(@NotNull final RGB.Args args) { + + return qlua.rpc.RGB.Request.newBuilder() + .setRed( args.getRed() ) + .setGreen( args.getGreen() ) + .setBlue( args.getBlue() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbDeserializer.java new file mode 100644 index 0000000..1c95c51 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum RGBResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public RGB.Result deserialize(final byte[] data) { + return convert( qlua.rpc.RGB.Result.parseFrom(data) ); + } + + @Override + public RGB.Result convert(@NotNull final qlua.rpc.RGB.Result result) { + return new RGB.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java new file mode 100644 index 0000000..d395286 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java @@ -0,0 +1,154 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.enfernuz.quik.lua.rpc.api.structures.RequestEnvelope; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.common.collect.ImmutableMap; +import com.google.protobuf.ByteString; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import java.util.Map; + +@RequiredArgsConstructor +public class RequestEnvelopePbSerializer implements Serializer>, ToPbConverter, qlua.rpc.RPC.Request> { + + private static final Map, RPC.ProcedureType> REMOTE_PROCEDURE_CLASS_TO_PB_PROCEDURE_TYPE_MAP = + createRemoteProcedureClassToPbProcedureTypeMap(); + + static { + assert RPC.ProcedureType.values().length == REMOTE_PROCEDURE_CLASS_TO_PB_PROCEDURE_TYPE_MAP.size(); + } + + @NonNull ProtobufSerdeModule protobufSerdeModule; + + @Override + public @NotNull byte[] serialize(@NotNull final RequestEnvelope requestEnvelope) { + return convert(requestEnvelope).toByteArray(); + } + + @Override + public @NotNull RPC.Request convert(@NotNull final RequestEnvelope requestEnvelope) { + + final qlua.rpc.RPC.Request.Builder pbRequest = qlua.rpc.RPC.Request.newBuilder(); + + pbRequest.setType( + REMOTE_PROCEDURE_CLASS_TO_PB_PROCEDURE_TYPE_MAP.get( requestEnvelope.getRemoteProcedureClass() ) + ); + + final RpcArgs args = requestEnvelope.getArgs(); + if (args != null) { + // TODO: optimization. + // The ProtobufSerdeModule::serialize method uses the GeneratedMessageV3::toByteArray method under the hood. + // We can get the ByteString instance from the GeneratedMessageV3::toByteString method right away if we use + // ToPbConverter here. Not doing so leads to doing the unnecessary work: RpcArgs -> GeneratedMessageV3 -> byte[] -> ByteString + // (while the preferred way would be: RpcArgs -> GeneratedMessageV3 -> ByteString). + // But the former way is cheap in terms of the development time, and I've opted in for it. + pbRequest.setArgs( + ByteString.copyFrom(protobufSerdeModule.serialize(args)) + ); + } + + return pbRequest.build(); + } + + private static @NotNull Map, qlua.rpc.RPC.ProcedureType> createRemoteProcedureClassToPbProcedureTypeMap() { + + final ImmutableMap.Builder, qlua.rpc.RPC.ProcedureType> result = ImmutableMap.builder(); + + result.put(AddColumn.class, RPC.ProcedureType.ADD_COLUMN); + result.put(AddLabel.class, RPC.ProcedureType.ADD_LABEL); + result.put(AllocTable.class, RPC.ProcedureType.ALLOC_TABLE); + result.put(CalcBuySell.class, RPC.ProcedureType.CALC_BUY_SELL); + result.put(CancelParamRequest.class, RPC.ProcedureType.CANCEL_PARAM_REQUEST); + result.put(Clear.class, RPC.ProcedureType.CLEAR); + result.put(CreateWindow.class, RPC.ProcedureType.CREATE_WINDOW); + result.put(DelAllLabels.class, RPC.ProcedureType.DEL_ALL_LABELS); + result.put(DeleteRow.class, RPC.ProcedureType.DELETE_ROW); + result.put(DelLabel.class, RPC.ProcedureType.DEL_LABEL); + result.put(DestroyTable.class, RPC.ProcedureType.DESTROY_TABLE); + result.put(GetBuySellInfoEx.class, RPC.ProcedureType.GET_BUY_SELL_INFO_EX); + result.put(GetBuySellInfo.class, RPC.ProcedureType.GET_BUY_SELL_INFO); + result.put(GetCandlesByIndex.class, RPC.ProcedureType.GET_CANDLES_BY_INDEX); + result.put(GetCell.class, RPC.ProcedureType.GET_CELL); + result.put(GetClassesList.class, RPC.ProcedureType.GET_CLASSES_LIST); + result.put(GetClassInfo.class, RPC.ProcedureType.GET_CLASS_INFO); + result.put(GetClassSecurities.class, RPC.ProcedureType.GET_CLASS_SECURITIES); + result.put(GetDepo.class, RPC.ProcedureType.GET_DEPO); + result.put(GetDepoEx.class, RPC.ProcedureType.GET_DEPO_EX); + result.put(GetFuturesHolding.class, RPC.ProcedureType.GET_FUTURES_HOLDING); + result.put(GetFuturesLimit.class, RPC.ProcedureType.GET_FUTURES_LIMIT); + result.put(GetInfoParam.class, RPC.ProcedureType.GET_INFO_PARAM); + result.put(GetItem.class, RPC.ProcedureType.GET_ITEM); + result.put(GetLabelParams.class, RPC.ProcedureType.GET_LABEL_PARAMS); + result.put(GetLinesCount.class, RPC.ProcedureType.GET_LINES_COUNT); + result.put(GetMoney.class, RPC.ProcedureType.GET_MONEY); + result.put(GetMoneyEx.class, RPC.ProcedureType.GET_MONEY_EX); + result.put(GetNumberOf.class, RPC.ProcedureType.GET_NUMBER_OF); + result.put(GetNumCandles.class, RPC.ProcedureType.GET_NUM_CANDLES); + result.put(GetOrderByNumber.class, RPC.ProcedureType.GET_ORDER_BY_NUMBER); + result.put(GetParamEx.class, RPC.ProcedureType.GET_PARAM_EX); + result.put(GetParamEx2.class, RPC.ProcedureType.GET_PARAM_EX_2); + result.put(GetPortfolioInfo.class, RPC.ProcedureType.GET_PORTFOLIO_INFO); + result.put(GetPortfolioInfoEx.class, RPC.ProcedureType.GET_PORTFOLIO_INFO_EX); + result.put(GetQuoteLevel2.class, RPC.ProcedureType.GET_QUOTE_LEVEL2); + result.put(GetScriptPath.class, RPC.ProcedureType.GET_SCRIPT_PATH); + result.put(GetSecurityInfo.class, RPC.ProcedureType.GET_SECURITY_INFO); + result.put(GetTableSize.class, RPC.ProcedureType.GET_TABLE_SIZE); + result.put(GetTradeDate.class, RPC.ProcedureType.GET_TRADE_DATE); + result.put(GetWindowCaption.class, RPC.ProcedureType.GET_WINDOW_CAPTION); + result.put(GetWindowRect.class, RPC.ProcedureType.GET_WINDOW_RECT); + result.put(GetWorkingFolder.class, RPC.ProcedureType.GET_WORKING_FOLDER); + result.put(Highlight.class, RPC.ProcedureType.HIGHLIGHT); + result.put(InsertRow.class, RPC.ProcedureType.INSERT_ROW); + result.put(IsConnected.class, RPC.ProcedureType.IS_CONNECTED); + result.put(IsSubscribedLevel2Quotes.class, RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES); + result.put(IsWindowClosed.class, RPC.ProcedureType.IS_WINDOW_CLOSED); + result.put(Message.class, RPC.ProcedureType.MESSAGE); + result.put(ParamRequest.class, RPC.ProcedureType.PARAM_REQUEST); + result.put(PrintDbgStr.class, RPC.ProcedureType.PRINT_DBG_STR); + result.put(RGB.class, RPC.ProcedureType.RGB); + result.put(SearchItems.class, RPC.ProcedureType.SEARCH_ITEMS); + result.put(SendTransaction.class, RPC.ProcedureType.SEND_TRANSACTION); + result.put(SetCell.class, RPC.ProcedureType.SET_CELL); + result.put(SetColor.class, RPC.ProcedureType.SET_COLOR); + result.put(SetLabelParams.class, RPC.ProcedureType.SET_LABEL_PARAMS); + result.put(SetSelectedRow.class, RPC.ProcedureType.SET_SELECTED_ROW); + result.put(SetTableNotificationCallback.class, RPC.ProcedureType.SET_TABLE_NOTIFICATION_CALLBACK); + result.put(SetWindowCaption.class, RPC.ProcedureType.SET_WINDOW_CAPTION); + result.put(SetWindowPos.class, RPC.ProcedureType.SET_WINDOW_POS); + result.put(Sleep.class, RPC.ProcedureType.SLEEP); + result.put(SubscribeLevel2Quotes.class, RPC.ProcedureType.SUBSCRIBE_LEVEL_II_QUOTES); + result.put(UnsubscribeLevel2Quotes.class, RPC.ProcedureType.UNSUBSCRIBE_LEVEL_II_QUOTES); + + result.put(BAnd.class, RPC.ProcedureType.BIT_BAND); + result.put(BNot.class, RPC.ProcedureType.BIT_BNOT); + result.put(BOr.class, RPC.ProcedureType.BIT_BOR); + result.put(BXor.class, RPC.ProcedureType.BIT_BXOR); + result.put(Test.class, RPC.ProcedureType.BIT_TEST); + result.put(ToHex.class, RPC.ProcedureType.BIT_TOHEX); + + result.put(C.class, RPC.ProcedureType.DS_C); + result.put(Close.class, RPC.ProcedureType.DS_CLOSE); + result.put(CreateDataSource.class, RPC.ProcedureType.CREATE_DATA_SOURCE); + result.put(H.class, RPC.ProcedureType.DS_H); + result.put(L.class, RPC.ProcedureType.DS_L); + result.put(O.class, RPC.ProcedureType.DS_O); + result.put(SetEmptyCallback.class, RPC.ProcedureType.DS_SET_EMPTY_CALLBACK); + result.put(SetUpdateCallback.class, RPC.ProcedureType.DS_SET_UPDATE_CALLBACK); + result.put(Size.class, RPC.ProcedureType.DS_SIZE); + result.put(T.class, RPC.ProcedureType.DS_T); + result.put(V.class, RPC.ProcedureType.DS_V); + + result.put(SysDate.class, RPC.ProcedureType.OS_SYSDATE); + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbDeserializer.java new file mode 100644 index 0000000..f94c414 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum ResponseEnvelopePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ResponseEnvelope deserialize(final byte[] data) { + return convert(qlua.rpc.RPC.Response.parseFrom(data)); + } + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ResponseEnvelope convert(@NotNull qlua.rpc.RPC.Response response) { + + if (response.getIsError()) { + final qlua.rpc.RPC.Error pbError = qlua.rpc.RPC.Error.parseFrom(response.getResult()); + return ResponseEnvelope.withError( + new ServiceError(pbError.getCode(), convertFromPbString(pbError.getMessage())) + ); + } else { + return ResponseEnvelope.withResult( response.getResult().toByteArray() ); + } + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java deleted file mode 100644 index f4ef45e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerde.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum ResponseEnvelopePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ResponseEnvelope responseEnvelope) { - return convertToPb(responseEnvelope).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ResponseEnvelope deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.RPC.Response.parseFrom(data)); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ResponseEnvelope convertFromPb(@NotNull qlua.rpc.RPC.Response response) { - - if (response.getIsError()) { - final qlua.rpc.RPC.Error pbError = qlua.rpc.RPC.Error.parseFrom(response.getResult()); - return ResponseEnvelope.withError( - new ServiceError(pbError.getCode(), convertFromPbString(pbError.getMessage())) - ); - } else { - return ResponseEnvelope.withResult( response.getResult().toByteArray() ); - } - } - - @Override - public qlua.rpc.RPC.Response convertToPb(@NotNull final ResponseEnvelope responseEnvelope) { - - final ServiceError serviceError = responseEnvelope.getError(); - final ByteString result; - boolean isError = false; - if (serviceError == null) { - result = ByteString.copyFrom(responseEnvelope.getResult()); - } else { - isError = true; - result = qlua.rpc.RPC.Error.newBuilder() - .setCode( serviceError.getCode() ) - .setMessage( convertToPbString(serviceError.getMessage()) ) - .build() - .toByteString(); - } - - return qlua.rpc.RPC.Response.newBuilder() - .setIsError(isError) - .setResult(result) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerializer.java new file mode 100644 index 0000000..ed04a7e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerializer.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SearchItemsArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @Override + public @NotNull byte[] serialize(@NotNull final SearchItems.Args args) { + return convert(args).toByteArray(); + } + + @Override + public @NotNull qlua.rpc.SearchItems.Request convert(@NotNull final SearchItems.Args args) { + + final qlua.rpc.SearchItems.Request.Builder result = + qlua.rpc.SearchItems.Request.newBuilder() + .setTableName( args.getTableName() ) + .setStartIndex( args.getStartIndex() ) + .setFnDef( args.getFnDef() ); + + final Integer endIndex = args.getEndIndex(); + if (endIndex == null) { + result.setNullEndIndex(true); + } else { + result.setValueEndIndex(endIndex); + } + + final String params = args.getParams(); + if (params != null) { + result.setParams(params); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java new file mode 100644 index 0000000..eddecdd --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SearchItemsResultPbDeserializer implements Deserializer, FromPbConverter{ + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SearchItems.Result deserialize(final byte[] data) { + return convert( qlua.rpc.SearchItems.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SearchItems.Result convert(@NotNull final qlua.rpc.SearchItems.Result result) { + + return SearchItems.Result.getInstance( + result.getItemsIndicesList().stream() + .mapToInt(Integer::intValue) + .toArray() + ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbDeserializer.java new file mode 100644 index 0000000..be7a79c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbDeserializer.java @@ -0,0 +1,40 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum SecurityPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Security deserialize(final byte[] data) { + return convert(QluaStructures.Security.parseFrom(data)); + } + + @Override + public Security convert(@NotNull QluaStructures.Security security) { + + return Security.builder() + .code( convertFromPbString(security.getCode()) ) + .name( convertFromPbString(security.getName()) ) + .shortName( convertFromPbString(security.getShortName()) ) + .classCode( convertFromPbString(security.getClassCode()) ) + .className( convertFromPbString(security.getClassName()) ) + .faceValue( convertFromPbString(security.getFaceValue()) ) + .faceUnit( convertFromPbString(security.getFaceUnit()) ) + .scale( convertFromPbString(security.getScale()) ) + .matDate( convertFromPbString(security.getMatDate()) ) + .lotSize( convertFromPbString(security.getLotSize()) ) + .isinCode( convertFromPbString(security.getIsinCode()) ) + .minPriceStep( convertFromPbString(security.getMinPriceStep()) ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java deleted file mode 100644 index 954186e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerde.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Security; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum SecurityPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Security security) { - return convertToPb(security).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Security deserialize(final byte[] data) { - return convertFromPb(QluaStructures.Security.parseFrom(data)); - } - - @Override - public Security convertFromPb(@NotNull QluaStructures.Security security) { - - return Security.builder() - .code( convertFromPbString(security.getCode()) ) - .name( convertFromPbString(security.getName()) ) - .shortName( convertFromPbString(security.getShortName()) ) - .classCode( convertFromPbString(security.getClassCode()) ) - .className( convertFromPbString(security.getClassName()) ) - .faceValue( convertFromPbString(security.getFaceValue()) ) - .faceUnit( convertFromPbString(security.getFaceUnit()) ) - .scale( convertFromPbString(security.getScale()) ) - .matDate( convertFromPbString(security.getMatDate()) ) - .lotSize( convertFromPbString(security.getLotSize()) ) - .isinCode( convertFromPbString(security.getIsinCode()) ) - .minPriceStep( convertFromPbString(security.getMinPriceStep()) ) - .build(); - } - - @Override - public QluaStructures.Security convertToPb(@NotNull final Security security) { - - return QluaStructures.Security.newBuilder() - .setCode( convertToPbString(security.getCode()) ) - .setName( convertToPbString(security.getName()) ) - .setShortName( convertToPbString(security.getShortName()) ) - .setClassCode( convertToPbString(security.getClassCode()) ) - .setClassName( convertToPbString(security.getClassName()) ) - .setFaceValue( convertToPbString(security.getFaceValue()) ) - .setFaceUnit( convertToPbString(security.getFaceUnit()) ) - .setScale( convertToPbString(security.getScale()) ) - .setMatDate( convertToPbString(security.getMatDate()) ) - .setLotSize( convertToPbString(security.getLotSize()) ) - .setIsinCode( convertToPbString(security.getIsinCode()) ) - .setMinPriceStep( convertToPbString(security.getMinPriceStep()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java new file mode 100644 index 0000000..e2ce076 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SendTransactionArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SendTransaction.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SendTransaction.Request convert(@NotNull final SendTransaction.Args args) { + + return qlua.rpc.SendTransaction.Request.newBuilder() + .putAllTransaction( args.getTransaction() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbDeserializer.java new file mode 100644 index 0000000..2bf88d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SendTransactionResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SendTransaction.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SendTransaction.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SendTransaction.Result convert(@NotNull final qlua.rpc.SendTransaction.Result result) { + return new SendTransaction.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbDeserializer.java new file mode 100644 index 0000000..0a08e55 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.ServiceError; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.RPC; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum ServiceErrorPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ServiceError deserialize(final byte[] data) { + return convert(qlua.rpc.RPC.Error.parseFrom(data)); + } + + @Override + public ServiceError convert(@NotNull qlua.rpc.RPC.Error error) { + return new ServiceError(error.getCode(), convertFromPbString(error.getMessage())); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java deleted file mode 100644 index a466d5e..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerde.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; - -enum ServiceErrorPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final ServiceError serviceError) { - return convertToPb(serviceError).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public ServiceError deserialize(final byte[] data) { - return convertFromPb(qlua.rpc.RPC.Error.parseFrom(data)); - } - - @Override - public ServiceError convertFromPb(@NotNull qlua.rpc.RPC.Error error) { - return new ServiceError(error.getCode(), convertFromPbString(error.getMessage())); - } - - @Override - public qlua.rpc.RPC.Error convertToPb(@NotNull final ServiceError serviceError) { - return qlua.rpc.RPC.Error.newBuilder() - .setCode( serviceError.getCode() ) - .setMessage( convertToPbString(serviceError.getMessage()) ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java new file mode 100644 index 0000000..6bf7f97 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetCellArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetCell.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetCell.Request convert(@NotNull final SetCell.Args args) { + + final qlua.rpc.SetCell.Request.Builder result = + qlua.rpc.SetCell.Request.newBuilder() + .setTId( args.getTId() ) + .setKey( args.getKey() ) + .setCode( args.getCode() ) + .setText( args.getText() ); + + final Number value = args.getValue(); + if (value != null) { + result.setValue( args.getValue().doubleValue() ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbDeserializer.java new file mode 100644 index 0000000..c38d5aa --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetCellResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetCell.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetCell.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetCell.Result convert(@NotNull final qlua.rpc.SetCell.Result result) { + return SetCell.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java new file mode 100644 index 0000000..5da5ccb --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java @@ -0,0 +1,31 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetColorArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetColor.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetColor.Request convert(@NotNull final SetColor.Args args) { + + return qlua.rpc.SetColor.Request.newBuilder() + .setTId( args.getTId() ) + .setRow( args.getRow() ) + .setCol( args.getCol() ) + .setBColor( args.getbColor() ) + .setFColor( args.getfColor() ) + .setSelBColor( args.getSelBColor() ) + .setSelFColor( args.getSelFColor() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbDeserializer.java new file mode 100644 index 0000000..9f1f6ed --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetColorResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetColor.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetColor.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetColor.Result convert(@NotNull final qlua.rpc.SetColor.Result result) { + return SetColor.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java new file mode 100644 index 0000000..197b696 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetLabelParamsArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetLabelParams.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetLabelParams.Request convert(@NotNull final SetLabelParams.Args args) { + + return qlua.rpc.SetLabelParams.Request.newBuilder() + .setChartTag( args.getChartTag() ) + .setLabelId( args.getLabelId() ) + .putAllLabelParams( args.getLabelParams() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbDeserializer.java new file mode 100644 index 0000000..768b307 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetLabelParamsResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetLabelParams.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetLabelParams.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetLabelParams.Result convert(@NotNull final qlua.rpc.SetLabelParams.Result result) { + return SetLabelParams.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java new file mode 100644 index 0000000..78de533 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetSelectedRowArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetSelectedRow.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetSelectedRow.Request convert(@NotNull final SetSelectedRow.Args args) { + + return qlua.rpc.SetSelectedRow.Request.newBuilder() + .setTableId( args.getTableId() ) + .setRow( args.getRow() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbDeserializer.java new file mode 100644 index 0000000..073b046 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetSelectedRowResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetSelectedRow.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetSelectedRow.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetSelectedRow.Result convert(@NotNull final qlua.rpc.SetSelectedRow.Result result) { + return SetSelectedRow.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java new file mode 100644 index 0000000..3e22d87 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetTableNotificationCallbackArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetTableNotificationCallback.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetTableNotificationCallback.Request convert(@NotNull final SetTableNotificationCallback.Args args) { + + return qlua.rpc.SetTableNotificationCallback.Request.newBuilder() + .setTId( args.getTId() ) + .setFCbDef( args.getFunctionCallbackDefinition() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbDeserializer.java new file mode 100644 index 0000000..b7d3bcc --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetTableNotificationCallbackResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetTableNotificationCallback.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetTableNotificationCallback.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetTableNotificationCallback.Result convert(@NotNull final qlua.rpc.SetTableNotificationCallback.Result result) { + return SetTableNotificationCallback.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java new file mode 100644 index 0000000..b6ed249 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetWindowCaption.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetWindowCaption.Request convert(@NotNull final SetWindowCaption.Args args) { + + return qlua.rpc.SetWindowCaption.Request.newBuilder() + .setTId( args.getTId() ) + .setStr( args.getStr() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbDeserializer.java new file mode 100644 index 0000000..41a8246 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetWindowCaptionResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetWindowCaption.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetWindowCaption.Result.parseFrom(data) ); + } + + @Override + public SetWindowCaption.Result convert(@NotNull final qlua.rpc.SetWindowCaption.Result result) { + return SetWindowCaption.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java new file mode 100644 index 0000000..f7b3df9 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SetWindowPosArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetWindowPos.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.SetWindowPos.Request convert(@NotNull final SetWindowPos.Args args) { + + return qlua.rpc.SetWindowPos.Request.newBuilder() + .setTId( args.getTId() ) + .setX( args.getX() ) + .setY( args.getY() ) + .setDx( args.getDX() ) + .setDy( args.getDY() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbDeserializer.java new file mode 100644 index 0000000..b13e7cc --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SetWindowPosResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetWindowPos.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.SetWindowPos.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetWindowPos.Result convert(@NotNull final qlua.rpc.SetWindowPos.Result result) { + return SetWindowPos.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java new file mode 100644 index 0000000..8ceb697 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum SleepArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final Sleep.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.Sleep.Request convert(@NotNull final Sleep.Args args) { + + return qlua.rpc.Sleep.Request.newBuilder() + .setTime( args.getTime() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbDeserializer.java new file mode 100644 index 0000000..a1491c2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbDeserializer.java @@ -0,0 +1,29 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum SleepResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Sleep.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.Sleep.Result.parseFrom(data) ); + } + + @NotNull + @Override + public Sleep.Result convert(@NotNull final qlua.rpc.Sleep.Result result) { + + return result.getNullResult() ? + Sleep.Result.getErrorInstance() + : + Sleep.Result.getInstance( result.getValueResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbDeserializer.java new file mode 100644 index 0000000..41e6cb4 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbDeserializer.java @@ -0,0 +1,24 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum StopEventInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public StopEventInfo deserialize(final byte[] data) { + return convert(QluaStructures.StopEventInfo.parseFrom(data)); + } + + @Override + public StopEventInfo convert(@NotNull QluaStructures.StopEventInfo stopEventInfo) { + return StopEventInfo.getInstance( stopEventInfo.getFlag() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java deleted file mode 100644 index 22b72fa..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerde.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -enum StopEventInfoPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final StopEventInfo stopEventInfo) { - return convertToPb(stopEventInfo).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public StopEventInfo deserialize(final byte[] data) { - return convertFromPb(QluaStructures.StopEventInfo.parseFrom(data)); - } - - @Override - public StopEventInfo convertFromPb(@NotNull QluaStructures.StopEventInfo stopEventInfo) { - return new StopEventInfo( stopEventInfo.getSignal() ); - } - - @Override - public QluaStructures.StopEventInfo convertToPb(@NotNull final StopEventInfo stopEventInfo) { - - return QluaStructures.StopEventInfo.newBuilder() - .setSignal( stopEventInfo.getSignal() ) - .build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbDeserializer.java new file mode 100644 index 0000000..5013833 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbDeserializer.java @@ -0,0 +1,72 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum StopOrderPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public StopOrder deserialize(final byte[] data) { + return convert(QluaStructures.StopOrder.parseFrom(data)); + } + + @Override + public StopOrder convert(@NotNull QluaStructures.StopOrder stopOrder) { + + final StopOrder.StopOrderBuilder result = StopOrder.builder() + .orderNum( stopOrder.getOrderNum() ) + .orderTime( convertFromPbString(stopOrder.getOrdertime()) ) + .flags( stopOrder.getFlags() ) + .brokerRef( convertFromPbString(stopOrder.getBrokerref()) ) + .firmId( convertFromPbString(stopOrder.getFirmid()) ) + .account( convertFromPbString(stopOrder.getAccount()) ) + .condition( stopOrder.getCondition() ) + .conditionPrice( convertFromPbString(stopOrder.getConditionPrice()) ) + .price( convertFromPbString(stopOrder.getPrice()) ) + .qty( stopOrder.getQty() ) + .linkedOrder( convertFromPbString(stopOrder.getLinkedorder()) ) + .expiry( convertFromPbString(stopOrder.getExpiry()) ) + .transId( convertFromPbString(stopOrder.getTransId()) ) + .clientCode( convertFromPbString(stopOrder.getClientCode()) ) + .coOrderNum( convertFromPbString(stopOrder.getCoOrderNum()) ) + .coOrderPrice( convertFromPbString(stopOrder.getCoOrderPrice()) ) + .stopOrderType( stopOrder.getStopOrderType() ) + .orderDate( convertFromPbString(stopOrder.getOrderdate()) ) + .allTradeNum( convertFromPbString(stopOrder.getAlltradeNum()) ) + .stopFlags( stopOrder.getStopflags() ) + .offset( convertFromPbString(stopOrder.getOffset()) ) + .spread( convertFromPbString(stopOrder.getSpread()) ) + .balance( convertFromPbString(stopOrder.getBalance()) ) + .uid( convertFromPbString(stopOrder.getUid()) ) + .filledQty( stopOrder.getFilledQty() ) + .withdrawTime( convertFromPbString(stopOrder.getWithdrawTime()) ) + .conditionPrice2( convertFromPbString(stopOrder.getConditionPrice2()) ) + .activeFromTime( convertFromPbString(stopOrder.getActiveFromTime()) ) + .activeToTime( convertFromPbString(stopOrder.getActiveToTime()) ) + .secCode( convertFromPbString(stopOrder.getSecCode()) ) + .classCode( convertFromPbString(stopOrder.getClassCode()) ) + .conditionSecCode( convertFromPbString(stopOrder.getConditionSecCode()) ) + .conditionClassCode( convertFromPbString(stopOrder.getConditionClassCode()) ) + .canceledUid( convertFromPbString(stopOrder.getCanceledUid()) ); + + if (stopOrder.hasOrderDateTime()) { + result.orderDateTime( convertFromPbDateTimeEntry(stopOrder.getOrderDateTime()) ); + } + + if (stopOrder.hasWithdrawDatetime()) { + result.withdrawDateTime( convertFromPbDateTimeEntry(stopOrder.getWithdrawDatetime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java deleted file mode 100644 index 90f8960..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerde.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum StopOrderPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final StopOrder stopOrder) { - return convertToPb(stopOrder).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public StopOrder deserialize(final byte[] data) { - return convertFromPb(QluaStructures.StopOrder.parseFrom(data)); - } - - @Override - public StopOrder convertFromPb(@NotNull QluaStructures.StopOrder stopOrder) { - - final StopOrder.StopOrderBuilder result = StopOrder.builder() - .orderNum( stopOrder.getOrderNum() ) - .orderTime( convertFromPbString(stopOrder.getOrdertime()) ) - .flags( stopOrder.getFlags() ) - .brokerRef( convertFromPbString(stopOrder.getBrokerref()) ) - .firmId( convertFromPbString(stopOrder.getFirmid()) ) - .account( convertFromPbString(stopOrder.getAccount()) ) - .condition( stopOrder.getCondition() ) - .conditionPrice( convertFromPbString(stopOrder.getConditionPrice()) ) - .price( convertFromPbString(stopOrder.getPrice()) ) - .qty( stopOrder.getQty() ) - .linkedOrder( convertFromPbString(stopOrder.getLinkedorder()) ) - .expiry( convertFromPbString(stopOrder.getExpiry()) ) - .transId( convertFromPbString(stopOrder.getTransId()) ) - .clientCode( convertFromPbString(stopOrder.getClientCode()) ) - .coOrderNum( convertFromPbString(stopOrder.getCoOrderNum()) ) - .coOrderPrice( convertFromPbString(stopOrder.getCoOrderPrice()) ) - .stopOrderType( stopOrder.getStopOrderType() ) - .orderDate( convertFromPbString(stopOrder.getOrderdate()) ) - .allTradeNum( convertFromPbString(stopOrder.getAlltradeNum()) ) - .stopFlags( stopOrder.getStopflags() ) - .offset( convertFromPbString(stopOrder.getOffset()) ) - .spread( convertFromPbString(stopOrder.getSpread()) ) - .balance( convertFromPbString(stopOrder.getBalance()) ) - .uid( convertFromPbString(stopOrder.getUid()) ) - .filledQty( stopOrder.getFilledQty() ) - .withdrawTime( convertFromPbString(stopOrder.getWithdrawTime()) ) - .conditionPrice2( convertFromPbString(stopOrder.getConditionPrice2()) ) - .activeFromTime( convertFromPbString(stopOrder.getActiveFromTime()) ) - .activeToTime( convertFromPbString(stopOrder.getActiveToTime()) ) - .secCode( convertFromPbString(stopOrder.getSecCode()) ) - .classCode( convertFromPbString(stopOrder.getClassCode()) ) - .conditionSecCode( convertFromPbString(stopOrder.getConditionSecCode()) ) - .conditionClassCode( convertFromPbString(stopOrder.getConditionClassCode()) ) - .canceledUid( convertFromPbString(stopOrder.getCanceledUid()) ); - - if (stopOrder.hasOrderDateTime()) { - result.orderDateTime( convertFromPbDateTimeEntry(stopOrder.getOrderDateTime()) ); - } - - if (stopOrder.hasWithdrawDatetime()) { - result.withdrawDateTime( convertFromPbDateTimeEntry(stopOrder.getWithdrawDatetime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.StopOrder convertToPb(@NotNull final StopOrder stopOrder) { - - final QluaStructures.StopOrder.Builder result = QluaStructures.StopOrder.newBuilder() - .setOrderNum( stopOrder.getOrderNum() ) - .setOrdertime( convertToPbString(stopOrder.getOrderTime()) ) - .setFlags( stopOrder.getFlags() ) - .setBrokerref( convertToPbString(stopOrder.getBrokerRef()) ) - .setFirmid( convertToPbString(stopOrder.getFirmId()) ) - .setAccount( convertToPbString(stopOrder.getAccount()) ) - .setCondition( stopOrder.getCondition() ) - .setConditionPrice( convertToPbString(stopOrder.getConditionPrice()) ) - .setPrice( convertToPbString(stopOrder.getPrice()) ) - .setQty( stopOrder.getQty() ) - .setLinkedorder( convertToPbString(stopOrder.getLinkedOrder()) ) - .setExpiry( convertToPbString(stopOrder.getExpiry()) ) - .setTransId( convertToPbString(stopOrder.getTransId()) ) - .setClientCode( convertToPbString(stopOrder.getClientCode()) ) - .setCoOrderNum( convertToPbString(stopOrder.getCoOrderNum()) ) - .setCoOrderPrice( convertToPbString(stopOrder.getCoOrderPrice()) ) - .setStopOrderType( stopOrder.getStopOrderType() ) - .setOrderdate( convertToPbString(stopOrder.getOrderDate()) ) - .setAlltradeNum( convertToPbString(stopOrder.getAllTradeNum()) ) - .setStopflags( stopOrder.getStopFlags() ) - .setOffset( convertToPbString(stopOrder.getOffset()) ) - .setSpread( convertToPbString(stopOrder.getSpread()) ) - .setBalance( convertToPbString(stopOrder.getBalance()) ) - .setUid( convertToPbString(stopOrder.getUid()) ) - .setFilledQty( stopOrder.getFilledQty() ) - .setWithdrawTime( convertToPbString(stopOrder.getWithdrawTime()) ) - .setConditionPrice2( convertToPbString(stopOrder.getConditionPrice2()) ) - .setActiveFromTime( convertToPbString(stopOrder.getActiveFromTime()) ) - .setActiveToTime( convertToPbString(stopOrder.getActiveToTime()) ) - .setSecCode( convertToPbString(stopOrder.getSecCode()) ) - .setClassCode( convertToPbString(stopOrder.getClassCode()) ) - .setConditionSecCode( convertToPbString(stopOrder.getConditionSecCode()) ) - .setConditionClassCode( convertToPbString(stopOrder.getConditionClassCode()) ) - .setCanceledUid( convertToPbString(stopOrder.getCanceledUid()) ); - - final DateTimeEntry orderDateTime = stopOrder.getOrderDateTime(); - if (orderDateTime != null) { - result.setOrderDateTime( convertToPbDateTimeEntry(orderDateTime) ); - } - - final DateTimeEntry withdrawDateTime = stopOrder.getWithdrawDateTime(); - if (withdrawDateTime != null) { - result.setWithdrawDatetime( convertToPbDateTimeEntry(withdrawDateTime) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java new file mode 100644 index 0000000..3dc4075 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.SubscribeLevelIIQuotes; + +enum SubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SubscribeLevel2Quotes.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public SubscribeLevelIIQuotes.Request convert(@NotNull final SubscribeLevel2Quotes.Args args) { + + return SubscribeLevelIIQuotes.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbDeserializer.java new file mode 100644 index 0000000..bccf43d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.SubscribeLevelIIQuotes; + +enum SubscribeLevel2QuotesResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SubscribeLevel2Quotes.Result deserialize(@NotNull final byte[] data) { + return convert( SubscribeLevelIIQuotes.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SubscribeLevel2Quotes.Result convert(@NotNull final SubscribeLevelIIQuotes.Result result) { + return SubscribeLevel2Quotes.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ToPbConverter.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ToPbConverter.java new file mode 100644 index 0000000..db9e782 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ToPbConverter.java @@ -0,0 +1,21 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.google.protobuf.GeneratedMessageV3; + +/** + * Интерфейс компонента для преобразования экземпляров классов классов фреймворка в экземпляры соответствующих классов, + * сгенерированных protobuf-плагином. + * + * @param класс, сгенерированный protobuf-плагином + * @param класс фреймворка, соответствующий классу, сгененированному protobuf-плагином + */ +public interface ToPbConverter { + + /** + * Конвертирует экземпляр класс фреймворка в экземпляр соответствующего класса, сгенерированного protobuf-плагином. + * + * @param domainObject экземпляр класса фреймворка + * @return экземпляр соответствующего класса, сгенерированного protobuf-плагином + */ + PB_OBJECT convert(DOMAIN_OBJECT domainObject); +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbDeserializer.java new file mode 100644 index 0000000..fce006d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbDeserializer.java @@ -0,0 +1,84 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.Trade; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum TradePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Trade deserialize(final byte[] data) { + return convert(QluaStructures.Trade.parseFrom(data)); + } + + @Override + public Trade convert(@NotNull QluaStructures.Trade trade) { + + final Trade.TradeBuilder result = Trade.builder() + .tradeNum( trade.getTradeNum() ) + .orderNum( trade.getOrderNum() ) + .brokerRef( convertFromPbString(trade.getBrokerref()) ) + .userId( convertFromPbString(trade.getUserid()) ) + .firmId( convertFromPbString(trade.getFirmid()) ) + .canceledUid( convertFromPbString(trade.getCanceledUid()) ) + .account( convertFromPbString(trade.getAccount()) ) + .price( convertFromPbString(trade.getPrice()) ) + .qty( trade.getQty() ) + .value( convertFromPbString(trade.getValue()) ) + .accruedInt( convertFromPbString(trade.getAccruedint()) ) + .yield( convertFromPbString(trade.getYield()) ) + .settleCode( convertFromPbString(trade.getSettlecode()) ) + .cpFirmId( convertFromPbString(trade.getCpfirmid()) ) + .flags( trade.getFlags() ) + .price2( convertFromPbString(trade.getPrice2()) ) + .repoRate( convertFromPbString(trade.getReporate()) ) + .clientCode( convertFromPbString(trade.getClientCode()) ) + .accrued2( convertFromPbString(trade.getAccrued2()) ) + .repoTerm( convertFromPbString(trade.getRepoterm()) ) + .repoValue( convertFromPbString(trade.getRepovalue()) ) + .repo2Value( convertFromPbString(trade.getRepo2Value()) ) + .startDiscount( convertFromPbString(trade.getStartDiscount()) ) + .lowerDiscount( convertFromPbString(trade.getLowerDiscount()) ) + .upperDiscount( convertFromPbString(trade.getUpperDiscount()) ) + .blockSecurities( convertFromPbString(trade.getBlockSecurities()) ) + .clearingComission( convertFromPbString(trade.getClearingComission()) ) + .exchangeComission( convertFromPbString(trade.getExchangeComission()) ) + .techCenterComission( convertFromPbString(trade.getTechCenterComission()) ) + .settleDate( convertFromPbString(trade.getSettleDate()) ) + .settleCurrency( convertFromPbString(trade.getSettleCurrency()) ) + .tradeCurrency( convertFromPbString(trade.getTradeCurrency()) ) + .exchangeCode( convertFromPbString(trade.getExchangeCode()) ) + .stationId( convertFromPbString(trade.getStationId()) ) + .secCode( convertFromPbString(trade.getSecCode()) ) + .classCode( convertFromPbString(trade.getClassCode()) ) + .bankAccId( convertFromPbString(trade.getBankAccId()) ) + .brokerComission( convertFromPbString(trade.getBrokerComission()) ) + .linkedTrade( convertFromPbString(trade.getLinkedTrade()) ) + .period( trade.getPeriod() ) + .transId( convertFromPbString(trade.getTransId()) ) + .kind( trade.getKind() ) + .clearingBankAccId( convertFromPbString(trade.getClearingBankAccid()) ) + .clearingFirmId( convertFromPbString(trade.getClearingFirmid()) ) + .systemRef( convertFromPbString(trade.getSystemRef()) ) + .uid( convertFromPbString(trade.getUid()) ); + + if (trade.hasDatetime()) { + result.datetime( convertFromPbDateTimeEntry(trade.getDatetime()) ); + } + + if (trade.hasCanceledDatetime()) { + result.canceledDatetime( convertFromPbDateTimeEntry(trade.getCanceledDatetime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java deleted file mode 100644 index 19f0a45..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerde.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Trade; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import java.util.Objects; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum TradePbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final Trade trade) { - return convertToPb(trade).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public Trade deserialize(final byte[] data) { - return convertFromPb(QluaStructures.Trade.parseFrom(data)); - } - - @Override - public Trade convertFromPb(@NotNull QluaStructures.Trade trade) { - - final Trade.TradeBuilder result = Trade.builder() - .tradeNum( trade.getTradeNum() ) - .orderNum( trade.getOrderNum() ) - .brokerRef( convertFromPbString(trade.getBrokerref()) ) - .userId( convertFromPbString(trade.getUserid()) ) - .firmId( convertFromPbString(trade.getFirmid()) ) - .canceledUid( convertFromPbString(trade.getCanceledUid()) ) - .account( convertFromPbString(trade.getAccount()) ) - .price( convertFromPbString(trade.getPrice()) ) - .qty( trade.getQty() ) - .value( convertFromPbString(trade.getValue()) ) - .accruedInt( convertFromPbString(trade.getAccruedint()) ) - .yield( convertFromPbString(trade.getYield()) ) - .settleCode( convertFromPbString(trade.getSettlecode()) ) - .cpFirmId( convertFromPbString(trade.getCpfirmid()) ) - .flags( trade.getFlags() ) - .price2( convertFromPbString(trade.getPrice2()) ) - .repoRate( convertFromPbString(trade.getReporate()) ) - .clientCode( convertFromPbString(trade.getClientCode()) ) - .accrued2( convertFromPbString(trade.getAccrued2()) ) - .repoTerm( convertFromPbString(trade.getRepoterm()) ) - .repoValue( convertFromPbString(trade.getRepovalue()) ) - .repo2Value( convertFromPbString(trade.getRepo2Value()) ) - .startDiscount( convertFromPbString(trade.getStartDiscount()) ) - .lowerDiscount( convertFromPbString(trade.getLowerDiscount()) ) - .upperDiscount( convertFromPbString(trade.getUpperDiscount()) ) - .blockSecurities( convertFromPbString(trade.getBlockSecurities()) ) - .clearingComission( convertFromPbString(trade.getClearingComission()) ) - .exchangeComission( convertFromPbString(trade.getExchangeComission()) ) - .techCenterComission( convertFromPbString(trade.getTechCenterComission()) ) - .settleDate( convertFromPbString(trade.getSettleDate()) ) - .settleCurrency( convertFromPbString(trade.getSettleCurrency()) ) - .tradeCurrency( convertFromPbString(trade.getTradeCurrency()) ) - .exchangeCode( convertFromPbString(trade.getExchangeCode()) ) - .stationId( convertFromPbString(trade.getStationId()) ) - .secCode( convertFromPbString(trade.getSecCode()) ) - .classCode( convertFromPbString(trade.getClassCode()) ) - .bankAccId( convertFromPbString(trade.getBankAccId()) ) - .brokerComission( convertFromPbString(trade.getBrokerComission()) ) - .linkedTrade( convertFromPbString(trade.getLinkedTrade()) ) - .period( trade.getPeriod() ) - .transId( convertFromPbString(trade.getTransId()) ) - .kind( trade.getKind() ) - .clearingBankAccId( convertFromPbString(trade.getClearingBankAccid()) ) - .clearingFirmId( convertFromPbString(trade.getClearingFirmid()) ) - .systemRef( convertFromPbString(trade.getSystemRef()) ) - .uid( convertFromPbString(trade.getUid()) ); - - if (trade.hasDatetime()) { - result.datetime( convertFromPbDateTimeEntry(trade.getDatetime()) ); - } - - if (trade.hasCanceledDatetime()) { - result.canceledDatetime( convertFromPbDateTimeEntry(trade.getCanceledDatetime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.Trade convertToPb(@NotNull final Trade trade) { - - final QluaStructures.Trade.Builder result = QluaStructures.Trade.newBuilder() - .setTradeNum( trade.getTradeNum() ) - .setOrderNum( trade.getOrderNum() ) - .setBrokerref( convertToPbString(trade.getBrokerRef()) ) - .setUserid( convertToPbString(trade.getUserId()) ) - .setFirmid( convertToPbString(trade.getFirmId()) ) - .setCanceledUid( convertToPbString(trade.getCanceledUid()) ) - .setAccount( convertToPbString(trade.getAccount()) ) - .setPrice( convertToPbString(trade.getPrice()) ) - .setQty( trade.getQty() ) - .setValue( convertToPbString(trade.getValue()) ) - .setAccruedint( convertToPbString(trade.getAccruedInt()) ) - .setYield( convertToPbString(trade.getYield()) ) - .setSettlecode( convertToPbString(trade.getSettleCode()) ) - .setCpfirmid( convertToPbString(trade.getCpFirmId()) ) - .setFlags( trade.getFlags() ) - .setPrice2( convertToPbString(trade.getPrice2()) ) - .setReporate( convertToPbString(trade.getRepoRate()) ) - .setClientCode( convertToPbString(trade.getClientCode()) ) - .setAccrued2( convertToPbString(trade.getAccrued2()) ) - .setRepoterm( convertToPbString(trade.getRepoTerm()) ) - .setRepovalue( convertToPbString(trade.getRepoValue()) ) - .setRepo2Value( convertToPbString(trade.getRepo2Value()) ) - .setStartDiscount( convertToPbString(trade.getStartDiscount()) ) - .setLowerDiscount( convertToPbString(trade.getLowerDiscount()) ) - .setUpperDiscount( convertToPbString(trade.getUpperDiscount()) ) - .setBlockSecurities( convertToPbString(trade.getBlockSecurities()) ) - .setClearingComission( convertToPbString(trade.getClearingComission()) ) - .setExchangeComission( convertToPbString(trade.getExchangeComission()) ) - .setTechCenterComission( convertToPbString(trade.getTechCenterComission()) ) - .setSettleDate( convertToPbString(trade.getSettleDate()) ) - .setSettleCurrency( convertToPbString(trade.getSettleCurrency()) ) - .setTradeCurrency( convertToPbString(trade.getTradeCurrency()) ) - .setExchangeCode( convertToPbString(trade.getExchangeCode()) ) - .setStationId( convertToPbString(trade.getStationId()) ) - .setSecCode( convertToPbString(trade.getSecCode()) ) - .setClassCode( convertToPbString(trade.getClassCode()) ) - .setBankAccId( convertToPbString(trade.getBankAccId()) ) - .setBrokerComission( convertToPbString(trade.getBrokerComission()) ) - .setLinkedTrade( convertToPbString(trade.getLinkedTrade()) ) - .setPeriod( trade.getPeriod() ) - .setTransId( convertToPbString(trade.getTransId()) ) - .setKind( trade.getKind() ) - .setClearingBankAccid( convertToPbString(trade.getClearingBankAccId()) ) - .setClearingFirmid( convertToPbString(trade.getClearingFirmId()) ) - .setSystemRef( convertToPbString(trade.getSystemRef()) ) - .setUid( convertToPbString(trade.getUid()) ); - - final DateTimeEntry datetime = trade.getDatetime(); - if (datetime != null) { - result.setDatetime( convertToPbDateTimeEntry(datetime) ); - } - - final DateTimeEntry canceledDatetime = trade.getCanceledDatetime(); - if (canceledDatetime != null) { - result.setCanceledDatetime( convertToPbDateTimeEntry(canceledDatetime) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbDeserializer.java new file mode 100644 index 0000000..a1b89d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbDeserializer.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.TransReply; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum TransReplyPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public TransReply deserialize(final byte[] data) { + return convert(QluaStructures.Transaction.parseFrom(data)); + } + + @Override + public TransReply convert(@NotNull QluaStructures.Transaction transaction) { + + final TransReply.TransReplyBuilder result = TransReply.builder() + .transId( transaction.getTransId() ) + .status( transaction.getStatus() ) + .resultMsg( convertFromPbString(transaction.getResultMsg()) ) + .uid( convertFromPbString(transaction.getUid()) ) + .flags( transaction.getFlags() ) + .serverTransId( convertFromPbString(transaction.getServerTransId()) ) + .orderNum( convertFromPbString(transaction.getOrderNum()) ) + .price( convertFromPbString(transaction.getPrice()) ) + .quantity( convertFromPbString(transaction.getQuantity()) ) + .balance( convertFromPbString(transaction.getBalance()) ) + .firmId( convertFromPbString(transaction.getFirmId()) ) + .account( convertFromPbString(transaction.getAccount()) ) + .clientCode( convertFromPbString(transaction.getClientCode()) ) + .brokerRef( convertFromPbString(transaction.getBrokerref()) ) + .classCode( convertFromPbString(transaction.getClassCode()) ) + .secCode( convertFromPbString(transaction.getSecCode()) ) + .exchangeCode( convertFromPbString(transaction.getExchangeCode()) ); + + if (transaction.hasDateTime()) { + result.dateTime( convertFromPbDateTimeEntry(transaction.getDateTime()) ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java deleted file mode 100644 index 89767b6..0000000 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerde.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.TransReply; -import com.enfernuz.quik.lua.rpc.serde.PbConverter; -import com.enfernuz.quik.lua.rpc.serde.Serde; -import com.google.protobuf.InvalidProtocolBufferException; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import qlua.structs.QluaStructures; - -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.*; - -enum TransReplyPbSerde implements Serde, PbConverter { - - INSTANCE; - - @Override - public byte[] serialize(final TransReply transReply) { - return convertToPb(transReply).toByteArray(); - } - - @SneakyThrows(InvalidProtocolBufferException.class) - @Override - public TransReply deserialize(final byte[] data) { - return convertFromPb(QluaStructures.Transaction.parseFrom(data)); - } - - @Override - public TransReply convertFromPb(@NotNull QluaStructures.Transaction transaction) { - - final TransReply.TransReplyBuilder result = TransReply.builder() - .transId( transaction.getTransId() ) - .status( transaction.getStatus() ) - .resultMsg( convertFromPbString(transaction.getResultMsg()) ) - .uid( convertFromPbString(transaction.getUid()) ) - .flags( transaction.getFlags() ) - .serverTransId( convertFromPbString(transaction.getServerTransId()) ) - .orderNum( convertFromPbString(transaction.getOrderNum()) ) - .price( convertFromPbString(transaction.getPrice()) ) - .quantity( convertFromPbString(transaction.getQuantity()) ) - .balance( convertFromPbString(transaction.getBalance()) ) - .firmId( convertFromPbString(transaction.getFirmId()) ) - .account( convertFromPbString(transaction.getAccount()) ) - .clientCode( convertFromPbString(transaction.getClientCode()) ) - .brokerRef( convertFromPbString(transaction.getBrokerref()) ) - .classCode( convertFromPbString(transaction.getClassCode()) ) - .secCode( convertFromPbString(transaction.getSecCode()) ) - .exchangeCode( convertFromPbString(transaction.getExchangeCode()) ); - - if (transaction.hasDateTime()) { - result.dateTime( convertFromPbDateTimeEntry(transaction.getDateTime()) ); - } - - return result.build(); - } - - @Override - public QluaStructures.Transaction convertToPb(@NotNull final TransReply transReply) { - - final QluaStructures.Transaction.Builder result = QluaStructures.Transaction.newBuilder() - .setTransId( transReply.getTransId() ) - .setStatus( transReply.getStatus() ) - .setResultMsg( convertToPbString(transReply.getResultMsg()) ) - .setUid( convertToPbString(transReply.getUid()) ) - .setFlags( transReply.getFlags() ) - .setServerTransId( convertToPbString(transReply.getServerTransId()) ) - .setOrderNum( convertToPbString(transReply.getOrderNum()) ) - .setPrice( convertToPbString(transReply.getPrice()) ) - .setQuantity( convertToPbString(transReply.getQuantity()) ) - .setBalance( convertToPbString(transReply.getBalance()) ) - .setFirmId( convertToPbString(transReply.getFirmId()) ) - .setAccount( convertToPbString(transReply.getAccount()) ) - .setClientCode( convertToPbString(transReply.getClientCode()) ) - .setBrokerref( convertToPbString(transReply.getBrokerRef()) ) - .setClassCode( convertToPbString(transReply.getClassCode()) ) - .setSecCode( convertToPbString(transReply.getSecCode()) ) - .setExchangeCode( convertToPbString(transReply.getExchangeCode()) ); - - final DateTimeEntry dateTime = transReply.getDateTime(); - if (dateTime != null) { - result.setDateTime( convertToPbDateTimeEntry(dateTime) ); - } - - return result.build(); - } -} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java new file mode 100644 index 0000000..b5f8b22 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.UnsubscribeLevelIIQuotes; + +enum UnsubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final UnsubscribeLevel2Quotes.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public UnsubscribeLevelIIQuotes.Request convert(@NotNull final UnsubscribeLevel2Quotes.Args args) { + + return UnsubscribeLevelIIQuotes.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbDeserializer.java new file mode 100644 index 0000000..3686260 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.UnsubscribeLevelIIQuotes; + +enum UnsubscribeLevel2QuotesResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public UnsubscribeLevel2Quotes.Result deserialize(@NotNull final byte[] data) { + return convert( UnsubscribeLevelIIQuotes.Result.parseFrom(data) ); + } + + @NotNull + @Override + public UnsubscribeLevel2Quotes.Result convert(@NotNull final UnsubscribeLevelIIQuotes.Result result) { + return UnsubscribeLevel2Quotes.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/proto/qlua/rpc/AddLabel.proto b/src/main/proto/qlua/rpc/AddLabel.proto index eae82af..9f9b99c 100644 --- a/src/main/proto/qlua/rpc/AddLabel.proto +++ b/src/main/proto/qlua/rpc/AddLabel.proto @@ -14,5 +14,9 @@ message Request { } message Result { - int32 label_id = 1; + + oneof message_result { + bool null_result = 1; + int32 label_id = 2; + } } diff --git a/src/main/proto/qlua/rpc/GetLabelParams.proto b/src/main/proto/qlua/rpc/GetLabelParams.proto index b1feca9..8ba3a8d 100644 --- a/src/main/proto/qlua/rpc/GetLabelParams.proto +++ b/src/main/proto/qlua/rpc/GetLabelParams.proto @@ -7,12 +7,14 @@ package qlua.rpc.GetLabelParams; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string chart_tag = 1; int32 label_id = 2; } message Result { - map label_params = 1; + + bool null_label_params = 1; + map label_params = 2; } diff --git a/src/main/proto/qlua/rpc/IsWindowClosed.proto b/src/main/proto/qlua/rpc/IsWindowClosed.proto index cec95d1..3ef6ebd 100644 --- a/src/main/proto/qlua/rpc/IsWindowClosed.proto +++ b/src/main/proto/qlua/rpc/IsWindowClosed.proto @@ -7,15 +7,14 @@ package qlua.rpc.IsWindowClosed; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message WindowClosed { - bool result = 1; -} - message Request { int32 t_id = 1; } message Result { - WindowClosed window_closed = 1; + oneof window_closed { + bool null_window_closed = 1; + bool value_window_closed = 2; + } } diff --git a/src/main/proto/qlua/rpc/SearchItems.proto b/src/main/proto/qlua/rpc/SearchItems.proto index 69f2ee3..d30e9cb 100644 --- a/src/main/proto/qlua/rpc/SearchItems.proto +++ b/src/main/proto/qlua/rpc/SearchItems.proto @@ -11,24 +11,27 @@ message Request { string table_name = 1; int32 start_index = 2; - - // Для удобства 0 интерпретируется как getNumberOf(table_name) - 1 - int32 end_index = 3; - - // Формат функции без использования params: "function (TABLE t) ... end", возвращаемые значения: BOOLEAN, nil; + + // Для удобства наличие null_end_index интерпретируется как getNumberOf(table_name) - 1 + oneof end_index { + bool null_end_index = 3; + int32 value_end_index = 4; + } + + // Формат функции без использования params: "function (TABLE t) ... end", возвращаемые значения: BOOLEAN, nil; // где t -- строка таблицы table_name со всеми параметрами. - // Формат функции при использовании params: "function (p1, p2, ...) ... end", возвращаемые значения: BOOLEAN, nil; + // Формат функции при использовании params: "function (p1, p2, ...) ... end", возвращаемые значения: BOOLEAN, nil; // где p1, p2, ... -- значения параметров, заказанных в params - + // Внимание! По результам тестирования возврат nil из fn не приводит к ожидаемому результату (возврат списка уже пройденных индексов, удовлетворяющих условию + индекс, на котором возвратили nil + остановка процесса проверки условия) -- вместо этого процесс проверки условия прерывается и функция SearchItems возвращает nil. Подозреваю, что это баг в QLUA или ошибка в документации. - string fn_def = 4; - - string params = 5; + string fn_def = 5; + + string params = 6; } message Result { - repeated int32 items_indices = 1; - //NB: Недоработка QLUA: пустой список индексов возвращается в виде nil, и ошибка при работе фукнции проверки элемента (fn) + repeated int32 items_indices = 1; + //NB: Недоработка QLUA: пустой список индексов возвращается в виде nil, и ошибка при работе функции проверки элемента (fn) //тоже приводит к возврату nil, так что непонятно, не нашли ли мы удовлетворяющих условию элементов или написали ошибочную - //функцию проверки условия. Для определённости, в обоих случаях будем возвращать пустой список.--]] + //функцию проверки условия. Для определённости, в обоих случаях будем возвращать пустой список. } diff --git a/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto b/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto index b5dcdf6..b8a2039 100644 --- a/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto +++ b/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto @@ -39,7 +39,10 @@ message Request { message Result { - string datasource_uuid = 1; - bool is_error = 2; - string error_desc = 3; + oneof result { + string datasource_uuid = 1; + string error_desc = 2; + } + bool is_error = 3; + } diff --git a/src/main/proto/qlua/rpc/getInfoParam.proto b/src/main/proto/qlua/rpc/getInfoParam.proto index d66a921..881e029 100644 --- a/src/main/proto/qlua/rpc/getInfoParam.proto +++ b/src/main/proto/qlua/rpc/getInfoParam.proto @@ -8,8 +8,6 @@ option optimize_for = SPEED; option java_package = "qlua.rpc"; message Request { - - // TODO: consider changing the type to enum string param_name = 1; } diff --git a/src/main/proto/qlua/rpc/getItem.proto b/src/main/proto/qlua/rpc/getItem.proto index 5d1bffc..ca35a81 100644 --- a/src/main/proto/qlua/rpc/getItem.proto +++ b/src/main/proto/qlua/rpc/getItem.proto @@ -14,5 +14,7 @@ message Request { } message Result { - map table_row = 1; + + bool null_table_row = 1; + map table_row = 2; } diff --git a/src/main/proto/qlua/rpc/getOrderByNumber.proto b/src/main/proto/qlua/rpc/getOrderByNumber.proto index 8ff6c27..c30355f 100644 --- a/src/main/proto/qlua/rpc/getOrderByNumber.proto +++ b/src/main/proto/qlua/rpc/getOrderByNumber.proto @@ -18,5 +18,8 @@ message Request { message Result { qlua.structs.Order order = 1; - int32 indx = 2; + oneof indx { + bool null_indx = 2; + int32 value_indx = 3; + } } diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index cec194e..e38099d 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -25,31 +25,44 @@ message Firm { string firmid = 1; string firm_name = 2; - int32 status = 3; // NUMBER in QLUA - string exchange = 4; + oneof status { + bool null_status = 3; + int32 value_status = 4; // NUMBER in QLUA + }; + string exchange = 5; } // Обезличенные сделки message AllTrade { - uint64 trade_num = 1; // NUMBER in QLUA - uint32 flags = 2; // NUMBER in QLUA - string price = 3; // NUMBER in QLUA - uint32 qty = 4; // NUMBER in QLUA - string value = 5; // NUMBER in QLUA - string accruedint = 6; // NUMBER in QLUA - string yield = 7; // NUMBER in QLUA - string settlecode = 8; - string reporate = 9; // NUMBER in QLUA - string repovalue = 10; // NUMBER in QLUA - string repo2value = 11; // NUMBER in QLUA - string repoterm = 12; // NUMBER in QLUA - string sec_code = 13; - string class_code = 14; - DateTimeEntry datetime = 15; // TABLE in QLUA - int32 period = 16; // NUMBER in QLUA - string open_interest = 17; // NUMBER in QLUA - string exchange_code = 18; + oneof trade_num { + bool null_trade_num = 1; + uint64 value_trade_num = 2; // NUMBER in QLUA + }; + oneof flags { + bool null_flags = 3; + uint32 value_flags = 4; // NUMBER in QLUA + }; + string price = 5; // NUMBER in QLUA + oneof qty { + bool null_qty = 6; + uint32 value_qty = 7; // NUMBER in QLUA + }; + string value = 8; // NUMBER in QLUA + string accruedint = 9; // NUMBER in QLUA + string yield = 10; // NUMBER in QLUA + string settlecode = 11; + string reporate = 12; // NUMBER in QLUA + string repovalue = 13; // NUMBER in QLUA + string repo2value = 14; // NUMBER in QLUA + string repoterm = 15; // NUMBER in QLUA + string sec_code = 16; + string class_code = 17; + DateTimeEntry datetime = 18; // TABLE in QLUA + int32 period = 19; // NUMBER in QLUA + string open_interest = 20; // NUMBER in QLUA + string exchange_code = 21; + string exec_market = 22; } // Сделки @@ -103,6 +116,28 @@ message Trade { string clearing_firmid = 46; string system_ref = 47; string uid = 48; // NUMBER in QLUA + string lseccode = 49; + string order_revision_number = 50; // NUMBER in QLUA + string order_qty = 51; // NUMBER in QLUA + string order_price = 52; // NUMBER in QLUA + string order_exchange_code = 53; + string exec_market = 54; + int32 liquidity_indicator = 55; + string extref = 56; + string ext_trade_flags = 57; // NUMBER in QLUA + string on_behalf_of_uid = 58; // NUMBER in QLUA + int32 client_qualifier = 59; + string client_short_code = 60; // + int32 investment_decision_maker_qualifier = 61; + string investment_decision_maker_short_code = 62; // NUMBER in QLUA + int32 executing_trader_qualifier = 63; + string executing_trader_short_code = 64; // NUMBER in QLUA + int32 waiver_flag = 65; + string mleg_base_sid = 66; // NUMBER in QLUA + int32 side_qualifier = 67; + int32 otc_post_trade_indicator = 68; + int32 capacity = 69; + string cross_rate = 70; // NUMBER in QLUA } // Заявки @@ -150,6 +185,22 @@ message Order { int32 capacity = 40; // NUMBER in QLUA int32 passive_only_order = 41; // NUMBER in QLUA int32 visible = 42; // NUMBER in QLUA + string awg_price = 43; // NUMBER in QLUA + string expiry_time = 44; // NUMBER in QLUA + string revision_number = 45; // NUMBER in QLUA + string price_currency = 46; + int32 ext_order_status = 47; // NUMBER in QLUA + string accepted_uid = 48; // NUMBER in QLUA + string filled_value = 49; // NUMBER in QLUA + string extref = 50; + string settle_currency = 51; + string on_behalf_of_uid = 52; // NUMBER in QLUA + int32 client_qualifier = 53; // NUMBER in QLUA + string client_short_code = 54; // NUMBER in QLUA + int32 investment_decision_maker_qualifier = 55; // NUMBER in QLUA + string investment_decision_maker_short_code = 56; // NUMBER in QLUA + int32 executing_trader_qualifier = 57; // NUMBER in QLUA + string executing_trader_short_code = 58; // NUMBER in QLUA } // Текущие позиции по клиентским счетам @@ -277,6 +328,9 @@ message MoneyLimit { string locked_margin_value = 11; // NUMBER in QLUA string leverage = 12; // NUMBER in QLUA int32 limit_kind = 13; // NUMBER in QLUA + string wa_position_price = 14; // NUMBER in QLUA + string orders_collateral = 15; // NUMBER in QLUA + string positions_collateral = 16; // NUMBER in QLUA } // Удаление денежного лимита @@ -321,7 +375,7 @@ message DepoLimit { uint32 locked_buy = 10; // NUMBER in QLUA string locked_buy_value = 11; // NUMBER in QLUA string locked_sell_value = 12; // NUMBER in QLUA - string awg_position_price = 13; // NUMBER in QLUA + string wa_position_price = 13; // NUMBER in QLUA int32 limit_kind = 14; // NUMBER in QLUA } @@ -399,6 +453,19 @@ message NegDeal { DateTimeEntry activation_date_time = 46; // TABLE in QLUA DateTimeEntry withdraw_date_time = 47; // TABLE in QLUA DateTimeEntry date_time = 48; // TABLE in QLUA + string lseccode = 49; + string canceled_uid = 50; // NUMBER in QLUA + string system_ref = 51; + string price_currency = 52; + string order_exchange_code = 53; + string extref = 54; + string period = 55; // NUMBER in QLUA + int32 client_qualifier = 56; + string client_short_code = 57; // NUMBER in QLUA + int32 investment_decision_maker_qualifier = 58; + string investment_decision_maker_short_code = 59; // NUMBER in QLUA + int32 executing_trader_qualifier = 60; + string executing_trader_short_code = 61; // NUMBER in QLUA } // Сделки для исполнения @@ -465,6 +532,7 @@ message NegTrade { string confirmtime = 59; // NUMBER in QLUA int32 ex_flags = 60; // NUMBER in QLUA string confirmreport = 61; // NUMBER in QLUA + string extref = 62; } // Инструменты @@ -552,7 +620,7 @@ message ConnectedEventInfo { bool flag = 1; } -// Информация из функции обратного вызова OnStop +// Информация из функций обратного вызова OnClose и OnStop message StopEventInfo { - int32 signal = 1; + int32 flag = 1; } diff --git a/src/main/proto/qlua/rpc/sleep.proto b/src/main/proto/qlua/rpc/sleep.proto index 5c332f2..d2ea2b0 100644 --- a/src/main/proto/qlua/rpc/sleep.proto +++ b/src/main/proto/qlua/rpc/sleep.proto @@ -12,5 +12,9 @@ message Request { } message Result { - int32 result = 1; + + oneof result { + bool null_result = 1; + int32 value_result = 2; + } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java deleted file mode 100644 index 01c136e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddColumnJsonSerdeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class AddColumnJsonSerdeTest { - - private static ObjectMapper sut; - - private static AddColumn.Request requestObj; - private static AddColumn.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = AddColumn.Request.builder() - .tId(1) - .iCode(2) - .name("3") - .isDefault(true) - .parType(AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) - .width(6) - .build(); - - resultObj = new AddColumn.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/AddColumn.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/AddColumn.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final AddColumn.Result actualResultObj = sut.readValue(resultJson, AddColumn.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java index 1f31c22..956978a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java @@ -16,7 +16,7 @@ public class AddLabelJsonSerdeTest { private static ObjectMapper sut; - private static AddLabel.Request requestObj; + private static AddLabel.Args requestObj; private static AddLabel.Result resultObj; private static String requestJson; private static String resultJson; @@ -27,7 +27,7 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = AddLabel.Request.builder() + requestObj = AddLabel.Args.builder() .chartTag("1") .labelParams(ImmutableMap.of( "key1", "value1", diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java index b864dec..73db34e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java @@ -15,7 +15,6 @@ public class AllocTableJsonSerdeTest { private static ObjectMapper sut; - private static AllocTable.Request requestObj; private static AllocTable.Result resultObj; private static String requestJson; private static String resultJson; @@ -26,23 +25,18 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = AllocTable.Request.INSTANCE; - resultObj = new AllocTable.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/AllocTable.request.json"), Charsets.UTF_8); resultJson = Resources.toString(Resources.getResource("json/AllocTable.result.json"), Charsets.UTF_8); } - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } +// @Test +// public void testRequestSerialize() throws IOException { +// +// final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); +// +// assertEquals(requestJson, actualRequestJson); +// } @Test public void testResultDeserialize() throws IOException { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java index 6ae2bfe..51cc43f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java @@ -16,7 +16,7 @@ public class GetClassInfoJsonSerdeTest { private static ObjectMapper sut; - private static GetClassInfo.Request requestObj; + private static GetClassInfo.Args requestObj; private static String requestJson; private static GetClassInfo.Result resultObj; @@ -31,7 +31,7 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = new GetClassInfo.Request("1"); + requestObj = new GetClassInfo.Args("1"); requestJson = Resources.toString(Resources.getResource("json/getClassInfo.request.json"), Charsets.UTF_8); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java index 3e77697..8a2e879 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java @@ -16,7 +16,7 @@ public class GetFuturesHoldingJsonSerdeTest { private static ObjectMapper sut; - private static GetFuturesHolding.Request requestObj; + private static GetFuturesHolding.Args requestObj; private static String requestJson; private static GetFuturesHolding.Result resultObj; @@ -31,7 +31,7 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = GetFuturesHolding.Request.builder() + requestObj = GetFuturesHolding.Args.builder() .firmId("1") .trdAccId("2") .secCode("3") diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java index 4f59682..041bc08 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java @@ -16,7 +16,7 @@ public class GetFuturesLimitJsonSerdeTest { private static ObjectMapper sut; - private static GetFuturesLimit.Request requestObj; + private static GetFuturesLimit.Args requestObj; private static String requestJson; private static GetFuturesLimit.Result resultObj; @@ -31,7 +31,7 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = GetFuturesLimit.Request.builder() + requestObj = GetFuturesLimit.Args.builder() .firmId("1") .trdAccId("2") .limitType(3) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java index c004d80..8ab28b2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java @@ -26,14 +26,14 @@ public static void globalSetup() throws IOException { sut = new ObjectMapper(); sut.registerModule(new QluaJsonModule()); - requestObj = PrintDbgStr.Request.INSTANCE; + requestObj = new PrintDbgStr.Request("1"); - resultObj = new PrintDbgStr.Result("1"); + resultObj = PrintDbgStr.Result.INSTANCE; requestJson = - Resources.toString(Resources.getResource("json/PrintDbgStr.request.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/PrintDbgStr/request.json"), Charsets.UTF_8); resultJson = - Resources.toString(Resources.getResource("json/PrintDbgStr.result.json"), Charsets.UTF_8); + Resources.toString(Resources.getResource("json/PrintDbgStr/result.json"), Charsets.UTF_8); } @Test diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java index 2d224d4..efa2059 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java @@ -16,7 +16,7 @@ public class GetCellRequestPbSerdeTest { private static SerdeModule sut; - private static GetCell.Request expectedObject; + private static GetCell.Args expectedObject; private static byte[] expectedPbInput; @BeforeClass @@ -24,7 +24,7 @@ public static void globalSetup() { sut = ProtobufSerdeModule.INSTANCE; - expectedObject = GetCell.Request.builder() + expectedObject = GetCell.Args.builder() .tId(1) .key(2) .code(3) @@ -54,7 +54,7 @@ public void testSerialize() { @Test public void testDeserialize() { - final GetCell.Request actualObject = sut.deserialize(GetCell.Request.class, expectedPbInput); + final GetCell.Args actualObject = sut.deserialize(GetCell.Args.class, expectedPbInput); assertEquals(actualObject, expectedObject); } diff --git a/src/test/java/wip/AbstractJsonDeserializationTest.java b/src/test/java/wip/AbstractJsonDeserializationTest.java new file mode 100644 index 0000000..879f05e --- /dev/null +++ b/src/test/java/wip/AbstractJsonDeserializationTest.java @@ -0,0 +1,27 @@ +package wip; + +import com.google.common.io.Resources; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public abstract class AbstractJsonDeserializationTest extends AbstractJsonSerdeModuleTest { + + public abstract String getJsonPath(); + + public abstract T getExpectedObject(); + + @Test + public void testJsonDeserialization() throws IOException { + + final T expected = getExpectedObject(); + final Object actual = getSUT().deserialize( + expected.getClass(), + Resources.toByteArray(Resources.getResource(getJsonPath())) + ); + + assertEquals(expected, actual); + } +} diff --git a/src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java b/src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java new file mode 100644 index 0000000..41238ba --- /dev/null +++ b/src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java @@ -0,0 +1,29 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.RpcArgs; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import org.junit.Test; + +import java.io.IOException; +import java.nio.charset.Charset; + +import static org.junit.Assert.assertEquals; + +public abstract class AbstractJsonRpcArgsSerializationTest extends AbstractJsonSerdeModuleTest { + + private static final Charset JSON_CHARSET = Charsets.UTF_8; + + public abstract String getArgsJsonPath(); + + public abstract ARGS getArgsObject(); + + @Test + public void testArgsObjectSerialization() throws IOException { + + final String expected = Resources.toString(Resources.getResource(getArgsJsonPath()), JSON_CHARSET); + final String actual = new String(getSUT().serialize(getArgsObject()), JSON_CHARSET); + + assertEquals(expected, actual); + } +} diff --git a/src/test/java/wip/AbstractJsonSerdeModuleTest.java b/src/test/java/wip/AbstractJsonSerdeModuleTest.java new file mode 100644 index 0000000..199fc77 --- /dev/null +++ b/src/test/java/wip/AbstractJsonSerdeModuleTest.java @@ -0,0 +1,11 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; + +public abstract class AbstractJsonSerdeModuleTest { + + public SerdeModule getSUT() { + return JsonSerdeModule.INSTANCE; + } +} diff --git a/src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java b/src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java new file mode 100644 index 0000000..47412a4 --- /dev/null +++ b/src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java @@ -0,0 +1,27 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.google.common.io.Resources; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public abstract class AbstractRpcResultJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public abstract RESULT getExpectedObject(); + + @Test + public void testResultObjectDeserialization() throws IOException { + + final RESULT expected = getExpectedObject(); + final RpcResult actual = getSUT().deserialize( + expected.getClass(), + Resources.toByteArray(Resources.getResource(getJsonPath())) + ); + + assertEquals(expected, actual); + } +} diff --git a/src/test/java/wip/AddColumnJsonSerdeTests.java b/src/test/java/wip/AddColumnJsonSerdeTests.java new file mode 100644 index 0000000..5c1dcb6 --- /dev/null +++ b/src/test/java/wip/AddColumnJsonSerdeTests.java @@ -0,0 +1,43 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class AddColumnJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public AddColumn.Args getArgsObject() { + + return AddColumn.Args.builder() + .tId(1) + .iCode(2) + .name("3") + .isDefault(true) + .parType(AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) + .width(6) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/AddColumn/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/AddColumn/result.json"; + } + + @Override + public AddColumn.Result getExpectedObject() { + return new AddColumn.Result(1); + } + } +} diff --git a/src/test/java/wip/AddLabelJsonSerdeTests.java b/src/test/java/wip/AddLabelJsonSerdeTests.java new file mode 100644 index 0000000..3d0ba7a --- /dev/null +++ b/src/test/java/wip/AddLabelJsonSerdeTests.java @@ -0,0 +1,45 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.google.common.collect.ImmutableMap; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class AddLabelJsonSerdeTests { + + public static class JsonRpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public String getArgsJsonPath() { + return "json/AddLabel/args.json"; + } + + @Override + public AddLabel.Args getArgsObject() { + + return AddLabel.Args.builder() + .chartTag("1") + .labelParams( + ImmutableMap.of( + "k1", "v1", + "k2", "v2", + "k3", "v3" + ) + ).build(); + } + } + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/AddLabel/result.json"; + } + + @Override + public AddLabel.Result getExpectedObject() { + return new AddLabel.Result(1); + } + } +} diff --git a/src/test/java/wip/AllocTableJsonSerdeTests.java b/src/test/java/wip/AllocTableJsonSerdeTests.java new file mode 100644 index 0000000..c164d74 --- /dev/null +++ b/src/test/java/wip/AllocTableJsonSerdeTests.java @@ -0,0 +1,22 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class AllocTableJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/AllocTable/result.json"; + } + + @Override + public AllocTable.Result getExpectedObject() { + return new AllocTable.Result(1); + } + } +} diff --git a/src/test/java/wip/BitBAndJsonSerdeTests.java b/src/test/java/wip/BitBAndJsonSerdeTests.java new file mode 100644 index 0000000..177990f --- /dev/null +++ b/src/test/java/wip/BitBAndJsonSerdeTests.java @@ -0,0 +1,57 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitBAndJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BAnd.Args getArgsObject() { + + return BAnd.Args.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/band/full.args.json"; + } + } + + public static class RpcWithoutXiSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BAnd.Args getArgsObject() { + + return BAnd.Args.builder() + .x1(1) + .x2(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/band/without_xi.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/band/result.json"; + } + + @Override + public BAnd.Result getExpectedObject() { + return new BAnd.Result(1); + } + } +} diff --git a/src/test/java/wip/BitBNotJsonSerdeTests.java b/src/test/java/wip/BitBNotJsonSerdeTests.java new file mode 100644 index 0000000..90a4bcf --- /dev/null +++ b/src/test/java/wip/BitBNotJsonSerdeTests.java @@ -0,0 +1,33 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitBNotJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BNot.Args getArgsObject() { return new BNot.Args(1);} + + @Override + public String getArgsJsonPath() { + return "json/bit/bnot/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/bnot/result.json"; + } + + @Override + public BNot.Result getExpectedObject() { + return new BNot.Result(1); + } + } +} diff --git a/src/test/java/wip/BitBOrJsonSerdeTests.java b/src/test/java/wip/BitBOrJsonSerdeTests.java new file mode 100644 index 0000000..71504ef --- /dev/null +++ b/src/test/java/wip/BitBOrJsonSerdeTests.java @@ -0,0 +1,57 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitBOrJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BOr.Args getArgsObject() { + + return BOr.Args.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/bor/full.args.json"; + } + } + + public static class RpcWithoutXiArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BOr.Args getArgsObject() { + + return BOr.Args.builder() + .x1(1) + .x2(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/bor/without_xi.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/bor/result.json"; + } + + @Override + public BOr.Result getExpectedObject() { + return new BOr.Result(1); + } + } +} diff --git a/src/test/java/wip/BitBXorJsonSerdeTests.java b/src/test/java/wip/BitBXorJsonSerdeTests.java new file mode 100644 index 0000000..0a5866e --- /dev/null +++ b/src/test/java/wip/BitBXorJsonSerdeTests.java @@ -0,0 +1,57 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitBXorJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BXor.Args getArgsObject() { + + return BXor.Args.builder() + .x1(1) + .x2(2) + .xi(new int[] {3, 5, 7, 9}) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/bxor/full.args.json"; + } + } + + public static class RpcWithoutXiArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public BXor.Args getArgsObject() { + + return BXor.Args.builder() + .x1(1) + .x2(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/bxor/without_xi.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/bxor/result.json"; + } + + @Override + public BXor.Result getExpectedObject() { + return new BXor.Result(1); + } + } +} diff --git a/src/test/java/wip/BitTestJsonSerdeTests.java b/src/test/java/wip/BitTestJsonSerdeTests.java new file mode 100644 index 0000000..8d19df0 --- /dev/null +++ b/src/test/java/wip/BitTestJsonSerdeTests.java @@ -0,0 +1,52 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitTestJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Test.Args getArgsObject() { + + return Test.Args.builder() + .x(1) + .n(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/test/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/test/true.result.json"; + } + + @Override + public Test.Result getExpectedObject() { + return Test.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/test/false.result.json"; + } + + @Override + public Test.Result getExpectedObject() { + return Test.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/BitToHexJsonSerdeTests.java b/src/test/java/wip/BitToHexJsonSerdeTests.java new file mode 100644 index 0000000..4bce2a6 --- /dev/null +++ b/src/test/java/wip/BitToHexJsonSerdeTests.java @@ -0,0 +1,55 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitToHexJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public ToHex.Args getArgsObject() { + + return ToHex.Args.builder() + .x(1) + .n(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/tohex/full.args.json"; + } + } + + public static class RpcWithoutNArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public ToHex.Args getArgsObject() { + + return ToHex.Args.builder() + .x(1) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/bit/tohex/without_n.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/bit/tohex/result.json"; + } + + @Override + public ToHex.Result getExpectedObject() { + return new ToHex.Result("1"); + } + } +} diff --git a/src/test/java/wip/CalcBuySellJsonSerdeTests.java b/src/test/java/wip/CalcBuySellJsonSerdeTests.java new file mode 100644 index 0000000..c9c2b5b --- /dev/null +++ b/src/test/java/wip/CalcBuySellJsonSerdeTests.java @@ -0,0 +1,44 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class CalcBuySellJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public CalcBuySell.Args getArgsObject() { + + return CalcBuySell.Args.builder() + .classCode("1") + .secCode("2") + .clientCode("3") + .account("4") + .price("5") + .isBuy(true) + .isMarket(true) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/CalcBuySell/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/CalcBuySell/result.json"; + } + + @Override + public CalcBuySell.Result getExpectedObject() { + return new CalcBuySell.Result(1, "2"); + } + } +} diff --git a/src/test/java/wip/CancelParamRequestJsonSerdeTests.java b/src/test/java/wip/CancelParamRequestJsonSerdeTests.java new file mode 100644 index 0000000..c05991a --- /dev/null +++ b/src/test/java/wip/CancelParamRequestJsonSerdeTests.java @@ -0,0 +1,40 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class CancelParamRequestJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public CancelParamRequest.Args getArgsObject() { + + return CancelParamRequest.Args.builder() + .classCode("1") + .secCode("2") + .dbName("3") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/CancelParamRequest/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/CancelParamRequest/result.json"; + } + + @Override + public CancelParamRequest.Result getExpectedObject() { + return new CancelParamRequest.Result(true); + } + } +} diff --git a/src/test/java/wip/ClearJsonSerdeTests.java b/src/test/java/wip/ClearJsonSerdeTests.java new file mode 100644 index 0000000..f949e8c --- /dev/null +++ b/src/test/java/wip/ClearJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class ClearJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Clear.Args getArgsObject() { + return new Clear.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/Clear/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Clear/true.result.json"; + } + + @Override + public Clear.Result getExpectedObject() { + return Clear.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Clear/false.result.json"; + } + + @Override + public Clear.Result getExpectedObject() { + return Clear.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/CreateWindowJsonSerdeTests.java b/src/test/java/wip/CreateWindowJsonSerdeTests.java new file mode 100644 index 0000000..57b882b --- /dev/null +++ b/src/test/java/wip/CreateWindowJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class CreateWindowJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public CreateWindow.Args getArgsObject() { + return new CreateWindow.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/CreateWindow/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/CreateWindow/result.json"; + } + + @Override + public CreateWindow.Result getExpectedObject() { + return new CreateWindow.Result(1); + } + } +} diff --git a/src/test/java/wip/DatasourceCJsonSerdeTests.java b/src/test/java/wip/DatasourceCJsonSerdeTests.java new file mode 100644 index 0000000..97ae545 --- /dev/null +++ b/src/test/java/wip/DatasourceCJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public C.Args getArgsObject() { + return new C.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/C/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/C/result.json"; + } + + @Override + public C.Result getExpectedObject() { + return new C.Result("1"); + } + } +} diff --git a/src/test/java/wip/DatasourceCloseJsonSerdeTests.java b/src/test/java/wip/DatasourceCloseJsonSerdeTests.java new file mode 100644 index 0000000..34e4b47 --- /dev/null +++ b/src/test/java/wip/DatasourceCloseJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCloseJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Close.Args getArgsObject() { + return new Close.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/Close/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/Close/true.result.json"; + } + + @Override + public Close.Result getExpectedObject() { + return Close.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/Close/false.result.json"; + } + + @Override + public Close.Result getExpectedObject() { + return Close.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java b/src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java new file mode 100644 index 0000000..2a73664 --- /dev/null +++ b/src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java @@ -0,0 +1,80 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCreateDataSourceJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public CreateDataSource.Args getArgsObject() { + + return CreateDataSource.Args.builder() + .classCode("1") + .secCode("2") + .interval(CreateDataSource.Interval.INTERVAL_M5) + .param("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/CreateDataSource/full.args.json"; + } + } + + public static class RpcWithoutParamArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public CreateDataSource.Args getArgsObject() { + + return CreateDataSource.Args.builder() + .classCode("1") + .secCode("2") + .interval(CreateDataSource.Interval.INTERVAL_M5) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/CreateDataSource/without_param.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/CreateDataSource/result.json"; + } + + @Override + public CreateDataSource.Result getExpectedObject() { + + return CreateDataSource.Result.builder() + .datasourceUUID("1") + .error(false) + .build(); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/CreateDataSource/error.result.json"; + } + + @Override + public CreateDataSource.Result getExpectedObject() { + + return CreateDataSource.Result.builder() + .error(true) + .errorDesc("2") + .build(); + } + } +} diff --git a/src/test/java/wip/DatasourceHJsonSerdeTests.java b/src/test/java/wip/DatasourceHJsonSerdeTests.java new file mode 100644 index 0000000..1aa418c --- /dev/null +++ b/src/test/java/wip/DatasourceHJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceHJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public H.Args getArgsObject() { + return new H.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/H/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/H/result.json"; + } + + @Override + public H.Result getExpectedObject() { + return new H.Result("1"); + } + } +} diff --git a/src/test/java/wip/DatasourceLJsonSerdeTests.java b/src/test/java/wip/DatasourceLJsonSerdeTests.java new file mode 100644 index 0000000..cb84b3c --- /dev/null +++ b/src/test/java/wip/DatasourceLJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceLJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public L.Args getArgsObject() { + return new L.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/L/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/L/result.json"; + } + + @Override + public L.Result getExpectedObject() { + return new L.Result("1"); + } + } +} diff --git a/src/test/java/wip/DatasourceOJsonSerdeTests.java b/src/test/java/wip/DatasourceOJsonSerdeTests.java new file mode 100644 index 0000000..a8eccd5 --- /dev/null +++ b/src/test/java/wip/DatasourceOJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceOJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public O.Args getArgsObject() { + return new O.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/O/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/O/result.json"; + } + + @Override + public O.Result getExpectedObject() { + return new O.Result("1"); + } + } +} diff --git a/src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java b/src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java new file mode 100644 index 0000000..971ab19 --- /dev/null +++ b/src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceSetEmptyCallbackJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetEmptyCallback.Args getArgsObject() { + return new SetEmptyCallback.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/SetEmptyCallback/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/SetEmptyCallback/true.result.json"; + } + + @Override + public SetEmptyCallback.Result getExpectedObject() { + return SetEmptyCallback.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/SetEmptyCallback/false.result.json"; + } + + @Override + public SetEmptyCallback.Result getExpectedObject() { + return SetEmptyCallback.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java b/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java new file mode 100644 index 0000000..4d493f0 --- /dev/null +++ b/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java @@ -0,0 +1,52 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceSetUpdateCallbackJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetUpdateCallback.Args getArgsObject() { + + return SetUpdateCallback.Args.builder() + .datasourceUUID("1") + .fCbDef("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/SetUpdateCallback/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/SetUpdateCallback/true.result.json"; + } + + @Override + public SetUpdateCallback.Result getExpectedObject() { + return SetUpdateCallback.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/SetUpdateCallback/false.result.json"; + } + + @Override + public SetUpdateCallback.Result getExpectedObject() { + return SetUpdateCallback.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/DatasourceSizeJsonSerdeTests.java b/src/test/java/wip/DatasourceSizeJsonSerdeTests.java new file mode 100644 index 0000000..bb9406c --- /dev/null +++ b/src/test/java/wip/DatasourceSizeJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceSizeJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Size.Args getArgsObject() { + return new Size.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/Size/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/Size/result.json"; + } + + @Override + public Size.Result getExpectedObject() { + return new Size.Result(1); + } + } +} diff --git a/src/test/java/wip/DatasourceTJsonSerdeTests.java b/src/test/java/wip/DatasourceTJsonSerdeTests.java new file mode 100644 index 0000000..f1622e7 --- /dev/null +++ b/src/test/java/wip/DatasourceTJsonSerdeTests.java @@ -0,0 +1,46 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceTJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public T.Args getArgsObject() { + return new T.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/T/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/T/result.json"; + } + + @Override + public T.Result getExpectedObject() { + + return T.Result.builder() + .year(1) + .month(2) + .day(3) + .weekDay(4) + .hour(5) + .min(6) + .sec(7) + .ms(8) + .count(9) + .build(); + } + } +} diff --git a/src/test/java/wip/DatasourceVJsonSerdeTests.java b/src/test/java/wip/DatasourceVJsonSerdeTests.java new file mode 100644 index 0000000..11bfa51 --- /dev/null +++ b/src/test/java/wip/DatasourceVJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceVJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public V.Args getArgsObject() { + return new V.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/datasource/V/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/datasource/V/result.json"; + } + + @Override + public V.Result getExpectedObject() { + return new V.Result("1"); + } + } +} diff --git a/src/test/java/wip/DelAllLabelsJsonSerdeTests.java b/src/test/java/wip/DelAllLabelsJsonSerdeTests.java new file mode 100644 index 0000000..27b38ff --- /dev/null +++ b/src/test/java/wip/DelAllLabelsJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DelAllLabelsJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public DelAllLabels.Args getArgsObject() { + return new DelAllLabels.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/DelAllLabels/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/DelAllLabels/result.json"; + } + + @Override + public DelAllLabels.Result getExpectedObject() { + return DelAllLabels.Result.getInstance(true); + } + } +} diff --git a/src/test/java/wip/DelLabelJsonSerdeTests.java b/src/test/java/wip/DelLabelJsonSerdeTests.java new file mode 100644 index 0000000..689fe1c --- /dev/null +++ b/src/test/java/wip/DelLabelJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DelLabelJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public DelLabel.Args getArgsObject() { + return new DelLabel.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/DelLabel/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/DelLabel/result.json"; + } + + @Override + public DelLabel.Result getExpectedObject() { + return DelLabel.Result.getInstance(true); + } + } +} diff --git a/src/test/java/wip/DeleteRowJsonSerdeTests.java b/src/test/java/wip/DeleteRowJsonSerdeTests.java new file mode 100644 index 0000000..53519aa --- /dev/null +++ b/src/test/java/wip/DeleteRowJsonSerdeTests.java @@ -0,0 +1,39 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DeleteRowJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public DeleteRow.Args getArgsObject() { + + return DeleteRow.Args.builder() + .tId(1) + .key(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/DeleteRow/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/DeleteRow/result.json"; + } + + @Override + public DeleteRow.Result getExpectedObject() { + return DeleteRow.Result.getInstance(true); + } + } +} diff --git a/src/test/java/wip/DestroyTableJsonSerdeTests.java b/src/test/java/wip/DestroyTableJsonSerdeTests.java new file mode 100644 index 0000000..2208810 --- /dev/null +++ b/src/test/java/wip/DestroyTableJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DestroyTableJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public DestroyTable.Args getArgsObject() { + return new DestroyTable.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/DestroyTable/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/DestroyTable/result.json"; + } + + @Override + public DestroyTable.Result getExpectedObject() { + return DestroyTable.Result.getInstance(true); + } + } +} diff --git a/src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java b/src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java new file mode 100644 index 0000000..4b04d0e --- /dev/null +++ b/src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java @@ -0,0 +1,79 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetBuySellInfoExJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetBuySellInfoEx.Args getArgsObject() { + + return GetBuySellInfoEx.Args.builder() + .firmId("1") + .clientCode("2") + .classCode("3") + .secCode("4") + .price("5") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getBuySellInfoEx/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getBuySellInfoEx/result.json"; + } + + @Override + public GetBuySellInfoEx.Result getExpectedObject() { + + final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("21") + .build(); + final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx = GetBuySellInfoEx.BuySellInfoEx.builder() + .buySellInfo(buySellInfo) + .limitKind("2") + .dLong("3") + .dMinLong("4") + .dShort("5") + .dMinShort("6") + .clientType("7") + .isLongAllowed("8") + .isShortAllowed("9") + .build(); + + return new GetBuySellInfoEx.Result(buySellInfoEx); + } + } +} diff --git a/src/test/java/wip/GetBuySellInfoJsonSerdeTests.java b/src/test/java/wip/GetBuySellInfoJsonSerdeTests.java new file mode 100644 index 0000000..aef0867 --- /dev/null +++ b/src/test/java/wip/GetBuySellInfoJsonSerdeTests.java @@ -0,0 +1,67 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetBuySellInfoJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetBuySellInfo.Args getArgsObject() { + + return GetBuySellInfo.Args.builder() + .firmId("1") + .clientCode("2") + .classCode("3") + .secCode("4") + .price("5") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getBuySellInfo/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getBuySellInfo/result.json"; + } + + @Override + public GetBuySellInfo.Result getExpectedObject() { + + final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() + .isMarginSec("1") + .isAssetSec("2") + .balance("3") + .canBuy("4") + .canSell("5") + .positionValuation("6") + .value("7") + .openValue("8") + .limLong("9") + .longCoef("10") + .limShort("11") + .shortCoef("12") + .valueCoef("13") + .openValueCoef("14") + .share("15") + .shortWaPrice("16") + .longWaPrice("17") + .profitLoss("18") + .spreadHc("19") + .canBuyOwn("20") + .canSellOwn("21") + .build(); + + return new GetBuySellInfo.Result(buySellInfo); + } + } +} diff --git a/src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java b/src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java new file mode 100644 index 0000000..0174298 --- /dev/null +++ b/src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java @@ -0,0 +1,95 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.google.common.collect.ImmutableList; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.List; + +@RunWith(Enclosed.class) +public class GetCandlesByIndexJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetCandlesByIndex.Args getArgsObject() { + + return GetCandlesByIndex.Args.builder() + .tag("1") + .line(2) + .firstCandle(3) + .count(4) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getCandlesByIndex/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getCandlesByIndex/result.json"; + } + + @Override + public GetCandlesByIndex.Result getExpectedObject() { + + final List t = ImmutableList.of( + + CandleEntry.builder() + .open("1") + .close("2") + .high("3") + .low("4") + .volume("5") + .dateTimeEntry( + DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(2009) + .build() + ) + .doesExist(1) + .build(), + + CandleEntry.builder() + .open("21") + .close("22") + .high("23") + .low("24") + .volume("25") + .dateTimeEntry( + DateTimeEntry.builder() + .mcs(31) + .ms(32) + .sec(33) + .min(34) + .hour(12) + .day(26) + .weekDay(5) + .month(3) + .year(2015) + .build() + ) + .doesExist(0) + .build() + + ); + + return new GetCandlesByIndex.Result(t, 2, "3"); + } + } +} diff --git a/src/test/java/wip/GetCellJsonSerdeTests.java b/src/test/java/wip/GetCellJsonSerdeTests.java new file mode 100644 index 0000000..69cde0c --- /dev/null +++ b/src/test/java/wip/GetCellJsonSerdeTests.java @@ -0,0 +1,44 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetCellJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetCell.Args getArgsObject() { + + return GetCell.Args.builder() + .tId(1) + .key(2) + .code(3) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/GetCell/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetCell/result.json"; + } + + @Override + public GetCell.Result getExpectedObject() { + + return GetCell.Result.builder() + .image("1") + .value("2") + .build(); + } + } +} diff --git a/src/test/java/wip/GetClassInfoJsonSerdeTests.java b/src/test/java/wip/GetClassInfoJsonSerdeTests.java new file mode 100644 index 0000000..42c7ced --- /dev/null +++ b/src/test/java/wip/GetClassInfoJsonSerdeTests.java @@ -0,0 +1,45 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetClassInfoJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetClassInfo.Args getArgsObject() { + return new GetClassInfo.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getClassInfo/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getClassInfo/result.json"; + } + + @Override + public GetClassInfo.Result getExpectedObject() { + + final ClassInfo classInfo = ClassInfo.builder() + .firmId("1") + .name("2") + .code("3") + .npars(4) + .nsecs(5) + .build(); + + return new GetClassInfo.Result(classInfo); + } + } +} diff --git a/src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java b/src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java new file mode 100644 index 0000000..9b061fe --- /dev/null +++ b/src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetClassSecuritiesJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetClassSecurities.Args getArgsObject() { + return new GetClassSecurities.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getClassSecurities/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getClassSecurities/result.json"; + } + + @Override + public GetClassSecurities.Result getExpectedObject() { + return new GetClassSecurities.Result("1"); + } + } +} diff --git a/src/test/java/wip/GetClassesListJsonSerdeTests.java b/src/test/java/wip/GetClassesListJsonSerdeTests.java new file mode 100644 index 0000000..cfba437 --- /dev/null +++ b/src/test/java/wip/GetClassesListJsonSerdeTests.java @@ -0,0 +1,22 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetClassesListJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getClassesList/result.json"; + } + + @Override + public GetClassesList.Result getExpectedObject() { + return new GetClassesList.Result("1"); + } + } +} diff --git a/src/test/java/wip/GetDepoExJsonSerdeTests.java b/src/test/java/wip/GetDepoExJsonSerdeTests.java new file mode 100644 index 0000000..8e94aed --- /dev/null +++ b/src/test/java/wip/GetDepoExJsonSerdeTests.java @@ -0,0 +1,62 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetDepoExJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetDepoEx.Args getArgsObject() { + + return GetDepoEx.Args.builder() + .firmId("1") + .clientCode("2") + .secCode("3") + .trdAccId("4") + .limitKind(5) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getDepoEx/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getDepoEx/result.json"; + } + + @Override + public GetDepoEx.Result getExpectedObject() { + + final DepoLimit depoEx = DepoLimit.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .openBal(5) + .openLimit(6) + .currentBal(7) + .currentLimit(8) + .lockedSell(9) + .lockedBuy(10) + .lockedBuyValue("11") + .lockedSellValue("12") + .waPositionPrice("13") + .limitKind(14) + .build(); + + + return GetDepoEx.Result.getInstance(depoEx); + } + } +} diff --git a/src/test/java/wip/GetDepoJsonSerdeTests.java b/src/test/java/wip/GetDepoJsonSerdeTests.java new file mode 100644 index 0000000..b686683 --- /dev/null +++ b/src/test/java/wip/GetDepoJsonSerdeTests.java @@ -0,0 +1,55 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; +import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetDepoJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetDepo.Args getArgsObject() { + + return GetDepo.Args.builder() + .clientCode("1") + .firmId("2") + .secCode("3") + .trdAccId("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getDepo/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getDepo/result.json"; + } + + @Override + public GetDepo.Result getExpectedObject() { + + final Depo depo = Depo.builder() + .depoLimitLockedBuyValue("1") + .depoCurrentBalance("2") + .depoLimitLockedBuy("3") + .depoLimitLocked("4") + .depoLimitAvailable("5") + .depoCurrentLimit("6") + .depoOpenBalance("7") + .depoOpenLimit("8") + .build(); + + + return new GetDepo.Result(depo); + } + } +} diff --git a/src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java b/src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java new file mode 100644 index 0000000..ae85ed0 --- /dev/null +++ b/src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java @@ -0,0 +1,66 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetFuturesHoldingJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetFuturesHolding.Args getArgsObject() { + + return GetFuturesHolding.Args.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getFuturesHolding/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getFuturesHolding/result.json"; + } + + @Override + public GetFuturesHolding.Result getExpectedObject() { + + final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + + + return GetFuturesHolding.Result.getInstance(futuresClientHolding); + } + } +} diff --git a/src/test/java/wip/GetFuturesLimitJsonSerdeTests.java b/src/test/java/wip/GetFuturesLimitJsonSerdeTests.java new file mode 100644 index 0000000..853f082 --- /dev/null +++ b/src/test/java/wip/GetFuturesLimitJsonSerdeTests.java @@ -0,0 +1,64 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetFuturesLimitJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetFuturesLimit.Args getArgsObject() { + + return GetFuturesLimit.Args.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .currCode("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getFuturesLimit/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getFuturesLimit/result.json"; + } + + @Override + public GetFuturesLimit.Result getExpectedObject() { + + final FuturesLimit futuresLimit = FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + + + return GetFuturesLimit.Result.getInstance(futuresLimit); + } + } +} diff --git a/src/test/java/wip/GetInfoParamJsonSerdeTests.java b/src/test/java/wip/GetInfoParamJsonSerdeTests.java new file mode 100644 index 0000000..2d4e0f4 --- /dev/null +++ b/src/test/java/wip/GetInfoParamJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetInfoParamJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetInfoParam.Args getArgsObject() { + return new GetInfoParam.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getInfoParam/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getInfoParam/result.json"; + } + + @Override + public GetInfoParam.Result getExpectedObject() { + return new GetInfoParam.Result("1"); + } + } +} diff --git a/src/test/java/wip/GetItemJsonSerdeTests.java b/src/test/java/wip/GetItemJsonSerdeTests.java new file mode 100644 index 0000000..ef8ef50 --- /dev/null +++ b/src/test/java/wip/GetItemJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.google.common.collect.ImmutableMap; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Map; + +@RunWith(Enclosed.class) +public class GetItemJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetItem.Args getArgsObject() { + return new GetItem.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/getItem/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getItem/result.json"; + } + + @Override + public GetItem.Result getExpectedObject() { + + final Map tableRow = ImmutableMap.of( + "field_1", "value_1", + "field_2", "value_2", + "field_3", "value_3", + "field_...", "value_...", + "field_n", "value_n" + + ); + + return GetItem.Result.getInstance(tableRow); + } + } +} diff --git a/src/test/java/wip/GetLabelParamsJsonSerdeTests.java b/src/test/java/wip/GetLabelParamsJsonSerdeTests.java new file mode 100644 index 0000000..e7e22c2 --- /dev/null +++ b/src/test/java/wip/GetLabelParamsJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.google.common.collect.ImmutableMap; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Map; + +@RunWith(Enclosed.class) +public class GetLabelParamsJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetLabelParams.Args getArgsObject() { + return new GetLabelParams.Args("1", 2); + } + + @Override + public String getArgsJsonPath() { + return "json/getLabelParams/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getLabelParams/result.json"; + } + + @Override + public GetLabelParams.Result getExpectedObject() { + + final Map labelParams = ImmutableMap.of( + "param_1", "value_1", + "param_2", "value_2", + "param_3", "value_3", + "param_...", "value_...", + "param_n", "value_n" + + ); + + return GetLabelParams.Result.getInstance(labelParams); + } + } +} diff --git a/src/test/java/wip/GetLinesCountJsonSerdeTests.java b/src/test/java/wip/GetLinesCountJsonSerdeTests.java new file mode 100644 index 0000000..90c660f --- /dev/null +++ b/src/test/java/wip/GetLinesCountJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetLinesCountJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetLinesCount.Args getArgsObject() { + return new GetLinesCount.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getLinesCount/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getLinesCount/result.json"; + } + + @Override + public GetLinesCount.Result getExpectedObject() { + return new GetLinesCount.Result(1); + } + } +} diff --git a/src/test/java/wip/GetMoneyExJsonSerdeTests.java b/src/test/java/wip/GetMoneyExJsonSerdeTests.java new file mode 100644 index 0000000..39a6bc5 --- /dev/null +++ b/src/test/java/wip/GetMoneyExJsonSerdeTests.java @@ -0,0 +1,61 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetMoneyExJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetMoneyEx.Args getArgsObject() { + + return GetMoneyEx.Args.builder() + .firmId("1") + .clientCode("2") + .tag("3") + .currCode("4") + .limitKind(5) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getMoneyEx/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getMoneyEx/result.json"; + } + + @Override + public GetMoneyEx.Result getExpectedObject() { + + final MoneyLimit moneyLimit = MoneyLimit.builder() + .currCode("1") + .tag("2") + .firmId("3") + .clientCode("4") + .openBal("5") + .openLimit("6") + .currentBal("7") + .currentLimit("8") + .locked("9") + .lockedValueCoef("10") + .lockedMarginValue("11") + .leverage("12") + .limitKind(13) + .build(); + + + return GetMoneyEx.Result.getInstance(moneyLimit); + } + } +} diff --git a/src/test/java/wip/GetMoneyJsonSerdeTests.java b/src/test/java/wip/GetMoneyJsonSerdeTests.java new file mode 100644 index 0000000..381e9f7 --- /dev/null +++ b/src/test/java/wip/GetMoneyJsonSerdeTests.java @@ -0,0 +1,54 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.api.structures.Money; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetMoneyJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetMoney.Args getArgsObject() { + + return GetMoney.Args.builder() + .clientCode("1") + .firmId("2") + .tag("3") + .currCode("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getMoney/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getMoney/result.json"; + } + + @Override + public GetMoney.Result getExpectedObject() { + + final Money money = Money.builder() + .moneyOpenLimit("1") + .moneyLimitLockedNonMarginalValue("2") + .moneyLimitLocked("3") + .moneyOpenBalance("4") + .moneyCurrentLimit("5") + .moneyCurrentBalance("6") + .moneyLimitAvailable("7") + .build(); + + + return new GetMoney.Result(money); + } + } +} diff --git a/src/test/java/wip/GetNumCandlesJsonSerdeTests.java b/src/test/java/wip/GetNumCandlesJsonSerdeTests.java new file mode 100644 index 0000000..2884052 --- /dev/null +++ b/src/test/java/wip/GetNumCandlesJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetNumCandlesJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetNumCandles.Args getArgsObject() { + return new GetNumCandles.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getNumCandles/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getNumCandles/result.json"; + } + + @Override + public GetNumCandles.Result getExpectedObject() { + return new GetNumCandles.Result(1); + } + } +} diff --git a/src/test/java/wip/GetNumberOfJsonSerdeTests.java b/src/test/java/wip/GetNumberOfJsonSerdeTests.java new file mode 100644 index 0000000..18e4667 --- /dev/null +++ b/src/test/java/wip/GetNumberOfJsonSerdeTests.java @@ -0,0 +1,35 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetNumberOfJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetNumberOf.Args getArgsObject() { + return new GetNumberOf.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/getNumberOf/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getNumberOf/result.json"; + } + + @Override + public GetNumberOf.Result getExpectedObject() { + return new GetNumberOf.Result(1); + } + } +} diff --git a/src/test/java/wip/GetOrderByNumberJsonSerdeTests.java b/src/test/java/wip/GetOrderByNumberJsonSerdeTests.java new file mode 100644 index 0000000..30396ad --- /dev/null +++ b/src/test/java/wip/GetOrderByNumberJsonSerdeTests.java @@ -0,0 +1,181 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetOrderByNumberJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetOrderByNumber.Args getArgsObject() { + return new GetOrderByNumber.Args("1", 12345678909876577L); + } + + @Override + public String getArgsJsonPath() { + return "json/getOrderByNumber/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + private static final int DATETIME_MCS = 1; + private static final int DATETIME_MS = 2; + private static final int DATETIME_SEC = 3; + private static final int DATETIME_MIN = 4; + private static final int DATETIME_HOUR = 5; + private static final int DATETIME_DAY = 6; + private static final int DATETIME_WEEK_DAY = 7; + private static final int DATETIME_MONTH = 8; + private static final int DATETIME_YEAR = 9; + + private static final long ORDER_NUM = 12345678909876577L; + private static final int FLAGS = 2; + private static final String BROKER_REF = "3"; + private static final String USER_ID = "4"; + private static final String FIRM_ID = "5"; + private static final String ACCOUNT = "6"; + private static final String PRICE = "7"; + private static final int QTY = 8; + private static final String BALANCE = "9"; + private static final String VALUE = "10"; + private static final String ACCRUED_INT = "11"; + private static final String YIELD = "12"; + private static final String TRANS_ID = "13"; + private static final String CLIENT_CODE = "14"; + private static final String PRICE2 = "15"; + private static final String SETTLE_CODE = "16"; + private static final String UID = "17"; + private static final String CANCELED_UID = "18"; + private static final String EXCHANGE_CODE = "19"; + private static final String ACTIVATION_TIME = "20"; + private static final String LINKED_ORDER = "21"; + private static final String EXPIRY = "22"; + private static final String SEC_CODE = "23"; + private static final String CLASS_CODE = "24"; + private static final String BANK_ACC_ID = "27"; + private static final int VALUE_ENTRY_TYPE = 28; + private static final String REPO_TERM = "29"; + private static final String REPO_VALUE = "30"; + private static final String REPO2_VALUE = "31"; + private static final String REPO_VALUE_BALANCE = "32"; + private static final String START_DISCOUNT = "33"; + private static final String REJECT_REASON = "34"; + private static final String EXT_ORDER_FLAGS = "35"; + private static final int MIN_QTY = 36; + private static final int EXEC_TYPE = 37; + private static final int SIDE_QUALIFIER = 38; + private static final int ACNT_TYPE = 39; + private static final int CAPACITY = 40; + private static final int PASSIVE_ONLY_ORDER = 41; + private static final int VISIBLE = 42; + private static final String AWG_PRICE = "43"; + private static final String EXPIRY_TIME = "44"; + private static final String REVISION_NUMBER = "45"; + private static final String PRICE_CURRENCY = "46"; + private static final int EXT_ORDER_STATUS = 47; + private static final String ACCEPTED_UID = "48"; + private static final String FILLED_VALUE = "49"; + private static final String EXT_REF = "50"; + private static final String SETTLE_CURRENCY = "51"; + private static final String ON_BEHALF_OF_UID = "52"; + private static final int CLIENT_QUALIFIER = 53; + private static final String CLIENT_SHORT_CODE = "54"; + private static final int INVESTMENT_DECISION_MAKER_QUALIFIER = 55; + private static final String INVESTMENT_DECISION_MAKER_SHORT_CODE = "56"; + private static final int EXECUTING_TRADER_QUALIFIER = 57; + private static final String EXECUTING_TRADER_SHORT_CODE = "58"; + + private static final int INDX = 2; + + @Override + public String getJsonPath() { + return "json/getOrderByNumber/result.json"; + } + + @Override + public GetOrderByNumber.Result getExpectedObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(DATETIME_MCS) + .ms(DATETIME_MS) + .sec(DATETIME_SEC) + .min(DATETIME_MIN) + .hour(DATETIME_HOUR) + .day(DATETIME_DAY) + .weekDay(DATETIME_WEEK_DAY) + .month(DATETIME_MONTH) + .year(DATETIME_YEAR) + .build(); + + final Order order = Order.builder() + .orderNum(ORDER_NUM) + .flags(FLAGS) + .brokerRef(BROKER_REF) + .userId(USER_ID) + .firmId(FIRM_ID) + .account(ACCOUNT) + .price(PRICE) + .qty(QTY) + .balance(BALANCE) + .value(VALUE) + .accruedInt(ACCRUED_INT) + .yield(YIELD) + .transId(TRANS_ID) + .clientCode(CLIENT_CODE) + .price2(PRICE2) + .settleCode(SETTLE_CODE) + .uid(UID) + .canceledUid(CANCELED_UID) + .exchangeCode(EXCHANGE_CODE) + .activationTime(ACTIVATION_TIME) + .linkedOrder(LINKED_ORDER) + .expiry(EXPIRY) + .secCode(SEC_CODE) + .classCode(CLASS_CODE) + .datetime(dateTimeEntry) + .withdrawDatetime(dateTimeEntry) + .bankAccId(BANK_ACC_ID) + .valueEntryType(VALUE_ENTRY_TYPE) + .repoTerm(REPO_TERM) + .repoValue(REPO_VALUE) + .repo2Value(REPO2_VALUE) + .repoValueBalance(REPO_VALUE_BALANCE) + .startDiscount(START_DISCOUNT) + .rejectReason(REJECT_REASON) + .extOrderFlags(EXT_ORDER_FLAGS) + .minQty(MIN_QTY) + .execType(EXEC_TYPE) + .sideQualifier(SIDE_QUALIFIER) + .acntType(ACNT_TYPE) + .capacity(CAPACITY) + .passiveOnlyOrder(PASSIVE_ONLY_ORDER) + .visible(VISIBLE) + .awgPrice(AWG_PRICE) + .expiryTime(EXPIRY_TIME) + .revisionNumber(REVISION_NUMBER) + .priceCurrency(PRICE_CURRENCY) + .extOrderStatus(EXT_ORDER_STATUS) + .acceptedUid(ACCEPTED_UID) + .filledValue(FILLED_VALUE) + .extRef(EXT_REF) + .settleCurrency(SETTLE_CURRENCY) + .onBehalfOfUid(ON_BEHALF_OF_UID) + .clientQualifier(CLIENT_QUALIFIER) + .clientShortCode(CLIENT_SHORT_CODE) + .investmentDecisionMakerQualifier(INVESTMENT_DECISION_MAKER_QUALIFIER) + .investmentDecisionMakerShortCode(INVESTMENT_DECISION_MAKER_SHORT_CODE) + .executingTraderQualifier(EXECUTING_TRADER_QUALIFIER) + .executingTraderShortCode(EXECUTING_TRADER_SHORT_CODE) + .build(); + + + return GetOrderByNumber.Result.getInstance(order, INDX); + } + } +} diff --git a/src/test/java/wip/GetParamEx2JsonSerdeTests.java b/src/test/java/wip/GetParamEx2JsonSerdeTests.java new file mode 100644 index 0000000..69c8da8 --- /dev/null +++ b/src/test/java/wip/GetParamEx2JsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetParamEx2JsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetParamEx2.Args getArgsObject() { + + return GetParamEx2.Args.builder() + .classCode("1") + .secCode("2") + .paramName("3") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getParamEx2/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getParamEx2/result.json"; + } + + @Override + public GetParamEx2.Result getExpectedObject() { + + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType("1") + .paramValue("2") + .paramImage("3") + .result("4") + .build(); + + return new GetParamEx2.Result(paramEx); + } + } +} diff --git a/src/test/java/wip/GetParamExJsonSerdeTests.java b/src/test/java/wip/GetParamExJsonSerdeTests.java new file mode 100644 index 0000000..8968f8b --- /dev/null +++ b/src/test/java/wip/GetParamExJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetParamExJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetParamEx.Args getArgsObject() { + + return GetParamEx.Args.builder() + .classCode("1") + .secCode("2") + .paramName("3") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getParamEx/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getParamEx/result.json"; + } + + @Override + public GetParamEx.Result getExpectedObject() { + + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType("1") + .paramValue("2") + .paramImage("3") + .result("4") + .build(); + + return new GetParamEx.Result(paramEx); + } + } +} diff --git a/src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java b/src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java new file mode 100644 index 0000000..1a836e3 --- /dev/null +++ b/src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java @@ -0,0 +1,179 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetPortfolioInfoExJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetPortfolioInfoEx.Args getArgsObject() { + + return GetPortfolioInfoEx.Args.builder() + .firmId("1") + .clientCode("2") + .limitKind(3) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getPortfolioInfoEx/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getPortfolioInfoEx/result.json"; + } + + @Override + public GetPortfolioInfoEx.Result getExpectedObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .inAssets(PortfolioInfoParameters.IN_ASSETS) + .leverage(PortfolioInfoParameters.LEVERAGE) + .openLimit(PortfolioInfoParameters.OPEN_LIMIT) + .valShort(PortfolioInfoParameters.VAL_SHORT) + .valLong(PortfolioInfoParameters.VAL_LONG) + .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .assets(PortfolioInfoParameters.ASSETS) + .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .margin(PortfolioInfoParameters.MARGIN) + .limAll(PortfolioInfoParameters.LIM_ALL) + .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .lockedSell(PortfolioInfoParameters.LOCKED_SELL) + .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .allAssets(PortfolioInfoParameters.ALL_ASSETS) + .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .rateChange(PortfolioInfoParameters.RATE_CHANGE) + .limBuy(PortfolioInfoParameters.LIM_BUY) + .limSell(PortfolioInfoParameters.LIM_SELL) + .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .haircuts(PortfolioInfoParameters.HAIRCUTS) + .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .statusCoef(PortfolioInfoParameters.STATUS_COEF) + .varMargin(PortfolioInfoParameters.VAR_MARGIN) + .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .rateFutures(PortfolioInfoParameters.RATE_FUTURES) + .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .isFutures(PortfolioInfoParameters.IS_FUTURES) + .currTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return GetPortfolioInfoEx.Result.builder() + .portfolioInfo(portfolioInfo) + .initMargin(PortfolioInfoExParameters.INIT_MARGIN) + .minMargin(PortfolioInfoExParameters.MIN_MARGIN) + .correctedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) + .clientType(PortfolioInfoExParameters.CLIENT_TYPE) + .portfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) + .startLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) + .totalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) + .limitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) + .usedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) + .accVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) + .clVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) + .optLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) + .futAsset(PortfolioInfoExParameters.FUT_ASSET) + .futTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) + .futDebt(PortfolioInfoExParameters.FUT_DEBT) + .futRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) + .futRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) + .futRateGo(PortfolioInfoExParameters.FUT_RATE_GO) + .planedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) + .cashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) + .futPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) + .futAccruedInt(PortfolioInfoExParameters.FUT_ACCURED_INT) + .build(); + } + + private static final class PortfolioInfoParameters { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + } + + private static final class PortfolioInfoExParameters { + + private static final String INIT_MARGIN = "2"; + private static final String MIN_MARGIN = "3"; + private static final String CORRECTED_MARGIN = "4"; + private static final String CLIENT_TYPE = "5"; + private static final String PORTFOLIO_VALUE = "6"; + private static final String START_LIMIT_OPEN_POS = "7"; + private static final String TOTAL_LIMIT_OPEN_POS = "8"; + private static final String LIMIT_OPEN_POS = "9"; + private static final String USED_LIM_OPEN_POS = "10"; + private static final String ACC_VAR_MARGIN = "11"; + private static final String CL_VAR_MARGIN = "12"; + private static final String OPT_LIQUID_COST = "13"; + private static final String FUT_ASSET = "14"; + private static final String FUT_TOTAL_ASSET = "15"; + private static final String FUT_DEBT = "16"; + private static final String FUT_RATE_ASSET = "17"; + private static final String FUT_RATE_ASSET_OPEN = "18"; + private static final String FUT_RATE_GO = "19"; + private static final String PLANED_RATE_GO = "20"; + private static final String CASH_LEVERAGE = "21"; + private static final String FUT_POSITION_TYPE = "22"; + private static final String FUT_ACCURED_INT = "23"; + } + } +} diff --git a/src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java b/src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java new file mode 100644 index 0000000..36e4f72 --- /dev/null +++ b/src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java @@ -0,0 +1,128 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetPortfolioInfoJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetPortfolioInfo.Args getArgsObject() { + + return GetPortfolioInfo.Args.builder() + .firmId("1") + .clientCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getPortfolioInfo/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getPortfolioInfo/result.json"; + } + + @Override + public GetPortfolioInfo.Result getExpectedObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .inAssets(PortfolioInfoParameters.IN_ASSETS) + .leverage(PortfolioInfoParameters.LEVERAGE) + .openLimit(PortfolioInfoParameters.OPEN_LIMIT) + .valShort(PortfolioInfoParameters.VAL_SHORT) + .valLong(PortfolioInfoParameters.VAL_LONG) + .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .assets(PortfolioInfoParameters.ASSETS) + .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .margin(PortfolioInfoParameters.MARGIN) + .limAll(PortfolioInfoParameters.LIM_ALL) + .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .lockedSell(PortfolioInfoParameters.LOCKED_SELL) + .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .allAssets(PortfolioInfoParameters.ALL_ASSETS) + .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .rateChange(PortfolioInfoParameters.RATE_CHANGE) + .limBuy(PortfolioInfoParameters.LIM_BUY) + .limSell(PortfolioInfoParameters.LIM_SELL) + .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .haircuts(PortfolioInfoParameters.HAIRCUTS) + .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .statusCoef(PortfolioInfoParameters.STATUS_COEF) + .varMargin(PortfolioInfoParameters.VAR_MARGIN) + .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .rateFutures(PortfolioInfoParameters.RATE_FUTURES) + .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .isFutures(PortfolioInfoParameters.IS_FUTURES) + .currTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return new GetPortfolioInfo.Result(portfolioInfo); + } + + private static final class PortfolioInfoParameters { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + } + } +} diff --git a/src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java b/src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java new file mode 100644 index 0000000..70789b5 --- /dev/null +++ b/src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java @@ -0,0 +1,61 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.google.common.collect.ImmutableList; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.List; + +@RunWith(Enclosed.class) +public class GetQuoteLevel2JsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetQuoteLevel2.Args getArgsObject() { + + return GetQuoteLevel2.Args.builder() + .classCode("1") + .secCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getQuoteLevel2/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getQuoteLevel2/result.json"; + } + + @Override + public GetQuoteLevel2.Result getExpectedObject() { + + final List bids = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("1").quantity("100").build(), + GetQuoteLevel2.QuoteEntry.builder().price("2").quantity("200").build(), + GetQuoteLevel2.QuoteEntry.builder().price("3").quantity("300").build(), + GetQuoteLevel2.QuoteEntry.builder().price("4").quantity("400").build() + ); + + final List offers = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("5").quantity("500").build(), + GetQuoteLevel2.QuoteEntry.builder().price("6").quantity("600").build(), + GetQuoteLevel2.QuoteEntry.builder().price("7").quantity("700").build() + ); + + return GetQuoteLevel2.Result.builder() + .bids(bids) + .offers(offers) + .bidCount("4") + .offerCount("3") + .build(); + } + } +} diff --git a/src/test/java/wip/GetScriptPathJsonSerdeTests.java b/src/test/java/wip/GetScriptPathJsonSerdeTests.java new file mode 100644 index 0000000..f4ebfbc --- /dev/null +++ b/src/test/java/wip/GetScriptPathJsonSerdeTests.java @@ -0,0 +1,22 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetScriptPathJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getScriptPath/result.json"; + } + + @Override + public GetScriptPath.Result getExpectedObject() { + return new GetScriptPath.Result("1"); + } + } +} diff --git a/src/test/java/wip/GetSecurityInfoJsonSerdeTests.java b/src/test/java/wip/GetSecurityInfoJsonSerdeTests.java new file mode 100644 index 0000000..016d3ef --- /dev/null +++ b/src/test/java/wip/GetSecurityInfoJsonSerdeTests.java @@ -0,0 +1,86 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetSecurityInfoJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetSecurityInfo.Args getArgsObject() { + + return GetSecurityInfo.Args.builder() + .classCode("1") + .secCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/getSecurityInfo/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getSecurityInfo/result.json"; + } + + @Override + public GetSecurityInfo.Result getExpectedObject() { + + final Security security = Security.builder() + .code(SecurityParameters.CODE) + .name(SecurityParameters.NAME) + .shortName(SecurityParameters.SHORT_NAME) + .classCode(SecurityParameters.CLASS_CODE) + .className(SecurityParameters.CLASS_NAME) + .faceValue(SecurityParameters.FACE_VALUE) + .faceUnit(SecurityParameters.FACE_UNIT) + .scale(SecurityParameters.SCALE) + .matDate(SecurityParameters.MAT_DATE) + .lotSize(SecurityParameters.LOT_SIZE) + .isinCode(SecurityParameters.ISIN_CODE) + .minPriceStep(SecurityParameters.MIN_PRICE_STEP) + .build(); + + return GetSecurityInfo.Result.getInstance(security); + } + + private static final class SecurityParameters { + + private static final String CODE = "1"; + private static final String NAME = "2"; + private static final String SHORT_NAME = "3"; + private static final String CLASS_CODE = "4"; + private static final String CLASS_NAME = "5"; + private static final String FACE_VALUE = "6"; + private static final String FACE_UNIT = "7"; + private static final String SCALE = "8"; + private static final String MAT_DATE = "9"; + private static final String LOT_SIZE = "10"; + private static final String ISIN_CODE = "11"; + private static final String MIN_PRICE_STEP = "12"; + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getSecurityInfo/error.result.json"; + } + + @Override + public GetSecurityInfo.Result getExpectedObject() { + return GetSecurityInfo.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/GetTableSizeJsonSerdeTests.java b/src/test/java/wip/GetTableSizeJsonSerdeTests.java new file mode 100644 index 0000000..601d035 --- /dev/null +++ b/src/test/java/wip/GetTableSizeJsonSerdeTests.java @@ -0,0 +1,54 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetTableSizeJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetTableSize.Args getArgsObject() { + return new GetTableSize.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/GetTableSize/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetTableSize/result.json"; + } + + @Override + public GetTableSize.Result getExpectedObject() { + + final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() + .rows(1) + .col(2) + .build(); + + return GetTableSize.Result.getInstance(tableSize); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetTableSize/error.result.json"; + } + + @Override + public GetTableSize.Result getExpectedObject() { + return GetTableSize.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/GetTradeDateJsonSerdeTests.java b/src/test/java/wip/GetTradeDateJsonSerdeTests.java new file mode 100644 index 0000000..0c80a61 --- /dev/null +++ b/src/test/java/wip/GetTradeDateJsonSerdeTests.java @@ -0,0 +1,30 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetTradeDateJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getTradeDate/result.json"; + } + + @Override + public GetTradeDate.Result getExpectedObject() { + + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date("1") + .year(2) + .month(3) + .day(4) + .build(); + + return new GetTradeDate.Result(tradeDate); + } + } +} diff --git a/src/test/java/wip/GetWindowCaptionJsonSerdeTests.java b/src/test/java/wip/GetWindowCaptionJsonSerdeTests.java new file mode 100644 index 0000000..5f6a315 --- /dev/null +++ b/src/test/java/wip/GetWindowCaptionJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetWindowCaptionJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetWindowCaption.Args getArgsObject() { + return new GetWindowCaption.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/GetWindowCaption/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetWindowCaption/result.json"; + } + + @Override + public GetWindowCaption.Result getExpectedObject() { + return GetWindowCaption.Result.getInstance("1"); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetWindowCaption/error.result.json"; + } + + @Override + public GetWindowCaption.Result getExpectedObject() { + return GetWindowCaption.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/GetWindowRectJsonSerdeTests.java b/src/test/java/wip/GetWindowRectJsonSerdeTests.java new file mode 100644 index 0000000..3c0d2a7 --- /dev/null +++ b/src/test/java/wip/GetWindowRectJsonSerdeTests.java @@ -0,0 +1,56 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetWindowRectJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public GetWindowRect.Args getArgsObject() { + return new GetWindowRect.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/GetWindowRect/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetWindowRect/result.json"; + } + + @Override + public GetWindowRect.Result getExpectedObject() { + + final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() + .top(1) + .left(2) + .bottom(3) + .right(4) + .build(); + + return GetWindowRect.Result.getInstance(windowRect); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/GetWindowRect/error.result.json"; + } + + @Override + public GetWindowRect.Result getExpectedObject() { + return GetWindowRect.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/GetWorkingFolderJsonSerdeTests.java b/src/test/java/wip/GetWorkingFolderJsonSerdeTests.java new file mode 100644 index 0000000..446c333 --- /dev/null +++ b/src/test/java/wip/GetWorkingFolderJsonSerdeTests.java @@ -0,0 +1,22 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetWorkingFolderJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/getWorkingFolder/result.json"; + } + + @Override + public GetWorkingFolder.Result getExpectedObject() { + return new GetWorkingFolder.Result("1"); + } + } +} diff --git a/src/test/java/wip/HighlightJsonSerdeTests.java b/src/test/java/wip/HighlightJsonSerdeTests.java new file mode 100644 index 0000000..8104efd --- /dev/null +++ b/src/test/java/wip/HighlightJsonSerdeTests.java @@ -0,0 +1,56 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class HighlightJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Highlight.Args getArgsObject() { + + return Highlight.Args.builder() + .tId(1) + .row(2) + .col(3) + .bColor(4) + .fColor(5) + .timeout(6) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/Highlight/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Highlight/true.result.json"; + } + + @Override + public Highlight.Result getExpectedObject() { + return Highlight.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Highlight/false.result.json"; + } + + @Override + public Highlight.Result getExpectedObject() { + return Highlight.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/InsertRowJsonSerdeTests.java b/src/test/java/wip/InsertRowJsonSerdeTests.java new file mode 100644 index 0000000..d38f748 --- /dev/null +++ b/src/test/java/wip/InsertRowJsonSerdeTests.java @@ -0,0 +1,39 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class InsertRowJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public InsertRow.Args getArgsObject() { + + return InsertRow.Args.builder() + .tId(1) + .key(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/InsertRow/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/InsertRow/result.json"; + } + + @Override + public InsertRow.Result getExpectedObject() { + return new InsertRow.Result(1); + } + } +} diff --git a/src/test/java/wip/IsConnectedJsonSerdeTests.java b/src/test/java/wip/IsConnectedJsonSerdeTests.java new file mode 100644 index 0000000..e5dbb2e --- /dev/null +++ b/src/test/java/wip/IsConnectedJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsConnectedJsonSerdeTests { + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/isConnected/1.result.json"; + } + + @Override + public IsConnected.Result getExpectedObject() { + return IsConnected.Result.getInstance(1); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/isConnected/0.result.json"; + } + + @Override + public IsConnected.Result getExpectedObject() { + return IsConnected.Result.getInstance(0); + } + } + + public static class RpcOtherResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/isConnected/other.result.json"; + } + + @Override + public IsConnected.Result getExpectedObject() { + return IsConnected.Result.getInstance(123); + } + } +} diff --git a/src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java b/src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java new file mode 100644 index 0000000..f6793f1 --- /dev/null +++ b/src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java @@ -0,0 +1,52 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsSubscribedLevel2QuotesJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public IsSubscribedLevel2Quotes.Args getArgsObject() { + + return IsSubscribedLevel2Quotes.Args.builder() + .classCode("1") + .secCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/IsSubscribed_Level_II_Quotes/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/IsSubscribed_Level_II_Quotes/true.result.json"; + } + + @Override + public IsSubscribedLevel2Quotes.Result getExpectedObject() { + return IsSubscribedLevel2Quotes.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/IsSubscribed_Level_II_Quotes/false.result.json"; + } + + @Override + public IsSubscribedLevel2Quotes.Result getExpectedObject() { + return IsSubscribedLevel2Quotes.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/IsWindowClosedJsonSerdeTests.java b/src/test/java/wip/IsWindowClosedJsonSerdeTests.java new file mode 100644 index 0000000..01b9b91 --- /dev/null +++ b/src/test/java/wip/IsWindowClosedJsonSerdeTests.java @@ -0,0 +1,61 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsWindowClosedJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public IsWindowClosed.Args getArgsObject() { + return new IsWindowClosed.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/IsWindowClosed/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/IsWindowClosed/true.result.json"; + } + + @Override + public IsWindowClosed.Result getExpectedObject() { + return IsWindowClosed.Result.getInstance(Boolean.TRUE); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/IsWindowClosed/false.result.json"; + } + + @Override + public IsWindowClosed.Result getExpectedObject() { + return IsWindowClosed.Result.getInstance(Boolean.FALSE); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/IsWindowClosed/error.result.json"; + } + + @Override + public IsWindowClosed.Result getExpectedObject() { + return IsWindowClosed.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/MessageJsonSerdeTests.java b/src/test/java/wip/MessageJsonSerdeTests.java new file mode 100644 index 0000000..c0c87d8 --- /dev/null +++ b/src/test/java/wip/MessageJsonSerdeTests.java @@ -0,0 +1,74 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class MessageJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Message.Args getArgsObject() { + return new Message.Args("1", Message.IconType.WARNING); + } + + @Override + public String getArgsJsonPath() { + return "json/message/full.args.json"; + } + } + + public static class RpcWithoutIconTypeArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Message.Args getArgsObject() { + return new Message.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/message/without_icon_type.args.json"; + } + } + + public static class RpcOkResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/message/ok.result.json"; + } + + @Override + public Message.Result getExpectedObject() { + return Message.Result.getOkInstance(); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/message/error.result.json"; + } + + @Override + public Message.Result getExpectedObject() { + return Message.Result.getErrorInstance(); + } + } + + public static class RpcOtherResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/message/other.result.json"; + } + + @Override + public Message.Result getExpectedObject() { + return Message.Result.getInstance(789); + } + } +} diff --git a/src/test/java/wip/ParamRequestJsonSerdeTests.java b/src/test/java/wip/ParamRequestJsonSerdeTests.java new file mode 100644 index 0000000..ef89297 --- /dev/null +++ b/src/test/java/wip/ParamRequestJsonSerdeTests.java @@ -0,0 +1,53 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class ParamRequestJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public ParamRequest.Args getArgsObject() { + + return ParamRequest.Args.builder() + .classCode("1") + .secCode("2") + .dbName("3") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/ParamRequest/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/ParamRequest/true.result.json"; + } + + @Override + public ParamRequest.Result getExpectedObject() { + return ParamRequest.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/ParamRequest/false.result.json"; + } + + @Override + public ParamRequest.Result getExpectedObject() { + return ParamRequest.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/PrintDbgStrJsonSerdeTests.java b/src/test/java/wip/PrintDbgStrJsonSerdeTests.java new file mode 100644 index 0000000..0cbf288 --- /dev/null +++ b/src/test/java/wip/PrintDbgStrJsonSerdeTests.java @@ -0,0 +1,22 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class PrintDbgStrJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public PrintDbgStr.Args getArgsObject() { + return new PrintDbgStr.Args("1"); + } + + @Override + public String getArgsJsonPath() { + return "json/PrintDbgStr/args.json"; + } + } +} diff --git a/src/test/java/wip/RGBJsonSerdeTests.java b/src/test/java/wip/RGBJsonSerdeTests.java new file mode 100644 index 0000000..d1c665d --- /dev/null +++ b/src/test/java/wip/RGBJsonSerdeTests.java @@ -0,0 +1,40 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class RGBJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public RGB.Args getArgsObject() { + + return RGB.Args.builder() + .red(1) + .green(2) + .blue(3) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/RGB/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/RGB/result.json"; + } + + @Override + public RGB.Result getExpectedObject() { + return new RGB.Result(1); + } + } +} diff --git a/src/test/java/wip/SearchItemsJsonSerdeTests.java b/src/test/java/wip/SearchItemsJsonSerdeTests.java new file mode 100644 index 0000000..aacad13 --- /dev/null +++ b/src/test/java/wip/SearchItemsJsonSerdeTests.java @@ -0,0 +1,106 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SearchItemsJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SearchItems.Args getArgsObject() { + + return SearchItems.Args.builder() + .tableName("1") + .startIndex(2) + .endIndex(3) + .fnDef("4") + .params("5") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SearchItems/full.args.json"; + } + } + + public static class RpcWithoutParamsArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SearchItems.Args getArgsObject() { + + return SearchItems.Args.builder() + .tableName("1") + .startIndex(2) + .endIndex(3) + .fnDef("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SearchItems/without_params.args.json"; + } + } + + public static class RpcWithoutEndIndexArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SearchItems.Args getArgsObject() { + + return SearchItems.Args.builder() + .tableName("1") + .startIndex(2) + .fnDef("3") + .params("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SearchItems/without_end_index.args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SearchItems/result.json"; + } + + @Override + public SearchItems.Result getExpectedObject() { + return SearchItems.Result.getInstance(new int[]{1, 3, 5, 7, 9}); + } + } + + public static class RpcNullResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SearchItems/null.result.json"; + } + + @Override + public SearchItems.Result getExpectedObject() { + return SearchItems.Result.getNullOrEmptyInstance(); + } + } + + public static class RpcEmptyResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SearchItems/empty.result.json"; + } + + @Override + public SearchItems.Result getExpectedObject() { + return SearchItems.Result.getNullOrEmptyInstance(); + } + } +} diff --git a/src/test/java/wip/SendTransactionJsonSerdeTests.java b/src/test/java/wip/SendTransactionJsonSerdeTests.java new file mode 100644 index 0000000..38de084 --- /dev/null +++ b/src/test/java/wip/SendTransactionJsonSerdeTests.java @@ -0,0 +1,43 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.google.common.collect.ImmutableMap; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SendTransactionJsonSerdeTests { + + public static class JsonRpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public String getArgsJsonPath() { + return "json/sendTransaction/args.json"; + } + + @Override + public SendTransaction.Args getArgsObject() { + + return new SendTransaction.Args( + ImmutableMap.of( + "key_1", "value_1", + "key_2", "value_2", + "key_3", "value_3" + ) + ); + } + } + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/sendTransaction/result.json"; + } + + @Override + public SendTransaction.Result getExpectedObject() { + return new SendTransaction.Result("1"); + } + } +} diff --git a/src/test/java/wip/SetCellJsonSerdeTests.java b/src/test/java/wip/SetCellJsonSerdeTests.java new file mode 100644 index 0000000..5b78494 --- /dev/null +++ b/src/test/java/wip/SetCellJsonSerdeTests.java @@ -0,0 +1,74 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetCellJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetCell.Args getArgsObject() { + + return SetCell.Args.builder() + .tId(1) + .key(2) + .code(3) + .text("4") + .value(5.55) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetCell/full.args.json"; + } + } + + public static class RpcWithoutValueArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetCell.Args getArgsObject() { + + return SetCell.Args.builder() + .tId(1) + .key(2) + .code(3) + .text("4") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetCell/without_value.args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetCell/true.result.json"; + } + + @Override + public SetCell.Result getExpectedObject() { + return SetCell.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetCell/false.result.json"; + } + + @Override + public SetCell.Result getExpectedObject() { + return SetCell.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SetColorJsonSerdeTests.java b/src/test/java/wip/SetColorJsonSerdeTests.java new file mode 100644 index 0000000..26fb0a5 --- /dev/null +++ b/src/test/java/wip/SetColorJsonSerdeTests.java @@ -0,0 +1,73 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetColorJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetColor.Args getArgsObject() { + + return SetColor.Args.builder() + .tId(1) + .row(2) + .col(3) + .bColor(4) + .fColor(5) + .selBColor(6) + .selFColor(7) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetColor/args.json"; + } + } + + public static class RpcDefaultArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetColor.Args getArgsObject() { + + return SetColor.Args.builder() + .tId(1) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetColor/default.args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetColor/true.result.json"; + } + + @Override + public SetColor.Result getExpectedObject() { + return SetColor.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetColor/false.result.json"; + } + + @Override + public SetColor.Result getExpectedObject() { + return SetColor.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SetLabelParamsJsonSerdeTests.java b/src/test/java/wip/SetLabelParamsJsonSerdeTests.java new file mode 100644 index 0000000..079deb0 --- /dev/null +++ b/src/test/java/wip/SetLabelParamsJsonSerdeTests.java @@ -0,0 +1,58 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.google.common.collect.ImmutableMap; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Map; + +@RunWith(Enclosed.class) +public class SetLabelParamsJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetLabelParams.Args getArgsObject() { + + final Map labelParams = ImmutableMap.of( + "key_1", "value_1", + "key_2", "value_2", + "key_3", "value_3" + ); + + return new SetLabelParams.Args("1",2, labelParams); + } + + @Override + public String getArgsJsonPath() { + return "json/SetLabelParams/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetLabelParams/true.result.json"; + } + + @Override + public SetLabelParams.Result getExpectedObject() { + return SetLabelParams.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetLabelParams/false.result.json"; + } + + @Override + public SetLabelParams.Result getExpectedObject() { + return SetLabelParams.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SetSelectedRowJsonSerdeTests.java b/src/test/java/wip/SetSelectedRowJsonSerdeTests.java new file mode 100644 index 0000000..7e6f881 --- /dev/null +++ b/src/test/java/wip/SetSelectedRowJsonSerdeTests.java @@ -0,0 +1,68 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetSelectedRowJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetSelectedRow.Args getArgsObject() { + + return SetSelectedRow.Args.builder() + .tableId(1) + .row(2) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetSelectedRow/args.json"; + } + } + + public static class RpcDefaultRowArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetSelectedRow.Args getArgsObject() { + + return SetSelectedRow.Args.builder() + .tableId(1) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetSelectedRow/default_row.args.json"; + } + } + + public static class RpcOkResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetSelectedRow/ok.result.json"; + } + + @Override + public SetSelectedRow.Result getExpectedObject() { + return SetSelectedRow.Result.getInstance(1); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetSelectedRow/error.result.json"; + } + + @Override + public SetSelectedRow.Result getExpectedObject() { + return SetSelectedRow.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java b/src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java new file mode 100644 index 0000000..d0ac0d9 --- /dev/null +++ b/src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java @@ -0,0 +1,61 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetTableNotificationCallbackJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetTableNotificationCallback.Args getArgsObject() { + return new SetTableNotificationCallback.Args(1, "2"); + } + + @Override + public String getArgsJsonPath() { + return "json/SetTableNotificationCallback/args.json"; + } + } + + public static class RpcOkResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetTableNotificationCallback/ok.result.json"; + } + + @Override + public SetTableNotificationCallback.Result getExpectedObject() { + return SetTableNotificationCallback.Result.getOkInstance(); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetTableNotificationCallback/error.result.json"; + } + + @Override + public SetTableNotificationCallback.Result getExpectedObject() { + return SetTableNotificationCallback.Result.getErrorInstance(); + } + } + + public static class RpcOtherResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetTableNotificationCallback/other.result.json"; + } + + @Override + public SetTableNotificationCallback.Result getExpectedObject() { + return SetTableNotificationCallback.Result.getInstance(345); + } + } +} diff --git a/src/test/java/wip/SetWindowCaptionJsonSerdeTests.java b/src/test/java/wip/SetWindowCaptionJsonSerdeTests.java new file mode 100644 index 0000000..156edbc --- /dev/null +++ b/src/test/java/wip/SetWindowCaptionJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetWindowCaptionJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetWindowCaption.Args getArgsObject() { + return new SetWindowCaption.Args(1, "2"); + } + + @Override + public String getArgsJsonPath() { + return "json/SetWindowCaption/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetWindowCaption/true.result.json"; + } + + @Override + public SetWindowCaption.Result getExpectedObject() { + return SetWindowCaption.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetWindowCaption/false.result.json"; + } + + @Override + public SetWindowCaption.Result getExpectedObject() { + return SetWindowCaption.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SetWindowPosJsonSerdeTests.java b/src/test/java/wip/SetWindowPosJsonSerdeTests.java new file mode 100644 index 0000000..7130b23 --- /dev/null +++ b/src/test/java/wip/SetWindowPosJsonSerdeTests.java @@ -0,0 +1,55 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetWindowPosJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SetWindowPos.Args getArgsObject() { + + return SetWindowPos.Args.builder() + .tId(1) + .x(2) + .y(3) + .dx(4) + .dy(5) + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/SetWindowPos/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetWindowPos/true.result.json"; + } + + @Override + public SetWindowPos.Result getExpectedObject() { + return SetWindowPos.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/SetWindowPos/false.result.json"; + } + + @Override + public SetWindowPos.Result getExpectedObject() { + return SetWindowPos.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SleepJsonSerdeTests.java b/src/test/java/wip/SleepJsonSerdeTests.java new file mode 100644 index 0000000..e11ede4 --- /dev/null +++ b/src/test/java/wip/SleepJsonSerdeTests.java @@ -0,0 +1,48 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SleepJsonSerdeTests { + + public static class RpcFullArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public Sleep.Args getArgsObject() { + return new Sleep.Args(1); + } + + @Override + public String getArgsJsonPath() { + return "json/sleep/args.json"; + } + } + + public static class RpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/sleep/result.json"; + } + + @Override + public Sleep.Result getExpectedObject() { + return Sleep.Result.getInstance(1); + } + } + + public static class RpcErrorResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/sleep/error.result.json"; + } + + @Override + public Sleep.Result getExpectedObject() { + return Sleep.Result.getErrorInstance(); + } + } +} diff --git a/src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java b/src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java new file mode 100644 index 0000000..a6aa279 --- /dev/null +++ b/src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java @@ -0,0 +1,52 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SubscribeLevel2QuotesJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public SubscribeLevel2Quotes.Args getArgsObject() { + + return SubscribeLevel2Quotes.Args.builder() + .classCode("1") + .secCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/Subscribe_Level_II_Quotes/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Subscribe_Level_II_Quotes/true.result.json"; + } + + @Override + public SubscribeLevel2Quotes.Result getExpectedObject() { + return SubscribeLevel2Quotes.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Subscribe_Level_II_Quotes/false.result.json"; + } + + @Override + public SubscribeLevel2Quotes.Result getExpectedObject() { + return SubscribeLevel2Quotes.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/SysdateJsonSerdeTests.java b/src/test/java/wip/SysdateJsonSerdeTests.java new file mode 100644 index 0000000..4e081ed --- /dev/null +++ b/src/test/java/wip/SysdateJsonSerdeTests.java @@ -0,0 +1,36 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SysdateJsonSerdeTests { + + public static class JsonRpcResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/sysdate/result.json"; + } + + @Override + public SysDate.Result getExpectedObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + return new SysDate.Result(dateTimeEntry); + } + } +} diff --git a/src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java b/src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java new file mode 100644 index 0000000..bc0e6b1 --- /dev/null +++ b/src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java @@ -0,0 +1,52 @@ +package wip; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class UnsubscribeLevel2QuotesJsonSerdeTests { + + public static class RpcArgsSerializationTest extends AbstractJsonRpcArgsSerializationTest { + + @Override + public UnsubscribeLevel2Quotes.Args getArgsObject() { + + return UnsubscribeLevel2Quotes.Args.builder() + .classCode("1") + .secCode("2") + .build(); + } + + @Override + public String getArgsJsonPath() { + return "json/Unsubscribe_Level_II_Quotes/args.json"; + } + } + + public static class RpcTrueResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Unsubscribe_Level_II_Quotes/true.result.json"; + } + + @Override + public UnsubscribeLevel2Quotes.Result getExpectedObject() { + return UnsubscribeLevel2Quotes.Result.getInstance(true); + } + } + + public static class RpcFalseResultDeserializationTest extends AbstractRpcResultJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/Unsubscribe_Level_II_Quotes/false.result.json"; + } + + @Override + public UnsubscribeLevel2Quotes.Result getExpectedObject() { + return UnsubscribeLevel2Quotes.Result.getInstance(false); + } + } +} diff --git a/src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java b/src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java new file mode 100644 index 0000000..86974c6 --- /dev/null +++ b/src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java @@ -0,0 +1,40 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class AccountBalanceJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/AccountBalance.json"; + } + + @Override + public AccountBalance getExpectedObject() { + + return AccountBalance.builder() + .firmId("1") + .secCode("2") + .trdAccId("3") + .depAccId("4") + .openBal("5") + .currentPos("6") + .plannedPosSell("7") + .plannedPosBuy("8") + .planBal("9") + .usqtyb("10") + .usqtys("11") + .planned("12") + .settleBal("13") + .bankAccId("14") + .firmUse(15) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/AccountPositionJsonSerdeTests.java b/src/test/java/wip/structures/AccountPositionJsonSerdeTests.java new file mode 100644 index 0000000..f5e2a7b --- /dev/null +++ b/src/test/java/wip/structures/AccountPositionJsonSerdeTests.java @@ -0,0 +1,43 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class AccountPositionJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/AccountPosition.json"; + } + + @Override + public AccountPosition getExpectedObject() { + + return AccountPosition.builder() + .firmId("1") + .currCode("2") + .tag("3") + .description("4") + .openBal("5") + .currentPos("6") + .plannedPos("7") + .limit1("8") + .limit2("9") + .orderBuy("10") + .orderSell("11") + .netto("12") + .plannedBal("13") + .debit("14") + .credit("15") + .bankAccId("16") + .marginCall("17") + .settleBal("18") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/AllTradeJsonSerdeTests.java b/src/test/java/wip/structures/AllTradeJsonSerdeTests.java new file mode 100644 index 0000000..1162177 --- /dev/null +++ b/src/test/java/wip/structures/AllTradeJsonSerdeTests.java @@ -0,0 +1,57 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class AllTradeJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/AllTrade.json"; + } + + @Override + public AllTrade getExpectedObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + + return AllTrade.builder() + .tradeNum(123456789012345L) + .flags(2) + .price("3") + .qty(4) + .value("5") + .accruedInt("6") + .yield("7") + .settleCode("8") + .repoRate("9") + .repoValue("10") + .repo2Value("11") + .repoTerm("12") + .secCode("13") + .classCode("14") + .datetime(dateTimeEntry) + .period(16) + .openInterest("17") + .exchangeCode("18") + .execMarket("19") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java b/src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java new file mode 100644 index 0000000..5664617 --- /dev/null +++ b/src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java @@ -0,0 +1,36 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class ConnectedEventInfoSerdeTests { + + public static class TrueFlagJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/ConnectedEventInfo/true.flag.json"; + } + + @Override + public ConnectedEventInfo getExpectedObject() { + return ConnectedEventInfo.getInstance(true); + } + } + + public static class FalseFlagJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/ConnectedEventInfo/false.flag.json"; + } + + @Override + public ConnectedEventInfo getExpectedObject() { + return ConnectedEventInfo.getInstance(false); + } + } +} diff --git a/src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java b/src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java new file mode 100644 index 0000000..80e5abf --- /dev/null +++ b/src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java @@ -0,0 +1,30 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class DepoLimitDeleteJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/DepoLimitDelete.json"; + } + + @Override + public DepoLimitDelete getExpectedObject() { + + return DepoLimitDelete.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .limitKind(5) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/DepoLimitJsonSerdeTests.java b/src/test/java/wip/structures/DepoLimitJsonSerdeTests.java new file mode 100644 index 0000000..917d334 --- /dev/null +++ b/src/test/java/wip/structures/DepoLimitJsonSerdeTests.java @@ -0,0 +1,39 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class DepoLimitJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/DepoLimit.json"; + } + + @Override + public DepoLimit getExpectedObject() { + + return DepoLimit.builder() + .secCode("1") + .trdAccId("2") + .firmId("3") + .clientCode("4") + .openBal(5) + .openLimit(6) + .currentBal(7) + .currentLimit(8) + .lockedSell(9) + .lockedBuy(10) + .lockedBuyValue("11") + .lockedSellValue("12") + .waPositionPrice("13") + .limitKind(14) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/FirmJsonSerdeTests.java b/src/test/java/wip/structures/FirmJsonSerdeTests.java new file mode 100644 index 0000000..96f9912 --- /dev/null +++ b/src/test/java/wip/structures/FirmJsonSerdeTests.java @@ -0,0 +1,29 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class FirmJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/Firm.json"; + } + + @Override + public Firm getExpectedObject() { + + return Firm.builder() + .firmId("1") + .firmName("2") + .status(3) + .exchange("4") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java b/src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java new file mode 100644 index 0000000..dab9d25 --- /dev/null +++ b/src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java @@ -0,0 +1,44 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class FuturesClientHoldingJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/FuturesClientHolding.json"; + } + + @Override + public FuturesClientHolding getExpectedObject() { + + return FuturesClientHolding.builder() + .firmId("1") + .trdAccId("2") + .secCode("3") + .type(4) + .startBuy("5") + .startSell("6") + .todayBuy("7") + .todaySell("8") + .totalNet("9") + .openBuys(10) + .openSells(11) + .cbplUsed("12") + .cbplPlanned("13") + .varMargin("14") + .avrPosnPrice("15") + .positionValue("16") + .realVarMargin("17") + .totalVarMargin("18") + .sessionStatus(19) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java b/src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java new file mode 100644 index 0000000..50d8407 --- /dev/null +++ b/src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java @@ -0,0 +1,27 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class FuturesLimitDeleteJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/FuturesLimitDelete.json"; + } + + @Override + public FuturesLimitDelete getExpectedObject() { + + return FuturesLimitDelete.builder() + .firmId("1") + .limitType(2) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java b/src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java new file mode 100644 index 0000000..66b5c05 --- /dev/null +++ b/src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java @@ -0,0 +1,42 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class FuturesLimitJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/FuturesLimit.json"; + } + + @Override + public FuturesLimit getExpectedObject() { + + return FuturesLimit.builder() + .firmId("1") + .trdAccId("2") + .limitType(3) + .liquidityCoef("4") + .cbpPrevLimit("5") + .cbpLimit("6") + .cbplUsed("7") + .cbplPlanned("8") + .varMargin("9") + .accruedInt("10") + .cbplUsedForOrders("11") + .cbplUsedForPositions("12") + .optionsPremium("13") + .tsComission("14") + .kgo("15") + .currCode("16") + .realVarMargin("17") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java b/src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java new file mode 100644 index 0000000..a4fe214 --- /dev/null +++ b/src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java @@ -0,0 +1,30 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class MoneyLimitDeleteJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/MoneyLimitDelete.json"; + } + + @Override + public MoneyLimitDelete getExpectedObject() { + + return MoneyLimitDelete.builder() + .currCode("1") + .tag("2") + .clientCode("3") + .firmId("4") + .limitKind(5) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java b/src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java new file mode 100644 index 0000000..ac3a3fa --- /dev/null +++ b/src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java @@ -0,0 +1,41 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class MoneyLimitJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/MoneyLimit.json"; + } + + @Override + public MoneyLimit getExpectedObject() { + + return MoneyLimit.builder() + .currCode("1") + .tag("2") + .firmId("3") + .clientCode("4") + .openBal("5") + .openLimit("6") + .currentBal("7") + .currentLimit("8") + .locked("9") + .lockedValueCoef("10") + .lockedMarginValue("11") + .leverage("12") + .limitKind(13) + .waPositionPrice("14") + .ordersCollateral("15") + .positionsCollateral("16") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/NegDealJsonSerdeTests.java b/src/test/java/wip/structures/NegDealJsonSerdeTests.java new file mode 100644 index 0000000..0ddb243 --- /dev/null +++ b/src/test/java/wip/structures/NegDealJsonSerdeTests.java @@ -0,0 +1,121 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class NegDealJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/NegDeal.json"; + } + + @Override + public NegDeal getExpectedObject() { + + final DateTimeEntry activationDateTime = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + final DateTimeEntry withdrawDateTime = DateTimeEntry.builder() + .mcs(10) + .ms(11) + .sec(12) + .min(13) + .hour(14) + .day(15) + .weekDay(16) + .month(17) + .year(18) + .build(); + final DateTimeEntry dateTime = DateTimeEntry.builder() + .mcs(19) + .ms(20) + .sec(21) + .min(22) + .hour(23) + .day(24) + .weekDay(25) + .month(26) + .year(27) + .build(); + + return NegDeal.builder() + .negDealNum(12345678910L) + .negDealTime("2") + .flags(3) + .brokerRef("4") + .userId("5") + .firmId("6") + .cpUserId("7") + .cpFirmId("8") + .account("9") + .price("10") + .qty(11) + .matchRef("12") + .settleCode("13") + .yield("14") + .accruedInt("15") + .value("16") + .price2("17") + .repoRate("18") + .refundRate("19") + .transId("20") + .clientCode("21") + .repoEntry(22) + .repoValue("23") + .repo2Value("24") + .repoTerm("25") + .startDiscount("26") + .lowerDiscount("27") + .upperDiscount("28") + .blockSecurities("29") + .uid("30") + .withdrawTime("31") + .negDealDate("32") + .balance("33") + .originRepoValue("34") + .originQty("35") + .originDiscount("36") + .negDealActivationDate("37") + .negDealActivationTime("38") + .quoteNo("39") + .settleCurrency("40") + .secCode("41") + .classCode("42") + .bankAccId("43") + .withdrawDate("44") + .linkedOrder("45") + .activationDateTime(activationDateTime) + .withdrawDateTime(withdrawDateTime) + .dateTime(dateTime) + .lSecCode("49") + .canceledUid("50") + .systemRef("51") + .priceCurrency("52") + .orderExchangeCode("53") + .extRef("54") + .period("55") + .clientQualifier(56) + .clientShortCode("57") + .investmentDecisionMakerQualifier(58) + .investmentDecisionMakerShortCode("59") + .executingTraderQualifier(60) + .executingTraderShortCode("61") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/NegTradeJsonSerdeTests.java b/src/test/java/wip/structures/NegTradeJsonSerdeTests.java new file mode 100644 index 0000000..9e7443b --- /dev/null +++ b/src/test/java/wip/structures/NegTradeJsonSerdeTests.java @@ -0,0 +1,87 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class NegTradeJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/NegTrade.json"; + } + + @Override + public NegTrade getExpectedObject() { + + return NegTrade.builder() + .tradeNum(12345678910L) + .tradeDate("2") + .settleDate("3") + .flags(4) + .brokerRef("5") + .firmId("6") + .account("7") + .cpFirmId("8") + .cpAccount("9") + .price("10") + .qty(11) + .value("12") + .settleCode("13") + .reportNum("14") + .cpReportNum("15") + .accruedInt("16") + .repoTradeNo("17") + .price1("18") + .repoRate("19") + .price2("20") + .clientCode("21") + .tsComission("22") + .balance("23") + .settleTime("24") + .amount("25") + .repoValue("26") + .repoTerm("27") + .repo2Value("28") + .returnValue("29") + .discount("30") + .lowerDiscount("31") + .upperDiscount("32") + .blockSecurities("33") + .urgencyFlag("34") + .type(35) + .operationType(36) + .expectedDiscount("37") + .expectedQuantity("38") + .expectedRepoValue("39") + .expectedRepo2Value("40") + .expectedReturnValue("41") + .orderNum("42") + .reportTradeDate("43") + .settled(44) + .clearingType(45) + .reportComission("46") + .couponPayment("47") + .principalPayment("48") + .principalPaymentDate("49") + .nextDaySettle("50") + .settleCurrency("51") + .secCode("52") + .classCode("53") + .compVal("54") + .parentTradeNo("55") + .bankId("56") + .bankAccId("57") + .preciseBalance("58") + .confirmTime("59") + .exFlags(60) + .confirmReport("61") + .extRef("62") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/OrderJsonSerdeTests.java b/src/test/java/wip/structures/OrderJsonSerdeTests.java new file mode 100644 index 0000000..c666c95 --- /dev/null +++ b/src/test/java/wip/structures/OrderJsonSerdeTests.java @@ -0,0 +1,107 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Order; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class OrderJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/Order.json"; + } + + @Override + public Order getExpectedObject() { + + final DateTimeEntry dateTime = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + final DateTimeEntry withdrawDateTime = DateTimeEntry.builder() + .mcs(10) + .ms(11) + .sec(12) + .min(13) + .hour(14) + .day(15) + .weekDay(16) + .month(17) + .year(18) + .build(); + + return Order.builder() + .orderNum(12345678910L) + .flags(2) + .brokerRef("3") + .userId("4") + .firmId("5") + .account("6") + .price("7") + .qty(8) + .balance("9") + .value("10") + .accruedInt("11") + .yield("12") + .transId("13") + .clientCode("14") + .price2("15") + .settleCode("16") + .uid("17") + .canceledUid("18") + .exchangeCode("19") + .activationTime("20") + .linkedOrder("21") + .expiry("22") + .secCode("23") + .classCode("24") + .datetime(dateTime) + .withdrawDatetime(withdrawDateTime) + .bankAccId("27") + .valueEntryType(28) + .repoTerm("29") + .repoValue("30") + .repo2Value("31") + .repoValueBalance("32") + .startDiscount("33") + .rejectReason("34") + .extOrderFlags("35") + .minQty(36) + .execType(37) + .sideQualifier(38) + .acntType(39) + .capacity(40) + .passiveOnlyOrder(41) + .visible(42) + .awgPrice("43") + .expiryTime("44") + .revisionNumber("45") + .priceCurrency("46") + .extOrderStatus(47) + .acceptedUid("48") + .filledValue("49") + .extRef("50") + .settleCurrency("51") + .onBehalfOfUid("52") + .clientQualifier(53) + .clientShortCode("54") + .investmentDecisionMakerQualifier(55) + .investmentDecisionMakerShortCode("56") + .executingTraderQualifier(57) + .executingTraderShortCode("58") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java b/src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java new file mode 100644 index 0000000..d648d83 --- /dev/null +++ b/src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java @@ -0,0 +1,27 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class ParamEventInfoJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/ParamEventInfo.json"; + } + + @Override + public ParamEventInfo getExpectedObject() { + + return ParamEventInfo.builder() + .classCode("1") + .secCode("2") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java b/src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java new file mode 100644 index 0000000..e307f00 --- /dev/null +++ b/src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java @@ -0,0 +1,27 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class QuoteEventInfoJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/QuoteEventInfo.json"; + } + + @Override + public QuoteEventInfo getExpectedObject() { + + return QuoteEventInfo.builder() + .classCode("1") + .secCode("2") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java b/src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java new file mode 100644 index 0000000..9dc6c29 --- /dev/null +++ b/src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java @@ -0,0 +1,49 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class StopEventInfoJsonSerdeTests { + + public static class FromDialogWindowJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/StopEventInfo/from_dialog_window.json"; + } + + @Override + public StopEventInfo getExpectedObject() { + return StopEventInfo.getInstance(1); + } + } + + public static class FromTerminalClosureJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/StopEventInfo/from_terminal_closure.json"; + } + + @Override + public StopEventInfo getExpectedObject() { + return StopEventInfo.getInstance(2); + } + } + + public static class OtherJsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/StopEventInfo/other.json"; + } + + @Override + public StopEventInfo getExpectedObject() { + return StopEventInfo.getInstance(3); + } + } +} diff --git a/src/test/java/wip/structures/StopOrderJsonSerdeTests.java b/src/test/java/wip/structures/StopOrderJsonSerdeTests.java new file mode 100644 index 0000000..3d10c89 --- /dev/null +++ b/src/test/java/wip/structures/StopOrderJsonSerdeTests.java @@ -0,0 +1,97 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class StopOrderJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/StopOrder.json"; + } + + @Override + public StopOrder getExpectedObject() { + + final DateTimeEntry orderDateTime = DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build(); + final DateTimeEntry withdrawDateTime = DateTimeEntry.builder() + .mcs(10) + .ms(11) + .sec(12) + .min(13) + .hour(14) + .day(15) + .weekDay(16) + .month(17) + .year(18) + .build(); + final DateTimeEntry activationDateTime = DateTimeEntry.builder() + .mcs(19) + .ms(20) + .sec(21) + .min(22) + .hour(23) + .day(24) + .weekDay(25) + .month(26) + .year(27) + .build(); + + return StopOrder.builder() + .orderNum(12345678910L) + .orderTime("2") + .flags(3) + .brokerRef("4") + .firmId("5") + .account("6") + .condition(7) + .conditionPrice("8") + .price("9") + .qty(10) + .linkedOrder("11") + .expiry("12") + .transId("13") + .clientCode("14") + .coOrderNum("15") + .coOrderPrice("16") + .stopOrderType(17) + .orderDate("18") + .allTradeNum("19") + .stopFlags(20) + .offset("21") + .spread("22") + .balance("23") + .uid("24") + .filledQty(25) + .withdrawTime("26") + .conditionPrice2("27") + .activeFromTime("28") + .activeToTime("29") + .secCode("30") + .classCode("31") + .conditionSecCode("32") + .conditionClassCode("33") + .canceledUid("34") + .orderDateTime(orderDateTime) + .withdrawDateTime(withdrawDateTime) + .activationDateTime(activationDateTime) + .build(); + } + } +} diff --git a/src/test/java/wip/structures/TradeJsonSerdeTests.java b/src/test/java/wip/structures/TradeJsonSerdeTests.java new file mode 100644 index 0000000..63a78cf --- /dev/null +++ b/src/test/java/wip/structures/TradeJsonSerdeTests.java @@ -0,0 +1,116 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.Trade; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class TradeJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/Trade.json"; + } + + @Override + public Trade getExpectedObject() { + + return Trade.builder() + .tradeNum(12345678910L) + .orderNum(23456789101L) + .brokerRef("3") + .userId("4") + .firmId("5") + .canceledUid("6") + .account("7") + .price("8") + .qty(9) + .value("10") + .accruedInt("11") + .yield("12") + .settleCode("13") + .cpFirmId("14") + .flags(15) + .price2("16") + .repoRate("17") + .clientCode("18") + .accrued2("19") + .repoTerm("20") + .repoValue("21") + .repo2Value("22") + .startDiscount("23") + .lowerDiscount("24") + .upperDiscount("25") + .blockSecurities("26") + .clearingComission("27") + .exchangeComission("28") + .techCenterComission("29") + .settleDate("30") + .settleCurrency("31") + .tradeCurrency("32") + .exchangeCode("33") + .stationId("34") + .secCode("35") + .classCode("36") + .datetime(DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build() + ).bankAccId("38") + .brokerComission("39") + .linkedTrade("40") + .period(41) + .transId("42") + .kind(43) + .clearingBankAccId("44") + .canceledDatetime(DateTimeEntry.builder() + .mcs(9) + .ms(8) + .sec(7) + .min(6) + .hour(5) + .day(4) + .weekDay(3) + .month(2) + .year(1) + .build() + ).clearingFirmId("46") + .systemRef("47") + .uid("48") + .lSecCode("49") + .orderRevisionNumber("50") + .orderQty("51") + .orderPrice("52") + .orderExchangeCode("53") + .execMarket("54") + .liquidityIndicator(55) + .extRef("56") + .extTradeFlags("57") + .onBehalfOfUid("58") + .clientQualifier(59) + .clientShortCode("60") + .investmentDecisionMakerQualifier(61) + .investmentDecisionMakerShortCode("62") + .executingTraderQualifier(63) + .executingTraderShortCode("64") + .waiverFlag(65) + .mlegBaseSid("66") + .sideQualifier(67) + .otcPostTradeIndicator(68) + .capacity(69) + .crossRate("70") + .build(); + } + } +} diff --git a/src/test/java/wip/structures/TransReplyJsonSerdeTests.java b/src/test/java/wip/structures/TransReplyJsonSerdeTests.java new file mode 100644 index 0000000..a23e3e7 --- /dev/null +++ b/src/test/java/wip/structures/TransReplyJsonSerdeTests.java @@ -0,0 +1,70 @@ +package wip.structures; + +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.api.structures.TransReply; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import wip.AbstractJsonDeserializationTest; + +@RunWith(Enclosed.class) +public class TransReplyJsonSerdeTests { + + public static class JsonDeserializationTest extends AbstractJsonDeserializationTest { + + @Override + public String getJsonPath() { + return "json/structures/TransReply.json"; + } + + @Override + public TransReply getExpectedObject() { + + return TransReply.builder() + .transId(12345678910L) + .status(2) + .resultMsg("3") + .dateTime(DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(7) + .month(8) + .year(9) + .build() + ) + .uid("5") + .flags(6) + .serverTransId("7") + .orderNum("8") + .price("9") + .quantity("10") + .balance("11") + .firmId("12") + .account("13") + .clientCode("14") + .brokerRef("15") + .classCode("16") + .secCode("17") + .exchangeCode("18") + .errorCode(19) + .errorSource(20) + .firstOrderNum("21") + .gateReplyTime(DateTimeEntry.builder() + .mcs(9) + .ms(8) + .sec(7) + .min(6) + .hour(5) + .day(4) + .weekDay(3) + .month(2) + .year(1) + .build() + ) + .build(); + } + } +} diff --git a/src/test/resources/json/AddColumn.request.json b/src/test/resources/json/AddColumn.request.json deleted file mode 100644 index 7c7a012..0000000 --- a/src/test/resources/json/AddColumn.request.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "method" : "AddColumn", - "args" : { - "t_id" : 1, - "icode" : 2, - "name" : "3", - "is_default" : true, - "par_type" : "QTABLE_INT64_TYPE", - "width" : 6 - } -} \ No newline at end of file diff --git a/src/test/resources/json/AddColumn/args.json b/src/test/resources/json/AddColumn/args.json new file mode 100644 index 0000000..3aeeb1a --- /dev/null +++ b/src/test/resources/json/AddColumn/args.json @@ -0,0 +1 @@ +{"t_id":1,"icode":2,"name":"3","is_default":true,"par_type":"QTABLE_INT64_TYPE","width":6} \ No newline at end of file diff --git a/src/test/resources/json/AddColumn.result.json b/src/test/resources/json/AddColumn/result.json similarity index 100% rename from src/test/resources/json/AddColumn.result.json rename to src/test/resources/json/AddColumn/result.json diff --git a/src/test/resources/json/AddLabel.request.json b/src/test/resources/json/AddLabel.request.json deleted file mode 100644 index 212896f..0000000 --- a/src/test/resources/json/AddLabel.request.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "method" : "AddLabel", - "args" : { - "chart_tag" : "1", - "label_params" : { - "key1" : "value1", - "key2" : "value2", - "key3" : "value3" - } - } -} \ No newline at end of file diff --git a/src/test/resources/json/AddLabel/args.json b/src/test/resources/json/AddLabel/args.json new file mode 100644 index 0000000..a046cf0 --- /dev/null +++ b/src/test/resources/json/AddLabel/args.json @@ -0,0 +1 @@ +{"chart_tag":"1","label_params":{"k1":"v1","k2":"v2","k3":"v3"}} \ No newline at end of file diff --git a/src/test/resources/json/AddLabel.result.json b/src/test/resources/json/AddLabel/result.json similarity index 100% rename from src/test/resources/json/AddLabel.result.json rename to src/test/resources/json/AddLabel/result.json diff --git a/src/test/resources/json/AllocTable.request.json b/src/test/resources/json/AllocTable.request.json deleted file mode 100644 index 78571bd..0000000 --- a/src/test/resources/json/AllocTable.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "AllocTable", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/AllocTable.result.json b/src/test/resources/json/AllocTable/result.json similarity index 100% rename from src/test/resources/json/AllocTable.result.json rename to src/test/resources/json/AllocTable/result.json diff --git a/src/test/resources/json/CalcBuySell/args.json b/src/test/resources/json/CalcBuySell/args.json new file mode 100644 index 0000000..fc70ec6 --- /dev/null +++ b/src/test/resources/json/CalcBuySell/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","client_code":"3","account":"4","price":"5","is_buy":true,"is_market":true} \ No newline at end of file diff --git a/src/test/resources/json/CalcBuySell/result.json b/src/test/resources/json/CalcBuySell/result.json new file mode 100644 index 0000000..218ec89 --- /dev/null +++ b/src/test/resources/json/CalcBuySell/result.json @@ -0,0 +1,4 @@ +{ + "qty" : 1, + "comission" : "2" +} \ No newline at end of file diff --git a/src/test/resources/json/CancelParamRequest/args.json b/src/test/resources/json/CancelParamRequest/args.json new file mode 100644 index 0000000..d5cd049 --- /dev/null +++ b/src/test/resources/json/CancelParamRequest/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","db_name":"3"} \ No newline at end of file diff --git a/src/test/resources/json/Highlight.result.true.json b/src/test/resources/json/CancelParamRequest/result.json similarity index 100% rename from src/test/resources/json/Highlight.result.true.json rename to src/test/resources/json/CancelParamRequest/result.json diff --git a/src/test/resources/json/Clear/args.json b/src/test/resources/json/Clear/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/Clear/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/Highlight.result.false.json b/src/test/resources/json/Clear/false.result.json similarity index 100% rename from src/test/resources/json/Highlight.result.false.json rename to src/test/resources/json/Clear/false.result.json diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.true.json b/src/test/resources/json/Clear/true.result.json similarity index 100% rename from src/test/resources/json/IsSubscribed_Level_II_Quotes.result.true.json rename to src/test/resources/json/Clear/true.result.json diff --git a/src/test/resources/json/CreateWindow/args.json b/src/test/resources/json/CreateWindow/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/CreateWindow/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/InsertRow.result.json b/src/test/resources/json/CreateWindow/result.json similarity index 100% rename from src/test/resources/json/InsertRow.result.json rename to src/test/resources/json/CreateWindow/result.json diff --git a/src/test/resources/json/DelAllLabels/args.json b/src/test/resources/json/DelAllLabels/args.json new file mode 100644 index 0000000..ac4456e --- /dev/null +++ b/src/test/resources/json/DelAllLabels/args.json @@ -0,0 +1 @@ +{"chart_tag":"1"} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/result.true.json b/src/test/resources/json/DelAllLabels/result.json similarity index 100% rename from src/test/resources/json/ParamRequest/result.true.json rename to src/test/resources/json/DelAllLabels/result.json diff --git a/src/test/resources/json/DelLabel/args.json b/src/test/resources/json/DelLabel/args.json new file mode 100644 index 0000000..5ee47bf --- /dev/null +++ b/src/test/resources/json/DelLabel/args.json @@ -0,0 +1 @@ +{"chart_tag":"1","label_id":2} \ No newline at end of file diff --git a/src/test/resources/json/SetCell.result.json b/src/test/resources/json/DelLabel/result.json similarity index 100% rename from src/test/resources/json/SetCell.result.json rename to src/test/resources/json/DelLabel/result.json diff --git a/src/test/resources/json/DeleteRow/args.json b/src/test/resources/json/DeleteRow/args.json new file mode 100644 index 0000000..e6ecaa2 --- /dev/null +++ b/src/test/resources/json/DeleteRow/args.json @@ -0,0 +1 @@ +{"t_id":1,"key":2} \ No newline at end of file diff --git a/src/test/resources/json/SetColor.result.json b/src/test/resources/json/DeleteRow/result.json similarity index 100% rename from src/test/resources/json/SetColor.result.json rename to src/test/resources/json/DeleteRow/result.json diff --git a/src/test/resources/json/DestroyTable/args.json b/src/test/resources/json/DestroyTable/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/DestroyTable/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/SetLabelParams.result.json b/src/test/resources/json/DestroyTable/result.json similarity index 100% rename from src/test/resources/json/SetLabelParams.result.json rename to src/test/resources/json/DestroyTable/result.json diff --git a/src/test/resources/json/GetCell/args.json b/src/test/resources/json/GetCell/args.json new file mode 100644 index 0000000..ae21bc1 --- /dev/null +++ b/src/test/resources/json/GetCell/args.json @@ -0,0 +1 @@ +{"t_id":1,"key":2,"code":3} \ No newline at end of file diff --git a/src/test/resources/json/GetCell/result.json b/src/test/resources/json/GetCell/result.json new file mode 100644 index 0000000..54e27e6 --- /dev/null +++ b/src/test/resources/json/GetCell/result.json @@ -0,0 +1,4 @@ +{ + "image" : "1", + "value" : "2" +} \ No newline at end of file diff --git a/src/test/resources/json/GetLabelParams.request.json b/src/test/resources/json/GetLabelParams.request.json deleted file mode 100644 index cf841aa..0000000 --- a/src/test/resources/json/GetLabelParams.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "GetLabelParams", - "args" : { - "chart_tag" : "1", - "label_id" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/GetTableSize.request.json b/src/test/resources/json/GetTableSize.request.json deleted file mode 100644 index fbfc684..0000000 --- a/src/test/resources/json/GetTableSize.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "GetTableSize", - "args" : { - "t_id" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/GetTableSize/args.json b/src/test/resources/json/GetTableSize/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/GetTableSize/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/GetLabelParams.result.only_required_fields.json b/src/test/resources/json/GetTableSize/error.result.json similarity index 100% rename from src/test/resources/json/GetLabelParams.result.only_required_fields.json rename to src/test/resources/json/GetTableSize/error.result.json diff --git a/src/test/resources/json/GetTableSize.result.json b/src/test/resources/json/GetTableSize/result.json similarity index 100% rename from src/test/resources/json/GetTableSize.result.json rename to src/test/resources/json/GetTableSize/result.json diff --git a/src/test/resources/json/GetWindowCaption.request.json b/src/test/resources/json/GetWindowCaption.request.json deleted file mode 100644 index 0584b61..0000000 --- a/src/test/resources/json/GetWindowCaption.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "GetWindowCaption", - "args" : { - "t_id" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowCaption/args.json b/src/test/resources/json/GetWindowCaption/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/GetWindowCaption/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/GetTableSize.result.error.json b/src/test/resources/json/GetWindowCaption/error.result.json similarity index 100% rename from src/test/resources/json/GetTableSize.result.error.json rename to src/test/resources/json/GetWindowCaption/error.result.json diff --git a/src/test/resources/json/GetWindowCaption.result.json b/src/test/resources/json/GetWindowCaption/result.json similarity index 100% rename from src/test/resources/json/GetWindowCaption.result.json rename to src/test/resources/json/GetWindowCaption/result.json diff --git a/src/test/resources/json/GetWindowRect.request.json b/src/test/resources/json/GetWindowRect.request.json deleted file mode 100644 index 27fd011..0000000 --- a/src/test/resources/json/GetWindowRect.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "GetWindowRect", - "args" : { - "t_id" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowRect/args.json b/src/test/resources/json/GetWindowRect/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/GetWindowRect/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowCaption.result.error.json b/src/test/resources/json/GetWindowRect/error.result.json similarity index 100% rename from src/test/resources/json/GetWindowCaption.result.error.json rename to src/test/resources/json/GetWindowRect/error.result.json diff --git a/src/test/resources/json/GetWindowRect.result.json b/src/test/resources/json/GetWindowRect/result.json similarity index 100% rename from src/test/resources/json/GetWindowRect.result.json rename to src/test/resources/json/GetWindowRect/result.json diff --git a/src/test/resources/json/Highlight.request.json b/src/test/resources/json/Highlight.request.json deleted file mode 100644 index ddbf3a0..0000000 --- a/src/test/resources/json/Highlight.request.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "method" : "Highlight", - "args" : { - "t_id" : 1, - "row" : 2, - "col" : 3, - "b_color" : 4, - "f_color" : 5, - "timeout" : 6 - } -} \ No newline at end of file diff --git a/src/test/resources/json/Highlight/args.json b/src/test/resources/json/Highlight/args.json new file mode 100644 index 0000000..17e0975 --- /dev/null +++ b/src/test/resources/json/Highlight/args.json @@ -0,0 +1 @@ +{"t_id":1,"row":2,"col":3,"b_color":4,"f_color":5,"timeout":6} \ No newline at end of file diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json b/src/test/resources/json/Highlight/false.result.json similarity index 100% rename from src/test/resources/json/IsSubscribed_Level_II_Quotes.result.false.json rename to src/test/resources/json/Highlight/false.result.json diff --git a/src/test/resources/json/SetWindowCaption.result.json b/src/test/resources/json/Highlight/true.result.json similarity index 100% rename from src/test/resources/json/SetWindowCaption.result.json rename to src/test/resources/json/Highlight/true.result.json diff --git a/src/test/resources/json/InsertRow.request.json b/src/test/resources/json/InsertRow.request.json deleted file mode 100644 index 553a595..0000000 --- a/src/test/resources/json/InsertRow.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "InsertRow", - "args" : { - "t_id" : 1, - "key" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/InsertRow/args.json b/src/test/resources/json/InsertRow/args.json new file mode 100644 index 0000000..e6ecaa2 --- /dev/null +++ b/src/test/resources/json/InsertRow/args.json @@ -0,0 +1 @@ +{"t_id":1,"key":2} \ No newline at end of file diff --git a/src/test/resources/json/RGB.result.json b/src/test/resources/json/InsertRow/result.json similarity index 100% rename from src/test/resources/json/RGB.result.json rename to src/test/resources/json/InsertRow/result.json diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json deleted file mode 100644 index d88e361..0000000 --- a/src/test/resources/json/IsSubscribed_Level_II_Quotes.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "IsSubscribed_Level_II_Quotes", - "args" : { - "class_code" : "1", - "sec_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/IsSubscribed_Level_II_Quotes/args.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes/args.json new file mode 100644 index 0000000..81c76c8 --- /dev/null +++ b/src/test/resources/json/IsSubscribed_Level_II_Quotes/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/result.false.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes/false.result.json similarity index 100% rename from src/test/resources/json/ParamRequest/result.false.json rename to src/test/resources/json/IsSubscribed_Level_II_Quotes/false.result.json diff --git a/src/test/resources/json/SetWindowPos.result.json b/src/test/resources/json/IsSubscribed_Level_II_Quotes/true.result.json similarity index 100% rename from src/test/resources/json/SetWindowPos.result.json rename to src/test/resources/json/IsSubscribed_Level_II_Quotes/true.result.json diff --git a/src/test/resources/json/IsWindowClosed.request.json b/src/test/resources/json/IsWindowClosed.request.json deleted file mode 100644 index b502d28..0000000 --- a/src/test/resources/json/IsWindowClosed.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "IsWindowClosed", - "args" : { - "t_id" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.error.json b/src/test/resources/json/IsWindowClosed.result.error.json deleted file mode 100644 index b2ee98c..0000000 --- a/src/test/resources/json/IsWindowClosed.result.error.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "window_closed": null -} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.false.json b/src/test/resources/json/IsWindowClosed.result.false.json deleted file mode 100644 index 4985bab..0000000 --- a/src/test/resources/json/IsWindowClosed.result.false.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "window_closed" : { - "result" : false - } -} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed.result.true.json b/src/test/resources/json/IsWindowClosed.result.true.json deleted file mode 100644 index f7292ea..0000000 --- a/src/test/resources/json/IsWindowClosed.result.true.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "window_closed" : { - "result" : true - } -} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed/args.json b/src/test/resources/json/IsWindowClosed/args.json new file mode 100644 index 0000000..ac4ec7d --- /dev/null +++ b/src/test/resources/json/IsWindowClosed/args.json @@ -0,0 +1 @@ +{"t_id":1} \ No newline at end of file diff --git a/src/test/resources/json/GetWindowRect.result.error.json b/src/test/resources/json/IsWindowClosed/error.result.json similarity index 100% rename from src/test/resources/json/GetWindowRect.result.error.json rename to src/test/resources/json/IsWindowClosed/error.result.json diff --git a/src/test/resources/json/IsWindowClosed/false.result.json b/src/test/resources/json/IsWindowClosed/false.result.json new file mode 100644 index 0000000..f1fe078 --- /dev/null +++ b/src/test/resources/json/IsWindowClosed/false.result.json @@ -0,0 +1,3 @@ +{ + "window_closed" : false +} \ No newline at end of file diff --git a/src/test/resources/json/IsWindowClosed/true.result.json b/src/test/resources/json/IsWindowClosed/true.result.json new file mode 100644 index 0000000..984824b --- /dev/null +++ b/src/test/resources/json/IsWindowClosed/true.result.json @@ -0,0 +1,3 @@ +{ + "window_closed" : true +} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/args.json b/src/test/resources/json/ParamRequest/args.json new file mode 100644 index 0000000..d5cd049 --- /dev/null +++ b/src/test/resources/json/ParamRequest/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","db_name":"3"} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/false.result.json b/src/test/resources/json/ParamRequest/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/ParamRequest/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/request.json b/src/test/resources/json/ParamRequest/request.json deleted file mode 100644 index d82a733..0000000 --- a/src/test/resources/json/ParamRequest/request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "ParamRequest", - "args" : { - "class_code" : "1", - "sec_code" : "2", - "db_name" : "3" - } -} \ No newline at end of file diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes.result.json b/src/test/resources/json/ParamRequest/true.result.json similarity index 100% rename from src/test/resources/json/Subscribe_Level_II_Quotes.result.json rename to src/test/resources/json/ParamRequest/true.result.json diff --git a/src/test/resources/json/PrintDbgStr.request.json b/src/test/resources/json/PrintDbgStr.request.json deleted file mode 100644 index 7f758ee..0000000 --- a/src/test/resources/json/PrintDbgStr.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "PrintDbgStr", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/PrintDbgStr.result.json b/src/test/resources/json/PrintDbgStr.result.json deleted file mode 100644 index a4fe9aa..0000000 --- a/src/test/resources/json/PrintDbgStr.result.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "s" : "1" -} \ No newline at end of file diff --git a/src/test/resources/json/PrintDbgStr/args.json b/src/test/resources/json/PrintDbgStr/args.json new file mode 100644 index 0000000..3e9266c --- /dev/null +++ b/src/test/resources/json/PrintDbgStr/args.json @@ -0,0 +1 @@ +{"s":"1"} \ No newline at end of file diff --git a/src/test/resources/json/RGB.request.json b/src/test/resources/json/RGB.request.json deleted file mode 100644 index 997c5fd..0000000 --- a/src/test/resources/json/RGB.request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "RGB", - "args" : { - "red" : 1, - "blue" : 2, - "green" : 3 - } -} \ No newline at end of file diff --git a/src/test/resources/json/RGB/args.json b/src/test/resources/json/RGB/args.json new file mode 100644 index 0000000..a7ba757 --- /dev/null +++ b/src/test/resources/json/RGB/args.json @@ -0,0 +1 @@ +{"red":1,"green":2,"blue":3} \ No newline at end of file diff --git a/src/test/resources/json/SetSelectedRow.result.json b/src/test/resources/json/RGB/result.json similarity index 100% rename from src/test/resources/json/SetSelectedRow.result.json rename to src/test/resources/json/RGB/result.json diff --git a/src/test/resources/json/SearchItems.request_full_args.json b/src/test/resources/json/SearchItems.request_full_args.json deleted file mode 100644 index 815d539..0000000 --- a/src/test/resources/json/SearchItems.request_full_args.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "SearchItems", - "args" : { - "table_name" : "1", - "start_index" : 2, - "end_index" : 3, - "fn_def" : "4", - "params" : "5" - } -} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems.request_required_args.json b/src/test/resources/json/SearchItems.request_required_args.json deleted file mode 100644 index e3d8aa0..0000000 --- a/src/test/resources/json/SearchItems.request_required_args.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "method" : "SearchItems", - "args" : { - "table_name" : "1", - "start_index" : 2, - "end_index" : 3, - "fn_def" : "4" - } -} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems/empty.result.json b/src/test/resources/json/SearchItems/empty.result.json new file mode 100644 index 0000000..6e8e3af --- /dev/null +++ b/src/test/resources/json/SearchItems/empty.result.json @@ -0,0 +1,3 @@ +{ + "items_indices": [] +} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems/full.args.json b/src/test/resources/json/SearchItems/full.args.json new file mode 100644 index 0000000..4088e1d --- /dev/null +++ b/src/test/resources/json/SearchItems/full.args.json @@ -0,0 +1 @@ +{"table_name":"1","start_index":2,"end_index":3,"fn_def":"4","params":"5"} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems/null.result.json b/src/test/resources/json/SearchItems/null.result.json new file mode 100644 index 0000000..7c6bd60 --- /dev/null +++ b/src/test/resources/json/SearchItems/null.result.json @@ -0,0 +1,3 @@ +{ + "items_indices": null +} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems.result.json b/src/test/resources/json/SearchItems/result.json similarity index 100% rename from src/test/resources/json/SearchItems.result.json rename to src/test/resources/json/SearchItems/result.json diff --git a/src/test/resources/json/SearchItems/without_end_index.args.json b/src/test/resources/json/SearchItems/without_end_index.args.json new file mode 100644 index 0000000..e122d59 --- /dev/null +++ b/src/test/resources/json/SearchItems/without_end_index.args.json @@ -0,0 +1 @@ +{"table_name":"1","start_index":2,"fn_def":"3","params":"4"} \ No newline at end of file diff --git a/src/test/resources/json/SearchItems/without_params.args.json b/src/test/resources/json/SearchItems/without_params.args.json new file mode 100644 index 0000000..7eb9adf --- /dev/null +++ b/src/test/resources/json/SearchItems/without_params.args.json @@ -0,0 +1 @@ +{"table_name":"1","start_index":2,"end_index":3,"fn_def":"4"} \ No newline at end of file diff --git a/src/test/resources/json/SetCell.request.json b/src/test/resources/json/SetCell.request.json deleted file mode 100644 index ed75f6f..0000000 --- a/src/test/resources/json/SetCell.request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "SetCell", - "args" : { - "t_id" : 1, - "key" : 2, - "code" : 3, - "text" : "4", - "value" : 5.55 - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetCell/false.result.json b/src/test/resources/json/SetCell/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/SetCell/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/SetCell/full.args.json b/src/test/resources/json/SetCell/full.args.json new file mode 100644 index 0000000..c23350e --- /dev/null +++ b/src/test/resources/json/SetCell/full.args.json @@ -0,0 +1 @@ +{"t_id":1,"key":2,"code":3,"text":"4","value":5.55} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json b/src/test/resources/json/SetCell/true.result.json similarity index 100% rename from src/test/resources/json/Unsubscribe_Level_II_Quotes.result.json rename to src/test/resources/json/SetCell/true.result.json diff --git a/src/test/resources/json/SetCell/without_value.args.json b/src/test/resources/json/SetCell/without_value.args.json new file mode 100644 index 0000000..b9b57fe --- /dev/null +++ b/src/test/resources/json/SetCell/without_value.args.json @@ -0,0 +1 @@ +{"t_id":1,"key":2,"code":3,"text":"4"} \ No newline at end of file diff --git a/src/test/resources/json/SetColor.request.json b/src/test/resources/json/SetColor.request.json deleted file mode 100644 index 2f330d3..0000000 --- a/src/test/resources/json/SetColor.request.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "method" : "SetColor", - "args" : { - "t_id" : 1, - "row" : 2, - "col" : 3, - "b_color" : 4, - "f_color" : 5, - "sel_b_color" : 6, - "sel_f_color" : 7 - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetColor/args.json b/src/test/resources/json/SetColor/args.json new file mode 100644 index 0000000..a19dc9f --- /dev/null +++ b/src/test/resources/json/SetColor/args.json @@ -0,0 +1 @@ +{"t_id":1,"row":2,"col":3,"b_color":4,"f_color":5,"sel_b_color":6,"sel_f_color":7} \ No newline at end of file diff --git a/src/test/resources/json/SetColor/default.args.json b/src/test/resources/json/SetColor/default.args.json new file mode 100644 index 0000000..4994972 --- /dev/null +++ b/src/test/resources/json/SetColor/default.args.json @@ -0,0 +1 @@ +{"t_id":1,"row":-1,"col":-1,"b_color":-1,"f_color":-1,"sel_b_color":-1,"sel_f_color":-1} \ No newline at end of file diff --git a/src/test/resources/json/SetColor/false.result.json b/src/test/resources/json/SetColor/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/SetColor/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/bit.test.result.json b/src/test/resources/json/SetColor/true.result.json similarity index 100% rename from src/test/resources/json/bit.test.result.json rename to src/test/resources/json/SetColor/true.result.json diff --git a/src/test/resources/json/SetLabelParams.request.json b/src/test/resources/json/SetLabelParams.request.json deleted file mode 100644 index f92ab2f..0000000 --- a/src/test/resources/json/SetLabelParams.request.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "method" : "SetLabelParams", - "args" : { - "chart_tag" : "1", - "label_id" : 2, - "label_params" : { - "key_1" : "value_1", - "key_2" : "value_2", - "key_3" : "value_3" - } - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetLabelParams/args.json b/src/test/resources/json/SetLabelParams/args.json new file mode 100644 index 0000000..2504df0 --- /dev/null +++ b/src/test/resources/json/SetLabelParams/args.json @@ -0,0 +1 @@ +{"chart_tag":"1","label_id":2,"label_params":{"key_1":"value_1","key_2":"value_2","key_3":"value_3"}} \ No newline at end of file diff --git a/src/test/resources/json/SetLabelParams/false.result.json b/src/test/resources/json/SetLabelParams/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/SetLabelParams/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.Close.result.json b/src/test/resources/json/SetLabelParams/true.result.json similarity index 100% rename from src/test/resources/json/datasource.Close.result.json rename to src/test/resources/json/SetLabelParams/true.result.json diff --git a/src/test/resources/json/SetSelectedRow.request.json b/src/test/resources/json/SetSelectedRow.request.json deleted file mode 100644 index d05f28f..0000000 --- a/src/test/resources/json/SetSelectedRow.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "SetSelectedRow", - "args" : { - "table_id" : 1, - "row" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetSelectedRow/args.json b/src/test/resources/json/SetSelectedRow/args.json new file mode 100644 index 0000000..80c55a6 --- /dev/null +++ b/src/test/resources/json/SetSelectedRow/args.json @@ -0,0 +1 @@ +{"table_id":1,"row":2} \ No newline at end of file diff --git a/src/test/resources/json/SetSelectedRow/default_row.args.json b/src/test/resources/json/SetSelectedRow/default_row.args.json new file mode 100644 index 0000000..196e6d4 --- /dev/null +++ b/src/test/resources/json/SetSelectedRow/default_row.args.json @@ -0,0 +1 @@ +{"table_id":1,"row":-1} \ No newline at end of file diff --git a/src/test/resources/json/SetSelectedRow/error.result.json b/src/test/resources/json/SetSelectedRow/error.result.json new file mode 100644 index 0000000..dae38f3 --- /dev/null +++ b/src/test/resources/json/SetSelectedRow/error.result.json @@ -0,0 +1,3 @@ +{ + "result" : -1 +} \ No newline at end of file diff --git a/src/test/resources/json/SetTableNotificationCallback.result.json b/src/test/resources/json/SetSelectedRow/ok.result.json similarity index 100% rename from src/test/resources/json/SetTableNotificationCallback.result.json rename to src/test/resources/json/SetSelectedRow/ok.result.json diff --git a/src/test/resources/json/SetTableNotificationCallback.request.json b/src/test/resources/json/SetTableNotificationCallback.request.json deleted file mode 100644 index a4bc0b7..0000000 --- a/src/test/resources/json/SetTableNotificationCallback.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "SetTableNotificationCallback", - "args" : { - "t_id" : 1, - "f_cb_def" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetTableNotificationCallback/args.json b/src/test/resources/json/SetTableNotificationCallback/args.json new file mode 100644 index 0000000..ed1aae1 --- /dev/null +++ b/src/test/resources/json/SetTableNotificationCallback/args.json @@ -0,0 +1 @@ +{"t_id":1,"f_cb_def":"2"} \ No newline at end of file diff --git a/src/test/resources/json/SetTableNotificationCallback/error.result.json b/src/test/resources/json/SetTableNotificationCallback/error.result.json new file mode 100644 index 0000000..01e18e3 --- /dev/null +++ b/src/test/resources/json/SetTableNotificationCallback/error.result.json @@ -0,0 +1,3 @@ +{ + "result": 0 +} \ No newline at end of file diff --git a/src/test/resources/json/bit.band.result.json b/src/test/resources/json/SetTableNotificationCallback/ok.result.json similarity index 100% rename from src/test/resources/json/bit.band.result.json rename to src/test/resources/json/SetTableNotificationCallback/ok.result.json diff --git a/src/test/resources/json/SetTableNotificationCallback/other.result.json b/src/test/resources/json/SetTableNotificationCallback/other.result.json new file mode 100644 index 0000000..224f0a1 --- /dev/null +++ b/src/test/resources/json/SetTableNotificationCallback/other.result.json @@ -0,0 +1,3 @@ +{ + "result" : 345 +} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowCaption.request.json b/src/test/resources/json/SetWindowCaption.request.json deleted file mode 100644 index 5c4cf51..0000000 --- a/src/test/resources/json/SetWindowCaption.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "SetWindowCaption", - "args" : { - "t_id" : 1, - "str" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowCaption/args.json b/src/test/resources/json/SetWindowCaption/args.json new file mode 100644 index 0000000..8b9f069 --- /dev/null +++ b/src/test/resources/json/SetWindowCaption/args.json @@ -0,0 +1 @@ +{"t_id":1,"str":"2"} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowCaption/false.result.json b/src/test/resources/json/SetWindowCaption/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/SetWindowCaption/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetEmptyCallback.result.json b/src/test/resources/json/SetWindowCaption/true.result.json similarity index 100% rename from src/test/resources/json/datasource.SetEmptyCallback.result.json rename to src/test/resources/json/SetWindowCaption/true.result.json diff --git a/src/test/resources/json/SetWindowPos.request.json b/src/test/resources/json/SetWindowPos.request.json deleted file mode 100644 index 0db9e33..0000000 --- a/src/test/resources/json/SetWindowPos.request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "SetWindowPos", - "args" : { - "t_id" : 1, - "x" : 2, - "y" : 3, - "dx" : 4, - "dy" : 5 - } -} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowPos/args.json b/src/test/resources/json/SetWindowPos/args.json new file mode 100644 index 0000000..ae00145 --- /dev/null +++ b/src/test/resources/json/SetWindowPos/args.json @@ -0,0 +1 @@ +{"t_id":1,"x":2,"y":3,"dx":4,"dy":5} \ No newline at end of file diff --git a/src/test/resources/json/SetWindowPos/false.result.json b/src/test/resources/json/SetWindowPos/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/SetWindowPos/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetUpdateCallback.result.json b/src/test/resources/json/SetWindowPos/true.result.json similarity index 100% rename from src/test/resources/json/datasource.SetUpdateCallback.result.json rename to src/test/resources/json/SetWindowPos/true.result.json diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes.request.json b/src/test/resources/json/Subscribe_Level_II_Quotes.request.json deleted file mode 100644 index 5cd6427..0000000 --- a/src/test/resources/json/Subscribe_Level_II_Quotes.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "Subscribe_Level_II_Quotes", - "args" : { - "class_code" : "1", - "sec_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes/args.json b/src/test/resources/json/Subscribe_Level_II_Quotes/args.json new file mode 100644 index 0000000..81c76c8 --- /dev/null +++ b/src/test/resources/json/Subscribe_Level_II_Quotes/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes/false.result.json b/src/test/resources/json/Subscribe_Level_II_Quotes/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/Subscribe_Level_II_Quotes/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/Subscribe_Level_II_Quotes/true.result.json b/src/test/resources/json/Subscribe_Level_II_Quotes/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/Subscribe_Level_II_Quotes/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json deleted file mode 100644 index 70d3f81..0000000 --- a/src/test/resources/json/Unsubscribe_Level_II_Quotes.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "Unsubscribe_Level_II_Quotes", - "args" : { - "class_code" : "1", - "sec_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes/args.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes/args.json new file mode 100644 index 0000000..81c76c8 --- /dev/null +++ b/src/test/resources/json/Unsubscribe_Level_II_Quotes/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes/false.result.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/Unsubscribe_Level_II_Quotes/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/Unsubscribe_Level_II_Quotes/true.result.json b/src/test/resources/json/Unsubscribe_Level_II_Quotes/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/Unsubscribe_Level_II_Quotes/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/bit.band.request_full_args.json b/src/test/resources/json/bit.band.request_full_args.json deleted file mode 100644 index e1a0bbc..0000000 --- a/src/test/resources/json/bit.band.request_full_args.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "bit.band", - "args" : { - "x1" : 1, - "x2" : 2, - "xi" : [ 3, 5, 7, 9 ] - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.band.request_required_args.json b/src/test/resources/json/bit.band.request_required_args.json deleted file mode 100644 index 66f2960..0000000 --- a/src/test/resources/json/bit.band.request_required_args.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "bit.band", - "args" : { - "x1" : 1, - "x2" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.bnot.request.json b/src/test/resources/json/bit.bnot.request.json deleted file mode 100644 index 45ce3f4..0000000 --- a/src/test/resources/json/bit.bnot.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "bit.bnot", - "args" : { - "x" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.bor.request_full_args.json b/src/test/resources/json/bit.bor.request_full_args.json deleted file mode 100644 index 1fe978b..0000000 --- a/src/test/resources/json/bit.bor.request_full_args.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "bit.bor", - "args" : { - "x1" : 1, - "x2" : 2, - "xi" : [ 3, 5, 7, 9 ] - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.bor.request_required_args.json b/src/test/resources/json/bit.bor.request_required_args.json deleted file mode 100644 index c2511f0..0000000 --- a/src/test/resources/json/bit.bor.request_required_args.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "bit.bor", - "args" : { - "x1" : 1, - "x2" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.bxor.request_full_args.json b/src/test/resources/json/bit.bxor.request_full_args.json deleted file mode 100644 index 46f5b2b..0000000 --- a/src/test/resources/json/bit.bxor.request_full_args.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "bit.bxor", - "args" : { - "x1" : 1, - "x2" : 2, - "xi" : [ 3, 5, 7, 9 ] - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.bxor.request_required_args.json b/src/test/resources/json/bit.bxor.request_required_args.json deleted file mode 100644 index 624fe17..0000000 --- a/src/test/resources/json/bit.bxor.request_required_args.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "bit.bxor", - "args" : { - "x1" : 1, - "x2" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.test.request.json b/src/test/resources/json/bit.test.request.json deleted file mode 100644 index 9f121f4..0000000 --- a/src/test/resources/json/bit.test.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "bit.test", - "args" : { - "x" : 1, - "n" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit.tohex.request.json b/src/test/resources/json/bit.tohex.request.json deleted file mode 100644 index 84f733e..0000000 --- a/src/test/resources/json/bit.tohex.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "bit.tohex", - "args" : { - "x" : 1, - "n" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/bit/band/full.args.json b/src/test/resources/json/bit/band/full.args.json new file mode 100644 index 0000000..9759eb7 --- /dev/null +++ b/src/test/resources/json/bit/band/full.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2,"xi":[3,5,7,9]} \ No newline at end of file diff --git a/src/test/resources/json/bit.bnot.result.json b/src/test/resources/json/bit/band/result.json similarity index 100% rename from src/test/resources/json/bit.bnot.result.json rename to src/test/resources/json/bit/band/result.json diff --git a/src/test/resources/json/bit/band/without_xi.args.json b/src/test/resources/json/bit/band/without_xi.args.json new file mode 100644 index 0000000..ae919a1 --- /dev/null +++ b/src/test/resources/json/bit/band/without_xi.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2} \ No newline at end of file diff --git a/src/test/resources/json/bit/bnot/args.json b/src/test/resources/json/bit/bnot/args.json new file mode 100644 index 0000000..9758f81 --- /dev/null +++ b/src/test/resources/json/bit/bnot/args.json @@ -0,0 +1 @@ +{"x":1} \ No newline at end of file diff --git a/src/test/resources/json/bit.bor.result.json b/src/test/resources/json/bit/bnot/result.json similarity index 100% rename from src/test/resources/json/bit.bor.result.json rename to src/test/resources/json/bit/bnot/result.json diff --git a/src/test/resources/json/bit/bor/full.args.json b/src/test/resources/json/bit/bor/full.args.json new file mode 100644 index 0000000..9759eb7 --- /dev/null +++ b/src/test/resources/json/bit/bor/full.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2,"xi":[3,5,7,9]} \ No newline at end of file diff --git a/src/test/resources/json/bit.bxor.result.json b/src/test/resources/json/bit/bor/result.json similarity index 100% rename from src/test/resources/json/bit.bxor.result.json rename to src/test/resources/json/bit/bor/result.json diff --git a/src/test/resources/json/bit/bor/without_xi.args.json b/src/test/resources/json/bit/bor/without_xi.args.json new file mode 100644 index 0000000..ae919a1 --- /dev/null +++ b/src/test/resources/json/bit/bor/without_xi.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2} \ No newline at end of file diff --git a/src/test/resources/json/bit/bxor/full.args.json b/src/test/resources/json/bit/bxor/full.args.json new file mode 100644 index 0000000..9759eb7 --- /dev/null +++ b/src/test/resources/json/bit/bxor/full.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2,"xi":[3,5,7,9]} \ No newline at end of file diff --git a/src/test/resources/json/getNumberOf.result.json b/src/test/resources/json/bit/bxor/result.json similarity index 100% rename from src/test/resources/json/getNumberOf.result.json rename to src/test/resources/json/bit/bxor/result.json diff --git a/src/test/resources/json/bit/bxor/without_xi.args.json b/src/test/resources/json/bit/bxor/without_xi.args.json new file mode 100644 index 0000000..ae919a1 --- /dev/null +++ b/src/test/resources/json/bit/bxor/without_xi.args.json @@ -0,0 +1 @@ +{"x1":1,"x2":2} \ No newline at end of file diff --git a/src/test/resources/json/bit/test/args.json b/src/test/resources/json/bit/test/args.json new file mode 100644 index 0000000..8998471 --- /dev/null +++ b/src/test/resources/json/bit/test/args.json @@ -0,0 +1 @@ +{"x":1,"n":2} \ No newline at end of file diff --git a/src/test/resources/json/bit/test/false.result.json b/src/test/resources/json/bit/test/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/bit/test/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/bit/test/true.result.json b/src/test/resources/json/bit/test/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/bit/test/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/bit/tohex/full.args.json b/src/test/resources/json/bit/tohex/full.args.json new file mode 100644 index 0000000..8998471 --- /dev/null +++ b/src/test/resources/json/bit/tohex/full.args.json @@ -0,0 +1 @@ +{"x":1,"n":2} \ No newline at end of file diff --git a/src/test/resources/json/bit.tohex.result.json b/src/test/resources/json/bit/tohex/result.json similarity index 100% rename from src/test/resources/json/bit.tohex.result.json rename to src/test/resources/json/bit/tohex/result.json diff --git a/src/test/resources/json/bit/tohex/without_n.args.json b/src/test/resources/json/bit/tohex/without_n.args.json new file mode 100644 index 0000000..9758f81 --- /dev/null +++ b/src/test/resources/json/bit/tohex/without_n.args.json @@ -0,0 +1 @@ +{"x":1} \ No newline at end of file diff --git a/src/test/resources/json/datasource.C.request.json b/src/test/resources/json/datasource.C.request.json deleted file mode 100644 index 81dfa4f..0000000 --- a/src/test/resources/json/datasource.C.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.C", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.request_full_args.json b/src/test/resources/json/datasource.CreateDataSource.request_full_args.json deleted file mode 100644 index 219eee8..0000000 --- a/src/test/resources/json/datasource.CreateDataSource.request_full_args.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "method" : "datasource.CreateDataSource", - "args" : { - "class_code" : "1", - "sec_code" : "2", - "interval" : "INTERVAL_M5", - "param" : "4" - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.request_required_args.json b/src/test/resources/json/datasource.CreateDataSource.request_required_args.json deleted file mode 100644 index 2e75767..0000000 --- a/src/test/resources/json/datasource.CreateDataSource.request_required_args.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "datasource.CreateDataSource", - "args" : { - "class_code" : "1", - "sec_code" : "2", - "interval" : "INTERVAL_M5" - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.H.request.json b/src/test/resources/json/datasource.H.request.json deleted file mode 100644 index abffe14..0000000 --- a/src/test/resources/json/datasource.H.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.H", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.L.request.json b/src/test/resources/json/datasource.L.request.json deleted file mode 100644 index 1d7fad0..0000000 --- a/src/test/resources/json/datasource.L.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.L", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.O.request.json b/src/test/resources/json/datasource.O.request.json deleted file mode 100644 index 342bb66..0000000 --- a/src/test/resources/json/datasource.O.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.O", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetEmptyCallback.request.json b/src/test/resources/json/datasource.SetEmptyCallback.request.json deleted file mode 100644 index ea9ca67..0000000 --- a/src/test/resources/json/datasource.SetEmptyCallback.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "datasource.SetEmptyCallback", - "args" : { - "datasource_uuid" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.SetUpdateCallback.request.json b/src/test/resources/json/datasource.SetUpdateCallback.request.json deleted file mode 100644 index 33c0fd2..0000000 --- a/src/test/resources/json/datasource.SetUpdateCallback.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.SetUpdateCallback", - "args" : { - "datasource_uuid" : "1", - "f_cb_def" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.Size.request.json b/src/test/resources/json/datasource.Size.request.json deleted file mode 100644 index 9dc55af..0000000 --- a/src/test/resources/json/datasource.Size.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "datasource.Size", - "args" : { - "datasource_uuid" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.T.request.json b/src/test/resources/json/datasource.T.request.json deleted file mode 100644 index f29041c..0000000 --- a/src/test/resources/json/datasource.T.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.T", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource.V.request.json b/src/test/resources/json/datasource.V.request.json deleted file mode 100644 index 39871ce..0000000 --- a/src/test/resources/json/datasource.V.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "datasource.V", - "args" : { - "datasource_uuid" : "1", - "candle_index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/datasource/C/args.json b/src/test/resources/json/datasource/C/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/C/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.C.result.json b/src/test/resources/json/datasource/C/result.json similarity index 100% rename from src/test/resources/json/datasource.C.result.json rename to src/test/resources/json/datasource/C/result.json diff --git a/src/test/resources/json/datasource/Close/args.json b/src/test/resources/json/datasource/Close/args.json new file mode 100644 index 0000000..348d7ba --- /dev/null +++ b/src/test/resources/json/datasource/Close/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1"} \ No newline at end of file diff --git a/src/test/resources/json/datasource/Close/false.result.json b/src/test/resources/json/datasource/Close/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/datasource/Close/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource/Close/true.result.json b/src/test/resources/json/datasource/Close/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource/Close/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.result_error.json b/src/test/resources/json/datasource/CreateDataSource/error.result.json similarity index 100% rename from src/test/resources/json/datasource.CreateDataSource.result_error.json rename to src/test/resources/json/datasource/CreateDataSource/error.result.json diff --git a/src/test/resources/json/datasource/CreateDataSource/full.args.json b/src/test/resources/json/datasource/CreateDataSource/full.args.json new file mode 100644 index 0000000..7c7cd40 --- /dev/null +++ b/src/test/resources/json/datasource/CreateDataSource/full.args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","interval":"INTERVAL_M5","param":"4"} \ No newline at end of file diff --git a/src/test/resources/json/datasource.CreateDataSource.result_success.json b/src/test/resources/json/datasource/CreateDataSource/result.json similarity index 100% rename from src/test/resources/json/datasource.CreateDataSource.result_success.json rename to src/test/resources/json/datasource/CreateDataSource/result.json diff --git a/src/test/resources/json/datasource/CreateDataSource/without_param.args.json b/src/test/resources/json/datasource/CreateDataSource/without_param.args.json new file mode 100644 index 0000000..0d6cd44 --- /dev/null +++ b/src/test/resources/json/datasource/CreateDataSource/without_param.args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","interval":"INTERVAL_M5"} \ No newline at end of file diff --git a/src/test/resources/json/datasource/H/args.json b/src/test/resources/json/datasource/H/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/H/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.H.result.json b/src/test/resources/json/datasource/H/result.json similarity index 100% rename from src/test/resources/json/datasource.H.result.json rename to src/test/resources/json/datasource/H/result.json diff --git a/src/test/resources/json/datasource/L/args.json b/src/test/resources/json/datasource/L/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/L/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.L.result.json b/src/test/resources/json/datasource/L/result.json similarity index 100% rename from src/test/resources/json/datasource.L.result.json rename to src/test/resources/json/datasource/L/result.json diff --git a/src/test/resources/json/datasource/O/args.json b/src/test/resources/json/datasource/O/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/O/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.O.result.json b/src/test/resources/json/datasource/O/result.json similarity index 100% rename from src/test/resources/json/datasource.O.result.json rename to src/test/resources/json/datasource/O/result.json diff --git a/src/test/resources/json/datasource/SetEmptyCallback/args.json b/src/test/resources/json/datasource/SetEmptyCallback/args.json new file mode 100644 index 0000000..348d7ba --- /dev/null +++ b/src/test/resources/json/datasource/SetEmptyCallback/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1"} \ No newline at end of file diff --git a/src/test/resources/json/datasource/SetEmptyCallback/false.result.json b/src/test/resources/json/datasource/SetEmptyCallback/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/datasource/SetEmptyCallback/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource/SetEmptyCallback/true.result.json b/src/test/resources/json/datasource/SetEmptyCallback/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource/SetEmptyCallback/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/datasource/SetUpdateCallback/args.json b/src/test/resources/json/datasource/SetUpdateCallback/args.json new file mode 100644 index 0000000..8257a46 --- /dev/null +++ b/src/test/resources/json/datasource/SetUpdateCallback/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","f_cb_def":"2"} \ No newline at end of file diff --git a/src/test/resources/json/datasource/SetUpdateCallback/false.result.json b/src/test/resources/json/datasource/SetUpdateCallback/false.result.json new file mode 100644 index 0000000..663b79d --- /dev/null +++ b/src/test/resources/json/datasource/SetUpdateCallback/false.result.json @@ -0,0 +1,3 @@ +{ + "result" : false +} \ No newline at end of file diff --git a/src/test/resources/json/datasource/SetUpdateCallback/true.result.json b/src/test/resources/json/datasource/SetUpdateCallback/true.result.json new file mode 100644 index 0000000..5abe178 --- /dev/null +++ b/src/test/resources/json/datasource/SetUpdateCallback/true.result.json @@ -0,0 +1,3 @@ +{ + "result" : true +} \ No newline at end of file diff --git a/src/test/resources/json/datasource/Size/args.json b/src/test/resources/json/datasource/Size/args.json new file mode 100644 index 0000000..348d7ba --- /dev/null +++ b/src/test/resources/json/datasource/Size/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1"} \ No newline at end of file diff --git a/src/test/resources/json/datasource.Size.result.json b/src/test/resources/json/datasource/Size/result.json similarity index 100% rename from src/test/resources/json/datasource.Size.result.json rename to src/test/resources/json/datasource/Size/result.json diff --git a/src/test/resources/json/datasource/T/args.json b/src/test/resources/json/datasource/T/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/T/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.T.result.json b/src/test/resources/json/datasource/T/result.json similarity index 100% rename from src/test/resources/json/datasource.T.result.json rename to src/test/resources/json/datasource/T/result.json diff --git a/src/test/resources/json/datasource/V/args.json b/src/test/resources/json/datasource/V/args.json new file mode 100644 index 0000000..9eebdb1 --- /dev/null +++ b/src/test/resources/json/datasource/V/args.json @@ -0,0 +1 @@ +{"datasource_uuid":"1","candle_index":2} \ No newline at end of file diff --git a/src/test/resources/json/datasource.V.result.json b/src/test/resources/json/datasource/V/result.json similarity index 100% rename from src/test/resources/json/datasource.V.result.json rename to src/test/resources/json/datasource/V/result.json diff --git a/src/test/resources/json/getBuySellInfo/args.json b/src/test/resources/json/getBuySellInfo/args.json new file mode 100644 index 0000000..330502e --- /dev/null +++ b/src/test/resources/json/getBuySellInfo/args.json @@ -0,0 +1 @@ +{"firm_id":"1","client_code":"2","class_code":"3","sec_code":"4","price":"5"} \ No newline at end of file diff --git a/src/test/resources/json/getBuySellInfo/result.json b/src/test/resources/json/getBuySellInfo/result.json new file mode 100644 index 0000000..b1ab58f --- /dev/null +++ b/src/test/resources/json/getBuySellInfo/result.json @@ -0,0 +1,25 @@ +{ + "buy_sell_info" : { + "is_margin_sec": "1", + "is_asset_sec" : "2", + "balance" : "3", + "can_buy" : "4", + "can_sell" : "5", + "position_valuation" : "6", + "value" : "7", + "open_value" : "8", + "lim_long" : "9", + "long_coef" : "10", + "lim_short" : "11", + "short_coef" : "12", + "value_coef" : "13", + "open_value_coef" : "14", + "share" : "15", + "short_wa_price" : "16", + "long_wa_price" : "17", + "profit_loss" : "18", + "spread_hc" : "19", + "can_buy_own" : "20", + "can_sell_own" : "21" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getBuySellInfoEx/args.json b/src/test/resources/json/getBuySellInfoEx/args.json new file mode 100644 index 0000000..330502e --- /dev/null +++ b/src/test/resources/json/getBuySellInfoEx/args.json @@ -0,0 +1 @@ +{"firm_id":"1","client_code":"2","class_code":"3","sec_code":"4","price":"5"} \ No newline at end of file diff --git a/src/test/resources/json/getBuySellInfoEx/result.json b/src/test/resources/json/getBuySellInfoEx/result.json new file mode 100644 index 0000000..863283a --- /dev/null +++ b/src/test/resources/json/getBuySellInfoEx/result.json @@ -0,0 +1,36 @@ +{ + + "buy_sell_info_ex" : { + "buy_sell_info" : { + "is_margin_sec": "1", + "is_asset_sec" : "2", + "balance" : "3", + "can_buy" : "4", + "can_sell" : "5", + "position_valuation" : "6", + "value" : "7", + "open_value" : "8", + "lim_long" : "9", + "long_coef" : "10", + "lim_short" : "11", + "short_coef" : "12", + "value_coef" : "13", + "open_value_coef" : "14", + "share" : "15", + "short_wa_price" : "16", + "long_wa_price" : "17", + "profit_loss" : "18", + "spread_hc" : "19", + "can_buy_own" : "20", + "can_sell_own" : "21" + }, + "limit_kind" : "2", + "d_long" : "3", + "d_min_long" : "4", + "d_short" : "5", + "d_min_short" : "6", + "client_type" : "7", + "is_long_allowed" : "8", + "is_short_allowed" : "9" + } +} \ No newline at end of file diff --git a/src/test/resources/json/getCandlesByIndex/args.json b/src/test/resources/json/getCandlesByIndex/args.json new file mode 100644 index 0000000..e3f4cb1 --- /dev/null +++ b/src/test/resources/json/getCandlesByIndex/args.json @@ -0,0 +1 @@ +{"tag":"1","line":2,"first_candle":3,"count":4} \ No newline at end of file diff --git a/src/test/resources/json/getCandlesByIndex/result.json b/src/test/resources/json/getCandlesByIndex/result.json new file mode 100644 index 0000000..a18de47 --- /dev/null +++ b/src/test/resources/json/getCandlesByIndex/result.json @@ -0,0 +1,44 @@ +{ + "t" : [ + { + "open" : "1", + "close" : "2", + "high" : "3", + "low" : "4", + "volume" : "5", + "datetime" : { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 2009 + }, + "does_exist" : 1 + }, + { + "open" : "21", + "close" : "22", + "high" : "23", + "low" : "24", + "volume" : "25", + "datetime" : { + "mcs" : 31, + "ms" : 32, + "sec" : 33, + "min" : 34, + "hour" : 12, + "day" : 26, + "week_day" : 5, + "month" : 3, + "year" : 2015 + }, + "does_exist" : 0 + } + ], + "n" : 2, + "l" : "3" +} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo.request.json b/src/test/resources/json/getClassInfo.request.json deleted file mode 100644 index 32e9d67..0000000 --- a/src/test/resources/json/getClassInfo.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "getClassInfo", - "args" : { - "class_code" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo/args.json b/src/test/resources/json/getClassInfo/args.json new file mode 100644 index 0000000..4c8ef11 --- /dev/null +++ b/src/test/resources/json/getClassInfo/args.json @@ -0,0 +1 @@ +{"class_code":"1"} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo.result.json b/src/test/resources/json/getClassInfo/result.json similarity index 100% rename from src/test/resources/json/getClassInfo.result.json rename to src/test/resources/json/getClassInfo/result.json diff --git a/src/test/resources/json/getClassSecurities/args.json b/src/test/resources/json/getClassSecurities/args.json new file mode 100644 index 0000000..4c8ef11 --- /dev/null +++ b/src/test/resources/json/getClassSecurities/args.json @@ -0,0 +1 @@ +{"class_code":"1"} \ No newline at end of file diff --git a/src/test/resources/json/getClassSecurities/result.json b/src/test/resources/json/getClassSecurities/result.json new file mode 100644 index 0000000..1986230 --- /dev/null +++ b/src/test/resources/json/getClassSecurities/result.json @@ -0,0 +1,3 @@ +{ + "class_securities" : "1" +} \ No newline at end of file diff --git a/src/test/resources/json/getClassesList/result.json b/src/test/resources/json/getClassesList/result.json new file mode 100644 index 0000000..b08d44f --- /dev/null +++ b/src/test/resources/json/getClassesList/result.json @@ -0,0 +1,3 @@ +{ + "classes_list" : "1" +} \ No newline at end of file diff --git a/src/test/resources/json/getDepo/args.json b/src/test/resources/json/getDepo/args.json new file mode 100644 index 0000000..78b9fdc --- /dev/null +++ b/src/test/resources/json/getDepo/args.json @@ -0,0 +1 @@ +{"client_code":"1","firmid":"2","sec_code":"3","trdaccid":"4"} \ No newline at end of file diff --git a/src/test/resources/json/getDepo/result.json b/src/test/resources/json/getDepo/result.json new file mode 100644 index 0000000..b913e82 --- /dev/null +++ b/src/test/resources/json/getDepo/result.json @@ -0,0 +1,12 @@ +{ + "depo" : { + "depo_limit_locked_buy_value" : "1", + "depo_current_balance" : "2", + "depo_limit_locked_buy" : "3", + "depo_limit_locked" : "4", + "depo_limit_available" : "5", + "depo_current_limit" : "6", + "depo_open_balance" : "7", + "depo_open_limit" : "8" + } +} diff --git a/src/test/resources/json/getDepoEx.request.json b/src/test/resources/json/getDepoEx.request.json deleted file mode 100644 index 80ddf7d..0000000 --- a/src/test/resources/json/getDepoEx.request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "getDepoEx", - "args" : { - "firmid" : "1", - "client_code" : "2", - "sec_code" : "3", - "trdaccid" : "4", - "limit_kind" : 5 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getDepoEx/args.json b/src/test/resources/json/getDepoEx/args.json new file mode 100644 index 0000000..de8b254 --- /dev/null +++ b/src/test/resources/json/getDepoEx/args.json @@ -0,0 +1 @@ +{"firmid":"1","client_code":"2","sec_code":"3","trdaccid":"4","limit_kind":5} \ No newline at end of file diff --git a/src/test/resources/json/getDepoEx.result.json b/src/test/resources/json/getDepoEx/result.json similarity index 90% rename from src/test/resources/json/getDepoEx.result.json rename to src/test/resources/json/getDepoEx/result.json index 4b6f17a..3186b48 100644 --- a/src/test/resources/json/getDepoEx.result.json +++ b/src/test/resources/json/getDepoEx/result.json @@ -12,7 +12,7 @@ "locked_buy" : 10, "locked_buy_value" : "11", "locked_sell_value" : "12", - "awg_position_price" : "13", + "wa_position_price" : "13", "limit_kind" : 14 } } \ No newline at end of file diff --git a/src/test/resources/json/getFuturesHolding.request.json b/src/test/resources/json/getFuturesHolding.request.json deleted file mode 100644 index d5ae67a..0000000 --- a/src/test/resources/json/getFuturesHolding.request.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "method" : "getFuturesHolding", - "args" : { - "firmid" : "1", - "trdaccid" : "2", - "sec_code" : "3", - "type" : 4 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesHolding.result.only_required_fields.json b/src/test/resources/json/getFuturesHolding.result.only_required_fields.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getFuturesHolding.result.only_required_fields.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesHolding/args.json b/src/test/resources/json/getFuturesHolding/args.json new file mode 100644 index 0000000..14e1d9e --- /dev/null +++ b/src/test/resources/json/getFuturesHolding/args.json @@ -0,0 +1 @@ +{"firmid":"1","trdaccid":"2","sec_code":"3","type":4} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesHolding.result.json b/src/test/resources/json/getFuturesHolding/result.json similarity index 100% rename from src/test/resources/json/getFuturesHolding.result.json rename to src/test/resources/json/getFuturesHolding/result.json diff --git a/src/test/resources/json/getFuturesLimit.request.json b/src/test/resources/json/getFuturesLimit.request.json deleted file mode 100644 index eb1ec2b..0000000 --- a/src/test/resources/json/getFuturesLimit.request.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "method" : "getFuturesLimit", - "args" : { - "firmid" : "1", - "trdaccid" : "2", - "limit_type" : 3, - "currcode" : "4" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesLimit.result.only_required_fields.json b/src/test/resources/json/getFuturesLimit.result.only_required_fields.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getFuturesLimit.result.only_required_fields.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesLimit/args.json b/src/test/resources/json/getFuturesLimit/args.json new file mode 100644 index 0000000..36422d9 --- /dev/null +++ b/src/test/resources/json/getFuturesLimit/args.json @@ -0,0 +1 @@ +{"firmid":"1","trdaccid":"2","limit_type":3,"currcode":"4"} \ No newline at end of file diff --git a/src/test/resources/json/getFuturesLimit.result.json b/src/test/resources/json/getFuturesLimit/result.json similarity index 100% rename from src/test/resources/json/getFuturesLimit.result.json rename to src/test/resources/json/getFuturesLimit/result.json diff --git a/src/test/resources/json/getInfoParam.request.json b/src/test/resources/json/getInfoParam.request.json deleted file mode 100644 index 59aba61..0000000 --- a/src/test/resources/json/getInfoParam.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "getInfoParam", - "args" : { - "param_name" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getInfoParam/args.json b/src/test/resources/json/getInfoParam/args.json new file mode 100644 index 0000000..1fef9e4 --- /dev/null +++ b/src/test/resources/json/getInfoParam/args.json @@ -0,0 +1 @@ +{"param_name":"1"} \ No newline at end of file diff --git a/src/test/resources/json/getInfoParam.result.json b/src/test/resources/json/getInfoParam/result.json similarity index 100% rename from src/test/resources/json/getInfoParam.result.json rename to src/test/resources/json/getInfoParam/result.json diff --git a/src/test/resources/json/getItem.request.json b/src/test/resources/json/getItem.request.json deleted file mode 100644 index 843002f..0000000 --- a/src/test/resources/json/getItem.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "getItem", - "args" : { - "table_name" : "1", - "index" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getItem.result.only_required_fields.json b/src/test/resources/json/getItem.result.only_required_fields.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getItem.result.only_required_fields.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getItem/args.json b/src/test/resources/json/getItem/args.json new file mode 100644 index 0000000..f972303 --- /dev/null +++ b/src/test/resources/json/getItem/args.json @@ -0,0 +1 @@ +{"table_name":"1","index":2} \ No newline at end of file diff --git a/src/test/resources/json/getItem.result.json b/src/test/resources/json/getItem/result.json similarity index 100% rename from src/test/resources/json/getItem.result.json rename to src/test/resources/json/getItem/result.json diff --git a/src/test/resources/json/getLabelParams/args.json b/src/test/resources/json/getLabelParams/args.json new file mode 100644 index 0000000..5ee47bf --- /dev/null +++ b/src/test/resources/json/getLabelParams/args.json @@ -0,0 +1 @@ +{"chart_tag":"1","label_id":2} \ No newline at end of file diff --git a/src/test/resources/json/GetLabelParams.result.json b/src/test/resources/json/getLabelParams/result.json similarity index 100% rename from src/test/resources/json/GetLabelParams.result.json rename to src/test/resources/json/getLabelParams/result.json diff --git a/src/test/resources/json/getLinesCount.request.json b/src/test/resources/json/getLinesCount.request.json deleted file mode 100644 index ec2c5c0..0000000 --- a/src/test/resources/json/getLinesCount.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "getLinesCount", - "args" : { - "tag" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getLinesCount/args.json b/src/test/resources/json/getLinesCount/args.json new file mode 100644 index 0000000..f0bccc2 --- /dev/null +++ b/src/test/resources/json/getLinesCount/args.json @@ -0,0 +1 @@ +{"tag":"1"} \ No newline at end of file diff --git a/src/test/resources/json/getLinesCount.result.json b/src/test/resources/json/getLinesCount/result.json similarity index 100% rename from src/test/resources/json/getLinesCount.result.json rename to src/test/resources/json/getLinesCount/result.json diff --git a/src/test/resources/json/getMoney.request.json b/src/test/resources/json/getMoney.request.json deleted file mode 100644 index 4b35278..0000000 --- a/src/test/resources/json/getMoney.request.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "method" : "getMoney", - "args" : { - "client_code" : "1", - "firmid" : "2", - "tag" : "3", - "currcode" : "4" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getMoney/args.json b/src/test/resources/json/getMoney/args.json new file mode 100644 index 0000000..d0ddbc0 --- /dev/null +++ b/src/test/resources/json/getMoney/args.json @@ -0,0 +1 @@ +{"client_code":"1","firmid":"2","tag":"3","currcode":"4"} \ No newline at end of file diff --git a/src/test/resources/json/getMoney.result.json b/src/test/resources/json/getMoney/result.json similarity index 100% rename from src/test/resources/json/getMoney.result.json rename to src/test/resources/json/getMoney/result.json diff --git a/src/test/resources/json/getMoneyEx.request.json b/src/test/resources/json/getMoneyEx.request.json deleted file mode 100644 index ae5f90a..0000000 --- a/src/test/resources/json/getMoneyEx.request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "getMoneyEx", - "args" : { - "firmid" : "1", - "client_code" : "2", - "tag" : "3", - "currcode" : "4", - "limit_kind" : 5 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getMoneyEx.result.only_required_fields.json b/src/test/resources/json/getMoneyEx.result.only_required_fields.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getMoneyEx.result.only_required_fields.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getMoneyEx/args.json b/src/test/resources/json/getMoneyEx/args.json new file mode 100644 index 0000000..993f008 --- /dev/null +++ b/src/test/resources/json/getMoneyEx/args.json @@ -0,0 +1 @@ +{"firmid":"1","client_code":"2","tag":"3","currcode":"4","limit_kind":5} \ No newline at end of file diff --git a/src/test/resources/json/getMoneyEx.result.json b/src/test/resources/json/getMoneyEx/result.json similarity index 100% rename from src/test/resources/json/getMoneyEx.result.json rename to src/test/resources/json/getMoneyEx/result.json diff --git a/src/test/resources/json/getNumCandles.request.json b/src/test/resources/json/getNumCandles.request.json deleted file mode 100644 index d4f081b..0000000 --- a/src/test/resources/json/getNumCandles.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "getNumCandles", - "args" : { - "tag" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getNumCandles/args.json b/src/test/resources/json/getNumCandles/args.json new file mode 100644 index 0000000..f0bccc2 --- /dev/null +++ b/src/test/resources/json/getNumCandles/args.json @@ -0,0 +1 @@ +{"tag":"1"} \ No newline at end of file diff --git a/src/test/resources/json/getNumCandles.result.json b/src/test/resources/json/getNumCandles/result.json similarity index 100% rename from src/test/resources/json/getNumCandles.result.json rename to src/test/resources/json/getNumCandles/result.json diff --git a/src/test/resources/json/getNumberOf.request.json b/src/test/resources/json/getNumberOf.request.json deleted file mode 100644 index 25b041f..0000000 --- a/src/test/resources/json/getNumberOf.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "getNumberOf", - "args" : { - "table_name" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getNumberOf/args.json b/src/test/resources/json/getNumberOf/args.json new file mode 100644 index 0000000..f6b8a74 --- /dev/null +++ b/src/test/resources/json/getNumberOf/args.json @@ -0,0 +1 @@ +{"table_name":"1"} \ No newline at end of file diff --git a/src/test/resources/json/sleep.result.json b/src/test/resources/json/getNumberOf/result.json similarity index 100% rename from src/test/resources/json/sleep.result.json rename to src/test/resources/json/getNumberOf/result.json diff --git a/src/test/resources/json/getOrderByNumber.error.json b/src/test/resources/json/getOrderByNumber.error.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getOrderByNumber.error.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getOrderByNumber.request.json b/src/test/resources/json/getOrderByNumber.request.json deleted file mode 100644 index 59e5079..0000000 --- a/src/test/resources/json/getOrderByNumber.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "getOrderByNumber", - "args" : { - "class_code" : "1", - "order_id" : 12345678909876577 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getOrderByNumber/args.json b/src/test/resources/json/getOrderByNumber/args.json new file mode 100644 index 0000000..73505a3 --- /dev/null +++ b/src/test/resources/json/getOrderByNumber/args.json @@ -0,0 +1 @@ +{"class_code":"1","order_id":12345678909876577} \ No newline at end of file diff --git a/src/test/resources/json/getOrderByNumber.result.json b/src/test/resources/json/getOrderByNumber/result.json similarity index 64% rename from src/test/resources/json/getOrderByNumber.result.json rename to src/test/resources/json/getOrderByNumber/result.json index 95856a0..1c5b77a 100644 --- a/src/test/resources/json/getOrderByNumber.result.json +++ b/src/test/resources/json/getOrderByNumber/result.json @@ -36,15 +36,15 @@ "year" : 9 }, "withdraw_datetime" : { - "mcs" : 9, - "ms" : 8, - "sec" : 7, - "min" : 6, + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, "hour" : 5, - "day" : 4, - "week_day" : 3, - "month" : 2, - "year" : 1 + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 }, "bank_acc_id" : "27", "value_entry_type" : 28, @@ -61,7 +61,23 @@ "acnt_type" : 39, "capacity" : 40, "passive_only_order" : 41, - "visible" : 42 + "visible" : 42, + "awg_price" : "43", + "expiry_time" : "44", + "revision_number" : "45", + "price_currency" : "46", + "ext_order_status" : 47, + "accepted_uid" : "48", + "filled_value" : "49", + "extref" : "50", + "settle_currency" : "51", + "on_behalf_of_uid" : "52", + "client_qualifier" : 53, + "client_short_code" : "54", + "investment_decision_maker_qualifier" : 55, + "investment_decision_maker_short_code" : "56", + "executing_trader_qualifier" : 57, + "executing_trader_short_code" : "58" }, "indx" : 2 } diff --git a/src/test/resources/json/getParamEx.request.json b/src/test/resources/json/getParamEx.request.json deleted file mode 100644 index 83fc75f..0000000 --- a/src/test/resources/json/getParamEx.request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "getParamEx", - "args" : { - "class_code" : "1", - "sec_code" : "2", - "param_name" : "3" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx/args.json b/src/test/resources/json/getParamEx/args.json new file mode 100644 index 0000000..5642621 --- /dev/null +++ b/src/test/resources/json/getParamEx/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","param_name":"3"} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx.result.json b/src/test/resources/json/getParamEx/result.json similarity index 100% rename from src/test/resources/json/getParamEx.result.json rename to src/test/resources/json/getParamEx/result.json diff --git a/src/test/resources/json/getParamEx2.request.json b/src/test/resources/json/getParamEx2.request.json deleted file mode 100644 index a1ce906..0000000 --- a/src/test/resources/json/getParamEx2.request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "getParamEx2", - "args" : { - "class_code" : "1", - "sec_code" : "2", - "param_name" : "3" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx2/args.json b/src/test/resources/json/getParamEx2/args.json new file mode 100644 index 0000000..5642621 --- /dev/null +++ b/src/test/resources/json/getParamEx2/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2","param_name":"3"} \ No newline at end of file diff --git a/src/test/resources/json/getParamEx2.result.json b/src/test/resources/json/getParamEx2/result.json similarity index 100% rename from src/test/resources/json/getParamEx2.result.json rename to src/test/resources/json/getParamEx2/result.json diff --git a/src/test/resources/json/getPortfolioInfo.request.json b/src/test/resources/json/getPortfolioInfo.request.json deleted file mode 100644 index 5b58c0a..0000000 --- a/src/test/resources/json/getPortfolioInfo.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "getPortfolioInfo", - "args" : { - "firm_id" : "1", - "client_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfo/args.json b/src/test/resources/json/getPortfolioInfo/args.json new file mode 100644 index 0000000..688d4d5 --- /dev/null +++ b/src/test/resources/json/getPortfolioInfo/args.json @@ -0,0 +1 @@ +{"firm_id":"1","client_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfo.result.json b/src/test/resources/json/getPortfolioInfo/result.json similarity index 100% rename from src/test/resources/json/getPortfolioInfo.result.json rename to src/test/resources/json/getPortfolioInfo/result.json diff --git a/src/test/resources/json/getPortfolioInfoEx.request.json b/src/test/resources/json/getPortfolioInfoEx.request.json deleted file mode 100644 index 307116e..0000000 --- a/src/test/resources/json/getPortfolioInfoEx.request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "method" : "getPortfolioInfoEx", - "args" : { - "firm_id" : "1", - "client_code" : "2", - "limit_kind" : 3 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfoEx/args.json b/src/test/resources/json/getPortfolioInfoEx/args.json new file mode 100644 index 0000000..a6a25af --- /dev/null +++ b/src/test/resources/json/getPortfolioInfoEx/args.json @@ -0,0 +1 @@ +{"firm_id":"1","client_code":"2","limit_kind":3} \ No newline at end of file diff --git a/src/test/resources/json/getPortfolioInfoEx.result.json b/src/test/resources/json/getPortfolioInfoEx/result.json similarity index 100% rename from src/test/resources/json/getPortfolioInfoEx.result.json rename to src/test/resources/json/getPortfolioInfoEx/result.json diff --git a/src/test/resources/json/getQuoteLevel2.request.json b/src/test/resources/json/getQuoteLevel2.request.json deleted file mode 100644 index cbc080d..0000000 --- a/src/test/resources/json/getQuoteLevel2.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "getQuoteLevel2", - "args" : { - "class_code" : "1", - "sec_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getQuoteLevel2.result.json b/src/test/resources/json/getQuoteLevel2.result.json deleted file mode 100644 index 06bc3c0..0000000 --- a/src/test/resources/json/getQuoteLevel2.result.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "bid_count" : "3", - "offer_count" : "2", - "bids" : [ - { - "price" : "100", - "quantity" : "42" - }, - { - "price" : "200", - "quantity" : "20" - }, - { - "price" : "300", - "quantity" : "1" - } - ], - "offers" : [ - { - "price" : "350", - "quantity" : "25" - }, - { - "price" : "999", - "quantity" : "5000" - } - ] -} \ No newline at end of file diff --git a/src/test/resources/json/getQuoteLevel2/args.json b/src/test/resources/json/getQuoteLevel2/args.json new file mode 100644 index 0000000..81c76c8 --- /dev/null +++ b/src/test/resources/json/getQuoteLevel2/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/getQuoteLevel2/result.json b/src/test/resources/json/getQuoteLevel2/result.json new file mode 100644 index 0000000..500475e --- /dev/null +++ b/src/test/resources/json/getQuoteLevel2/result.json @@ -0,0 +1,36 @@ +{ + "bid_count" : "4", + "offer_count" : "3", + "bids" : [ + { + "price" : "1", + "quantity" : "100" + }, + { + "price" : "2", + "quantity" : "200" + }, + { + "price" : "3", + "quantity" : "300" + }, + { + "price" : "4", + "quantity" : "400" + } + ], + "offers" : [ + { + "price" : "5", + "quantity" : "500" + }, + { + "price" : "6", + "quantity" : "600" + }, + { + "price" : "7", + "quantity" : "700" + } + ] +} \ No newline at end of file diff --git a/src/test/resources/json/getScriptPath.request.json b/src/test/resources/json/getScriptPath.request.json deleted file mode 100644 index 0a240cb..0000000 --- a/src/test/resources/json/getScriptPath.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "getScriptPath", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/getScriptPath.result.json b/src/test/resources/json/getScriptPath/result.json similarity index 100% rename from src/test/resources/json/getScriptPath.result.json rename to src/test/resources/json/getScriptPath/result.json diff --git a/src/test/resources/json/getSecurityInfo.request.json b/src/test/resources/json/getSecurityInfo.request.json deleted file mode 100644 index d79ec5d..0000000 --- a/src/test/resources/json/getSecurityInfo.request.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "getSecurityInfo", - "args" : { - "class_code" : "1", - "sec_code" : "2" - } -} \ No newline at end of file diff --git a/src/test/resources/json/getSecurityInfo.result.error.json b/src/test/resources/json/getSecurityInfo.result.error.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/getSecurityInfo.result.error.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/getSecurityInfo/args.json b/src/test/resources/json/getSecurityInfo/args.json new file mode 100644 index 0000000..81c76c8 --- /dev/null +++ b/src/test/resources/json/getSecurityInfo/args.json @@ -0,0 +1 @@ +{"class_code":"1","sec_code":"2"} \ No newline at end of file diff --git a/src/test/resources/json/ParamRequest/result.missing.result.json b/src/test/resources/json/getSecurityInfo/error.result.json similarity index 100% rename from src/test/resources/json/ParamRequest/result.missing.result.json rename to src/test/resources/json/getSecurityInfo/error.result.json diff --git a/src/test/resources/json/getSecurityInfo.result.json b/src/test/resources/json/getSecurityInfo/result.json similarity index 100% rename from src/test/resources/json/getSecurityInfo.result.json rename to src/test/resources/json/getSecurityInfo/result.json diff --git a/src/test/resources/json/getTradeDate.request.json b/src/test/resources/json/getTradeDate.request.json deleted file mode 100644 index 22c8b4a..0000000 --- a/src/test/resources/json/getTradeDate.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "getTradeDate", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/getTradeDate.result.json b/src/test/resources/json/getTradeDate/result.json similarity index 100% rename from src/test/resources/json/getTradeDate.result.json rename to src/test/resources/json/getTradeDate/result.json diff --git a/src/test/resources/json/getWorkingFolder.request.json b/src/test/resources/json/getWorkingFolder.request.json deleted file mode 100644 index 0af8913..0000000 --- a/src/test/resources/json/getWorkingFolder.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "getWorkingFolder", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/getWorkingFolder.result.json b/src/test/resources/json/getWorkingFolder/result.json similarity index 100% rename from src/test/resources/json/getWorkingFolder.result.json rename to src/test/resources/json/getWorkingFolder/result.json diff --git a/src/test/resources/json/isConnected/result.false.json b/src/test/resources/json/isConnected/0.result.json similarity index 100% rename from src/test/resources/json/isConnected/result.false.json rename to src/test/resources/json/isConnected/0.result.json diff --git a/src/test/resources/json/isConnected/result.true.json b/src/test/resources/json/isConnected/1.result.json similarity index 100% rename from src/test/resources/json/isConnected/result.true.json rename to src/test/resources/json/isConnected/1.result.json diff --git a/src/test/resources/json/isConnected/result.garbage.json b/src/test/resources/json/isConnected/other.result.json similarity index 100% rename from src/test/resources/json/isConnected/result.garbage.json rename to src/test/resources/json/isConnected/other.result.json diff --git a/src/test/resources/json/isConnected/request.json b/src/test/resources/json/isConnected/request.json deleted file mode 100644 index 07536ef..0000000 --- a/src/test/resources/json/isConnected/request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "isConnected", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/isConnected/result.missing.is_connected.json b/src/test/resources/json/isConnected/result.missing.is_connected.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/test/resources/json/isConnected/result.missing.is_connected.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/test/resources/json/message.request_full_args.json b/src/test/resources/json/message.request_full_args.json deleted file mode 100644 index c8edf8c..0000000 --- a/src/test/resources/json/message.request_full_args.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "method" : "message", - "args" : { - "message" : "1", - "icon_type" : 2 - } -} \ No newline at end of file diff --git a/src/test/resources/json/message.request_required_args.json b/src/test/resources/json/message.request_required_args.json deleted file mode 100644 index 80d0f70..0000000 --- a/src/test/resources/json/message.request_required_args.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "message", - "args" : { - "message" : "1" - } -} \ No newline at end of file diff --git a/src/test/resources/json/message.result.error.json b/src/test/resources/json/message.result.error.json deleted file mode 100644 index 1d32867..0000000 --- a/src/test/resources/json/message.result.error.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message_result" : null -} \ No newline at end of file diff --git a/src/test/resources/json/message.result.not_ok.json b/src/test/resources/json/message.result.not_ok.json deleted file mode 100644 index 0e264ee..0000000 --- a/src/test/resources/json/message.result.not_ok.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "message_result" : { - "result" : 789 - } -} \ No newline at end of file diff --git a/src/test/resources/json/message.result.ok.json b/src/test/resources/json/message.result.ok.json deleted file mode 100644 index e5705fd..0000000 --- a/src/test/resources/json/message.result.ok.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "message_result" : { - "result" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/getClassInfo.result.only_required_fields.json b/src/test/resources/json/message/error.result.json similarity index 100% rename from src/test/resources/json/getClassInfo.result.only_required_fields.json rename to src/test/resources/json/message/error.result.json diff --git a/src/test/resources/json/message/full.args.json b/src/test/resources/json/message/full.args.json new file mode 100644 index 0000000..6c62a39 --- /dev/null +++ b/src/test/resources/json/message/full.args.json @@ -0,0 +1 @@ +{"message":"1","icon_type":2} \ No newline at end of file diff --git a/src/test/resources/json/message/ok.result.json b/src/test/resources/json/message/ok.result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/message/ok.result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file diff --git a/src/test/resources/json/message/other.result.json b/src/test/resources/json/message/other.result.json new file mode 100644 index 0000000..b97a0cf --- /dev/null +++ b/src/test/resources/json/message/other.result.json @@ -0,0 +1,3 @@ +{ + "result" : 789 +} \ No newline at end of file diff --git a/src/test/resources/json/message/without_icon_type.args.json b/src/test/resources/json/message/without_icon_type.args.json new file mode 100644 index 0000000..ded9a8d --- /dev/null +++ b/src/test/resources/json/message/without_icon_type.args.json @@ -0,0 +1 @@ +{"message":"1"} \ No newline at end of file diff --git a/src/test/resources/json/os.sysdate.request.json b/src/test/resources/json/os.sysdate.request.json deleted file mode 100644 index 2d16a93..0000000 --- a/src/test/resources/json/os.sysdate.request.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "method" : "os.sysdate", - "args" : { } -} \ No newline at end of file diff --git a/src/test/resources/json/sendTransaction.request.json b/src/test/resources/json/sendTransaction.request.json deleted file mode 100644 index f97c572..0000000 --- a/src/test/resources/json/sendTransaction.request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "method" : "sendTransaction", - "args" : { - "transaction" : { - "key_1" : "value_1", - "key_2" : "value_2", - "key_3" : "value_3" - } - } -} \ No newline at end of file diff --git a/src/test/resources/json/sendTransaction/args.json b/src/test/resources/json/sendTransaction/args.json new file mode 100644 index 0000000..70005c0 --- /dev/null +++ b/src/test/resources/json/sendTransaction/args.json @@ -0,0 +1 @@ +{"transaction":{"key_1":"value_1","key_2":"value_2","key_3":"value_3"}} \ No newline at end of file diff --git a/src/test/resources/json/sendTransaction.result.json b/src/test/resources/json/sendTransaction/result.json similarity index 100% rename from src/test/resources/json/sendTransaction.result.json rename to src/test/resources/json/sendTransaction/result.json diff --git a/src/test/resources/json/sleep.request.json b/src/test/resources/json/sleep.request.json deleted file mode 100644 index 02b0de2..0000000 --- a/src/test/resources/json/sleep.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "sleep", - "args" : { - "time" : 1 - } -} \ No newline at end of file diff --git a/src/test/resources/json/sleep/args.json b/src/test/resources/json/sleep/args.json new file mode 100644 index 0000000..f0192cf --- /dev/null +++ b/src/test/resources/json/sleep/args.json @@ -0,0 +1 @@ +{"time":1} \ No newline at end of file diff --git a/src/test/resources/json/getDepoEx.result.only_required_fields.json b/src/test/resources/json/sleep/error.result.json similarity index 100% rename from src/test/resources/json/getDepoEx.result.only_required_fields.json rename to src/test/resources/json/sleep/error.result.json diff --git a/src/test/resources/json/sleep/result.json b/src/test/resources/json/sleep/result.json new file mode 100644 index 0000000..b59898c --- /dev/null +++ b/src/test/resources/json/sleep/result.json @@ -0,0 +1,3 @@ +{ + "result" : 1 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/AllTrade.json b/src/test/resources/json/structures/AllTrade.json index e73ae9d..88d27bf 100644 --- a/src/test/resources/json/structures/AllTrade.json +++ b/src/test/resources/json/structures/AllTrade.json @@ -26,5 +26,6 @@ }, "period" : 16, "open_interest" : "17", - "exchange_code" : "18" + "exchange_code" : "18", + "exec_market": "19" } \ No newline at end of file diff --git a/src/test/resources/json/structures/ConnectedEventInfo/false.flag.json b/src/test/resources/json/structures/ConnectedEventInfo/false.flag.json new file mode 100644 index 0000000..e586251 --- /dev/null +++ b/src/test/resources/json/structures/ConnectedEventInfo/false.flag.json @@ -0,0 +1,3 @@ +{ + "flag" : false +} \ No newline at end of file diff --git a/src/test/resources/json/structures/ConnectedEventInfo.json b/src/test/resources/json/structures/ConnectedEventInfo/true.flag.json similarity index 100% rename from src/test/resources/json/structures/ConnectedEventInfo.json rename to src/test/resources/json/structures/ConnectedEventInfo/true.flag.json diff --git a/src/test/resources/json/structures/DepoLimit.json b/src/test/resources/json/structures/DepoLimit.json new file mode 100644 index 0000000..73711b3 --- /dev/null +++ b/src/test/resources/json/structures/DepoLimit.json @@ -0,0 +1,16 @@ +{ + "sec_code": "1", + "trdaccid": "2", + "firmid": "3", + "client_code": "4", + "openbal": 5, + "openlimit": 6, + "currentbal": 7, + "currentlimit": 8, + "locked_sell": 9, + "locked_buy": 10, + "locked_buy_value": "11", + "locked_sell_value": "12", + "wa_position_price": "13", + "limit_kind": 14 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/DepoLimitDelete.json b/src/test/resources/json/structures/DepoLimitDelete.json new file mode 100644 index 0000000..edb8ed1 --- /dev/null +++ b/src/test/resources/json/structures/DepoLimitDelete.json @@ -0,0 +1,7 @@ +{ + "sec_code": "1", + "trdaccid": "2", + "firmid": "3", + "client_code": "4", + "limit_kind": 5 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/Firm.json b/src/test/resources/json/structures/Firm.json index 188fa83..4561f82 100644 --- a/src/test/resources/json/structures/Firm.json +++ b/src/test/resources/json/structures/Firm.json @@ -1,5 +1,5 @@ { - "firm_id" : "1", + "firmid" : "1", "firm_name" : "2", "status" : 3, "exchange" : "4" diff --git a/src/test/resources/json/structures/FuturesLimitDelete.json b/src/test/resources/json/structures/FuturesLimitDelete.json new file mode 100644 index 0000000..3b2cb8d --- /dev/null +++ b/src/test/resources/json/structures/FuturesLimitDelete.json @@ -0,0 +1,4 @@ +{ + "firmid": "1", + "limit_type": 2 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/MoneyLimit.json b/src/test/resources/json/structures/MoneyLimit.json new file mode 100644 index 0000000..687bb89 --- /dev/null +++ b/src/test/resources/json/structures/MoneyLimit.json @@ -0,0 +1,18 @@ +{ + "currcode": "1", + "tag": "2", + "firmid": "3", + "client_code": "4", + "openbal": "5", + "openlimit": "6", + "currentbal": "7", + "currentlimit": "8", + "locked": "9", + "locked_value_coef": "10", + "locked_margin_value": "11", + "leverage": "12", + "limit_kind": 13, + "wa_position_price": "14", + "orders_collateral": "15", + "positions_collateral": "16" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/MoneyLimitDelete.json b/src/test/resources/json/structures/MoneyLimitDelete.json new file mode 100644 index 0000000..2ff987e --- /dev/null +++ b/src/test/resources/json/structures/MoneyLimitDelete.json @@ -0,0 +1,7 @@ +{ + "currcode": "1", + "tag": "2", + "client_code": "3", + "firmid": "4", + "limit_kind": 5 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/NegDeal.json b/src/test/resources/json/structures/NegDeal.json new file mode 100644 index 0000000..b0b9338 --- /dev/null +++ b/src/test/resources/json/structures/NegDeal.json @@ -0,0 +1,93 @@ +{ + "neg_deal_num": 12345678910, + "neg_deal_time": "2", + "flags": 3, + "brokerref": "4", + "userid": "5", + "firmid": "6", + "cpuserid": "7", + "cpfirmid": "8", + "account": "9", + "price": "10", + "qty": 11, + "matchref": "12", + "settlecode": "13", + "yield": "14", + "accruedint": "15", + "value": "16", + "price2": "17", + "reporate": "18", + "refundrate": "19", + "trans_id": "20", + "client_code": "21", + "repoentry": 22, + "repovalue": "23", + "repo2value": "24", + "repoterm": "25", + "start_discount": "26", + "lower_discount": "27", + "upper_discount": "28", + "block_securities": "29", + "uid": "30", + "withdraw_time": "31", + "neg_deal_date": "32", + "balance": "33", + "origin_repovalue": "34", + "origin_qty": "35", + "origin_discount": "36", + "neg_deal_activation_date": "37", + "neg_deal_activation_time": "38", + "quoteno": "39", + "settle_currency": "40", + "sec_code": "41", + "class_code": "42", + "bank_acc_id": "43", + "withdraw_date": "44", + "linkedorder": "45", + "activation_date_time": { + "mcs": 1, + "ms": 2, + "sec": 3, + "min": 4, + "hour": 5, + "day": 6, + "week_day": 7, + "month": 8, + "year": 9 + }, + "withdraw_date_time": { + "mcs" : 10, + "ms": 11, + "sec": 12, + "min": 13, + "hour": 14, + "day": 15, + "week_day": 16, + "month": 17, + "year": 18 + }, + "date_time": { + "mcs": 19, + "ms": 20, + "sec": 21, + "min": 22, + "hour": 23, + "day": 24, + "week_day": 25, + "month": 26, + "year": 27 + }, + "lseccode": "49", + "canceled_uid": "50", + "system_ref": "51", + "price_currency": "52", + "order_exchange_code": "53", + "extref": "54", + "period": "55", + "client_qualifier": 56, + "client_short_code": "57", + "investment_decision_maker_qualifier": 58, + "investment_decision_maker_short_code": "59", + "executing_trader_qualifier": 60, + "executing_trader_short_code": "61" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/NegTrade.json b/src/test/resources/json/structures/NegTrade.json new file mode 100644 index 0000000..aa1e815 --- /dev/null +++ b/src/test/resources/json/structures/NegTrade.json @@ -0,0 +1,64 @@ +{ + "trade_num": 12345678910, + "trade_date": "2", + "settle_date": "3", + "flags": 4, + "brokerref": "5", + "firmid": "6", + "account": "7", + "cpfirmid": "8", + "cpaccount": "9", + "price": "10", + "qty": 11, + "value": "12", + "settlecode": "13", + "report_num": "14", + "cpreport_num": "15", + "accruedint": "16", + "repotradeno": "17", + "price1": "18", + "reporate": "19", + "price2": "20", + "client_code": "21", + "ts_comission": "22", + "balance": "23", + "settle_time": "24", + "amount": "25", + "repovalue": "26", + "repoterm": "27", + "repo2value": "28", + "return_value": "29", + "discount": "30", + "lower_discount": "31", + "upper_discount": "32", + "block_securities": "33", + "urgency_flag": "34", + "type": 35, + "operation_type": 36, + "expected_discount": "37", + "expected_quantity": "38", + "expected_repovalue": "39", + "expected_repo2value": "40", + "expected_return_value": "41", + "order_num": "42", + "report_trade_date": "43", + "settled": 44, + "clearing_type": 45, + "report_comission": "46", + "coupon_payment": "47", + "principal_payment": "48", + "principal_payment_date": "49", + "nextdaysettle": "50", + "settle_currency": "51", + "sec_code": "52", + "class_code": "53", + "compval": "54", + "parenttradeno": "55", + "bankid": "56", + "bankaccid": "57", + "precisebalance": "58", + "confirmtime": "59", + "ex_flags": 60, + "confirmreport": "61", + "extref": "62" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/Order.json b/src/test/resources/json/structures/Order.json new file mode 100644 index 0000000..25e25d6 --- /dev/null +++ b/src/test/resources/json/structures/Order.json @@ -0,0 +1,80 @@ +{ + "order_num": 12345678910, + "flags": 2, + "brokerref": "3", + "userid": "4", + "firmid": "5", + "account": "6", + "price": "7", + "qty": 8, + "balance": "9", + "value": "10", + "accruedint": "11", + "yield": "12", + "trans_id": "13", + "client_code": "14", + "price2": "15", + "settlecode": "16", + "uid": "17", + "canceled_uid": "18", + "exchange_code": "19", + "activation_time": "20", + "linkedorder": "21", + "expiry": "22", + "sec_code": "23", + "class_code": "24", + "datetime": { + "mcs": 1, + "ms": 2, + "sec": 3, + "min": 4, + "hour": 5, + "day": 6, + "week_day": 7, + "month": 8, + "year": 9 + }, + "withdraw_datetime": { + "mcs": 10, + "ms": 11, + "sec": 12, + "min": 13, + "hour": 14, + "day": 15, + "week_day": 16, + "month": 17, + "year": 18 + }, + "bank_acc_id": "27", + "value_entry_type": 28, + "repoterm": "29", + "repovalue": "30", + "repo2value": "31", + "repo_value_balance": "32", + "start_discount": "33", + "reject_reason": "34", + "ext_order_flags": "35", + "min_qty": 36, + "exec_type": 37, + "side_qualifier": 38, + "acnt_type": 39, + "capacity": 40, + "passive_only_order": 41, + "visible": 42, + "awg_price": "43", + "expiry_time": "44", + "revision_number": "45", + "price_currency": "46", + "ext_order_status": 47, + "accepted_uid": "48", + "filled_value": "49", + "extref": "50", + "settle_currency": "51", + "on_behalf_of_uid": "52", + "client_qualifier": 53, + "client_short_code": "54", + "investment_decision_maker_qualifier": 55, + "investment_decision_maker_short_code": "56", + "executing_trader_qualifier": 57, + "executing_trader_short_code": "58" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/ParamEventInfo.json b/src/test/resources/json/structures/ParamEventInfo.json new file mode 100644 index 0000000..638be70 --- /dev/null +++ b/src/test/resources/json/structures/ParamEventInfo.json @@ -0,0 +1,4 @@ +{ + "class_code": "1", + "sec_code": "2" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/QuoteEventInfo.json b/src/test/resources/json/structures/QuoteEventInfo.json new file mode 100644 index 0000000..638be70 --- /dev/null +++ b/src/test/resources/json/structures/QuoteEventInfo.json @@ -0,0 +1,4 @@ +{ + "class_code": "1", + "sec_code": "2" +} \ No newline at end of file diff --git a/src/test/resources/json/structures/StopEventInfo/from_dialog_window.json b/src/test/resources/json/structures/StopEventInfo/from_dialog_window.json new file mode 100644 index 0000000..435b4e5 --- /dev/null +++ b/src/test/resources/json/structures/StopEventInfo/from_dialog_window.json @@ -0,0 +1,3 @@ +{ + "flag": 1 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/StopEventInfo/from_terminal_closure.json b/src/test/resources/json/structures/StopEventInfo/from_terminal_closure.json new file mode 100644 index 0000000..23cef57 --- /dev/null +++ b/src/test/resources/json/structures/StopEventInfo/from_terminal_closure.json @@ -0,0 +1,3 @@ +{ + "flag": 2 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/StopEventInfo/other.json b/src/test/resources/json/structures/StopEventInfo/other.json new file mode 100644 index 0000000..c0ce31a --- /dev/null +++ b/src/test/resources/json/structures/StopEventInfo/other.json @@ -0,0 +1,3 @@ +{ + "flag": 3 +} \ No newline at end of file diff --git a/src/test/resources/json/structures/StopOrder.json b/src/test/resources/json/structures/StopOrder.json new file mode 100644 index 0000000..c7dee46 --- /dev/null +++ b/src/test/resources/json/structures/StopOrder.json @@ -0,0 +1,69 @@ +{ + "order_num": 12345678910, + "ordertime": "2", + "flags": 3, + "brokerref": "4", + "firmid": "5", + "account": "6", + "condition": 7, + "condition_price": "8", + "price": "9", + "qty": 10, + "linkedorder": "11", + "expiry": "12", + "trans_id": "13", + "client_code": "14", + "co_order_num": "15", + "co_order_price": "16", + "stop_order_type": 17, + "orderdate": "18", + "alltrade_num": "19", + "stopflags": 20, + "offset": "21", + "spread": "22", + "balance": "23", + "uid": "24", + "filled_qty": 25, + "withdraw_time": "26", + "condition_price2": "27", + "active_from_time": "28", + "active_to_time": "29", + "sec_code": "30", + "class_code": "31", + "condition_sec_code": "32", + "condition_class_code": "33", + "canceled_uid": "34", + "order_date_time": { + "mcs": 1, + "ms": 2, + "sec": 3, + "min": 4, + "hour": 5, + "day": 6, + "week_day": 7, + "month": 8, + "year": 9 + }, + "withdraw_datetime": { + "mcs" : 10, + "ms": 11, + "sec": 12, + "min": 13, + "hour": 14, + "day": 15, + "week_day": 16, + "month": 17, + "year": 18 + }, + "activation_date_time": { + "mcs": 19, + "ms": 20, + "sec": 21, + "min": 22, + "hour": 23, + "day": 24, + "week_day": 25, + "month": 26, + "year": 27 + } +} \ No newline at end of file diff --git a/src/test/resources/json/structures/Trade.json b/src/test/resources/json/structures/Trade.json new file mode 100644 index 0000000..a1e2713 --- /dev/null +++ b/src/test/resources/json/structures/Trade.json @@ -0,0 +1,92 @@ +{ + "trade_num": 12345678910, + "order_num": 23456789101, + "brokerref": "3", + "userid": "4", + "firmid": "5", + "canceled_uid": "6", + "account": "7", + "price": "8", + "qty": 9, + "value": "10", + "accruedint": "11", + "yield": "12", + "settlecode": "13", + "cpfirmid": "14", + "flags": 15, + "price2": "16", + "reporate": "17", + "client_code": "18", + "accrued2": "19", + "repoterm": "20", + "repovalue": "21", + "repo2value": "22", + "start_discount": "23", + "lower_discount": "24", + "upper_discount": "25", + "block_securities": "26", + "clearing_comission": "27", + "exchange_comission": "28", + "tech_center_comission": "29", + "settle_date": "30", + "settle_currency": "31", + "trade_currency": "32", + "exchange_code": "33", + "station_id": "34", + "sec_code": "35", + "class_code": "36", + "datetime": { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 + }, + "bank_acc_id": "38", + "broker_comission": "39", + "linked_trade": "40", + "period": 41, + "trans_id": "42", + "kind": 43, + "clearing_bank_accid": "44", + "canceled_datetime": { + "mcs" : 9, + "ms" : 8, + "sec" : 7, + "min" : 6, + "hour" : 5, + "day" : 4, + "week_day" : 3, + "month" : 2, + "year" : 1 + }, + "clearing_firmid": "46", + "system_ref": "47", + "uid": "48", + "lseccode": "49", + "order_revision_number": "50", + "order_qty": "51", + "order_price": "52", + "order_exchange_code": "53", + "exec_market": "54", + "liquidity_indicator": 55, + "extref": "56", + "ext_trade_flags": "57", + "on_behalf_of_uid": "58", + "client_qualifier": 59, + "client_short_code": "60", + "investment_decision_maker_qualifier": 61, + "investment_decision_maker_short_code": "62", + "executing_trader_qualifier": 63, + "executing_trader_short_code": "64", + "waiver_flag": 65, + "mleg_base_sid": "66", + "side_qualifier": 67, + "otc_post_trade_indicator": 68, + "capacity": 69, + "cross_rate": "70" +} diff --git a/src/test/resources/json/structures/TransReply.json b/src/test/resources/json/structures/TransReply.json new file mode 100644 index 0000000..66643b0 --- /dev/null +++ b/src/test/resources/json/structures/TransReply.json @@ -0,0 +1,44 @@ +{ + "trans_id": 12345678910, + "status": 2, + "result_msg": "3", + "date_time": { + "mcs" : 1, + "ms" : 2, + "sec" : 3, + "min" : 4, + "hour" : 5, + "day" : 6, + "week_day" : 7, + "month" : 8, + "year" : 9 + }, + "uid": "5", + "flags": 6, + "server_trans_id": "7", + "order_num": "8", + "price": "9", + "quantity": "10", + "balance": "11", + "firm_id": "12", + "account": "13", + "client_code": "14", + "brokerref": "15", + "class_code": "16", + "sec_code": "17", + "exchange_code": "18", + "error_code": 19, + "error_source": 20, + "first_ordernum": "21", + "gate_reply_time": { + "mcs" : 9, + "ms" : 8, + "sec" : 7, + "min" : 6, + "hour" : 5, + "day" : 4, + "week_day" : 3, + "month" : 2, + "year" : 1 + } +} \ No newline at end of file diff --git a/src/test/resources/json/os.sysdate.result.json b/src/test/resources/json/sysdate/result.json similarity index 100% rename from src/test/resources/json/os.sysdate.result.json rename to src/test/resources/json/sysdate/result.json From 9d321dff2be5ea2d4de476d1498ff36d5bc119c5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 28 Oct 2018 22:10:22 +0300 Subject: [PATCH 326/549] Forgot to add this file in the previous commit. --- src/test/resources/json/datasource.Close.request.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 src/test/resources/json/datasource.Close.request.json diff --git a/src/test/resources/json/datasource.Close.request.json b/src/test/resources/json/datasource.Close.request.json deleted file mode 100644 index 0b6c965..0000000 --- a/src/test/resources/json/datasource.Close.request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "method" : "datasource.Close", - "args" : { - "datasource_uuid" : "1" - } -} \ No newline at end of file From b2f71dc22491cea994d931e26e789892734d7279 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 28 Oct 2018 22:32:10 +0300 Subject: [PATCH 327/549] Added nullity annotations. --- .../zmq/AbstractZmqTcpQluaEventPoller.java | 4 +- .../rpc/api/zmq/ZmqTcpQluaEventProcessor.java | 96 +++++++++++++++---- .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 +- .../lua/rpc/serde/json/JsonSerdeModule.java | 7 +- 4 files changed, 84 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java index 5b1b8db..2fc740d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractZmqTcpQluaEventPoller.java @@ -5,7 +5,9 @@ import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.common.collect.ImmutableSet; +import lombok.NonNull; import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; import org.zeromq.ZMQ; import org.zeromq.ZMsg; @@ -105,7 +107,7 @@ public QluaEvent poll() throws PollingException { } @Override - public void subscribe(final QluaEvent.EventType eventType) { + public void subscribe(@NotNull @NonNull final QluaEvent.EventType eventType) { if (isOpened()) { subSocket.subscribe( serdeModule.serialize(eventType) ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java index 8bbc651..31606bf 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java @@ -4,11 +4,16 @@ import com.enfernuz.quik.lua.rpc.api.security.zmq.ZmqSecurable; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.config.ClientConfiguration; -import com.enfernuz.quik.lua.rpc.events.api.*; +import com.enfernuz.quik.lua.rpc.events.api.PollingMode; +import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; +import com.enfernuz.quik.lua.rpc.events.api.QluaEventHandler; import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.SerdeUtils; -import com.google.common.collect.*; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import lombok.NonNull; +import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.List; @@ -40,12 +45,15 @@ public final class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor, Zm * * @param config конфигурация клиента точки подключения к RPC-сервису QUIK * @return новый экземпляр компонента {@link ZmqTcpQluaEventProcessor} + * @throws NullPointerException если какой-либо из аргументов является null */ - public static ZmqTcpQluaEventProcessor newInstance(final ClientConfiguration config, final PollingMode pollingMode) { + public static @NotNull ZmqTcpQluaEventProcessor newInstance( + @NotNull @NonNull final ClientConfiguration config, + @NotNull @NonNull final PollingMode pollingMode) { final SerdeModule serdeModule = SerdeUtils.getSerdeModule( config.getSerdeProtocol() ); final ZmqTcpQluaEventPoller eventPoller; - switch ( requireNonNull(pollingMode, "Аргумент 'pollingMode' не должен быть null.") ) { + switch (pollingMode) { case BLOCKING: eventPoller = new BlockingZmqTcpQluaEventPoller(config.getNetworkAddress(), config.getAuthContext(), serdeModule); break; @@ -60,10 +68,12 @@ public static ZmqTcpQluaEventProcessor newInstance(final ClientConfiguration con return new ZmqTcpQluaEventProcessor(eventPoller, serdeModule); } - private ZmqTcpQluaEventProcessor(final ZmqTcpQluaEventPoller eventPoller, final SerdeModule serdeModule) { + private ZmqTcpQluaEventProcessor( + @NotNull @NonNull final ZmqTcpQluaEventPoller eventPoller, + @NotNull @NonNull final SerdeModule serdeModule) { - this.eventPoller = requireNonNull(eventPoller, "Аргумент 'eventPoller' не должен быть null."); - this.serdeModule = requireNonNull(serdeModule, "Аргумент 'serdeModule' не должен быть null."); + this.eventPoller = eventPoller; + this.serdeModule = serdeModule; this.eventHandlers = new CopyOnWriteArrayList<>(); } @@ -175,28 +185,46 @@ public void process(int maxEvents) { } while (--maxEvents > 0); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventHandler} является null + */ @Override - public void register(final QluaEventHandler eventHandler) { - eventHandlers.add( requireNonNull(eventHandler) ); + public void register(@NotNull @NonNull final QluaEventHandler eventHandler) { + eventHandlers.add(eventHandler); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventHandlers} является null или какой-либо из его элементов + * является null + */ @Override - public void register(final Iterable eventHandlers) { + public void register(@NotNull @NonNull final Iterable eventHandlers) { - for (final QluaEventHandler eventHandler : requireNonNull(eventHandlers)) { + for (final QluaEventHandler eventHandler : eventHandlers) { register(eventHandler); } } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventHandler} является null + */ @Override - public void unregister(final QluaEventHandler eventHandler) { + public void unregister(@NotNull @NonNull final QluaEventHandler eventHandler) { eventHandlers.remove(eventHandler); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventHandlers} является null или какой-либо из его элементов + * является null + */ @Override - public void unregister(final Iterable eventHandlers) { + public void unregister(@NotNull @NonNull final Iterable eventHandlers) { - for (final QluaEventHandler eventHandler : requireNonNull(eventHandlers)) { + for (final QluaEventHandler eventHandler : eventHandlers) { unregister(eventHandler); } } @@ -206,18 +234,32 @@ public ImmutableList getRegisteredEventHandlers() { return ImmutableList.copyOf(eventHandlers); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventType} является null + */ @Override - public void subscribe(final QluaEvent.EventType eventType) { + public void subscribe(@NotNull @NonNull final QluaEvent.EventType eventType) { eventPoller.subscribe(eventType); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventTypes} является null или какой-либо из его элементов + * является null + */ @Override - public void subscribe(final Iterable eventTypes) { + public void subscribe(@NotNull @NonNull final Iterable eventTypes) { eventPoller.subscribe(eventTypes); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventTypes} является null или какой-либо из его элементов + * является null + */ @Override - public void subscribe(final QluaEvent.EventType... eventTypes) { + public void subscribe(@NotNull @NonNull final QluaEvent.EventType... eventTypes) { eventPoller.subscribe(eventTypes); } @@ -226,18 +268,32 @@ public void subscribeToEverything() { eventPoller.subscribeToEverything(); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventType} является null + */ @Override - public void unsubscribe(final QluaEvent.EventType eventType) { + public void unsubscribe(@NotNull @NonNull final QluaEvent.EventType eventType) { eventPoller.unsubscribe(eventType); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventTypes} является null или какой-либо из его элементов + * является null + */ @Override - public void unsubscribe(final Iterable eventTypes) { + public void unsubscribe(@NotNull @NonNull final Iterable eventTypes) { eventPoller.unsubscribe(eventTypes); } + /** + * {@inheritDoc} + * @throws NullPointerException если аргумент {@code eventTypes} является null или какой-либо из его элементов + * является null + */ @Override - public void unsubscribe(final QluaEvent.EventType... eventTypes) { + public void unsubscribe(@NotNull @NonNull final QluaEvent.EventType... eventTypes) { eventPoller.unsubscribe(eventTypes); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index 4204667..b7c1233 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -11,6 +11,7 @@ import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.SerdeUtils; +import lombok.NonNull; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -39,8 +40,9 @@ public final class ZmqTcpQluaRpcClient extends AbstractTcpZmqClient implements R * * @param config конфигурация клиента точки подключения к RPC-сервису QUIK * @return новый экземпляр компонента {@link ZmqTcpQluaRpcClient} + * @throws NullPointerException если аргумент {@code config} является null */ - public static ZmqTcpQluaRpcClient newInstance(final ClientConfiguration config) { + public static @NotNull ZmqTcpQluaRpcClient newInstance(@NotNull @NonNull final ClientConfiguration config) { return new ZmqTcpQluaRpcClient( requireNonNull(config.getNetworkAddress(), "Свойство аргумента 'config.getNetworkAddress()' не должно быть null."), diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java index 0eaf846..965d647 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonSerdeModule.java @@ -4,10 +4,9 @@ import com.enfernuz.quik.lua.rpc.serde.SerdeException; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.NonNull; import org.jetbrains.annotations.NotNull; -import static java.util.Objects.requireNonNull; - public enum JsonSerdeModule implements SerdeModule { INSTANCE; @@ -15,9 +14,7 @@ public enum JsonSerdeModule implements SerdeModule { private final ObjectMapper objectMapper = new ObjectMapper(); @Override - public @NotNull byte[] serialize(final @NotNull T t) { - - requireNonNull(t); + public @NotNull byte[] serialize(final @NotNull @NonNull T t) { try { From dd698ff4142d3d4289309646d5e7fa9fa385a6c7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 28 Oct 2018 22:32:43 +0300 Subject: [PATCH 328/549] Got back the protobuf QLua EventType serialization. --- ...r.java => ProtobufQluaEventTypeSerde.java} | 57 ++++++++++++++++++- .../serde/protobuf/ProtobufSerdeModule.java | 33 ++++++----- 2 files changed, 74 insertions(+), 16 deletions(-) rename src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{ProtobufQluaEventTypeDeserializer.java => ProtobufQluaEventTypeSerde.java} (51%) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java similarity index 51% rename from src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java rename to src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java index a7ded23..38d1447 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -1,27 +1,44 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; -import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.Serde; import qlua.events.QluaEvents; import java.util.Arrays; +import java.util.EnumMap; import java.util.HashMap; import java.util.Map; /** - * Десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса + * Сериализатор / десериализатор типов событий API QLua терминала QUIK в рамках удалённого RPC-сервиса * quik-lua-rpc, использующего формат Protocol Buffers. *
* @see quik-lua-rpc * @see Protocol Buffers */ -enum ProtobufQluaEventTypeDeserializer implements Deserializer { +enum ProtobufQluaEventTypeSerde implements Serde { INSTANCE; private static final Map PB_EVENT_TYPE_HASH_TO_EVENT_TYPE_MAP = createPbEventTypeHashToEventTypeMap(); + private static final EnumMap EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP = + createEventTypeToPbEventTypeBytesMap(); + + /** + * Сериализует в бинарное представление тип события API QLua терминала QUIK в рамках удалённого RPC-сервиса + * quik-lua-rpc, использующего формат Protocol Buffers. + * + * @param eventType тип события API QLua терминала QUIK + * @return бинарное представление, отвечающее данному типу события; + * null в случае отсутствия соответствия, а также в случае, когда аргумент {@code eventType} является null + */ + @Override + public byte[] serialize(final QluaEvent.EventType eventType) { + return EVENT_TYPE_TO_PB_EVENT_TYPE_BYTES_MAP.get(eventType); + } + /** * Десериализует бинарное представление типа события API QLua терминала QUIK в рамках удалённого RPC-сервиса * quik-lua-rpc, использующего формат Protocol Buffers. @@ -74,6 +91,40 @@ private static Map createPbEventTypeHashToEventTyp return result; } + private static EnumMap createEventTypeToPbEventTypeBytesMap() { + + final EnumMap result = new EnumMap<>(QluaEvent.EventType.class); + + result.put(QluaEvent.EventType.ON_CLOSE, asStringBytes(QluaEvents.EventType.ON_CLOSE.getNumber())); + result.put(QluaEvent.EventType.ON_STOP, asStringBytes(QluaEvents.EventType.ON_STOP.getNumber())); + result.put(QluaEvent.EventType.ON_FIRM, asStringBytes(QluaEvents.EventType.ON_FIRM.getNumber())); + result.put(QluaEvent.EventType.ON_ALL_TRADE, asStringBytes(QluaEvents.EventType.ON_ALL_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_TRADE, asStringBytes(QluaEvents.EventType.ON_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_ORDER, asStringBytes(QluaEvents.EventType.ON_ORDER.getNumber())); + result.put(QluaEvent.EventType.ON_ACCOUNT_BALANCE, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_BALANCE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_CHANGE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_CHANGE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_FUTURES_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_FUTURES_CLIENT_HOLDING, asStringBytes(QluaEvents.EventType.ON_FUTURES_CLIENT_HOLDING.getNumber())); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT.getNumber())); + result.put(QluaEvent.EventType.ON_MONEY_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_MONEY_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT.getNumber())); + result.put(QluaEvent.EventType.ON_DEPO_LIMIT_DELETE, asStringBytes(QluaEvents.EventType.ON_DEPO_LIMIT_DELETE.getNumber())); + result.put(QluaEvent.EventType.ON_ACCOUNT_POSITION, asStringBytes(QluaEvents.EventType.ON_ACCOUNT_POSITION.getNumber())); + result.put(QluaEvent.EventType.ON_NEG_DEAL, asStringBytes(QluaEvents.EventType.ON_NEG_DEAL.getNumber())); + result.put(QluaEvent.EventType.ON_NEG_TRADE, asStringBytes(QluaEvents.EventType.ON_NEG_TRADE.getNumber())); + result.put(QluaEvent.EventType.ON_STOP_ORDER, asStringBytes(QluaEvents.EventType.ON_STOP_ORDER.getNumber())); + result.put(QluaEvent.EventType.ON_TRANS_REPLY, asStringBytes(QluaEvents.EventType.ON_TRANS_REPLY.getNumber())); + result.put(QluaEvent.EventType.ON_PARAM, asStringBytes(QluaEvents.EventType.ON_PARAM.getNumber())); + result.put(QluaEvent.EventType.ON_QUOTE, asStringBytes(QluaEvents.EventType.ON_QUOTE.getNumber())); + result.put(QluaEvent.EventType.ON_DISCONNECTED, asStringBytes(QluaEvents.EventType.ON_DISCONNECTED.getNumber())); + result.put(QluaEvent.EventType.ON_CONNECTED, asStringBytes(QluaEvents.EventType.ON_CONNECTED.getNumber())); + result.put(QluaEvent.EventType.ON_CLEAN_UP, asStringBytes(QluaEvents.EventType.ON_CLEAN_UP.getNumber())); + + assert (result.size() == QluaEvent.EventType.values().length); + + return result; + } + private static byte[] asStringBytes(final int number) { return Integer.toString(number).getBytes(ProtobufSerdeUtils.DEFAULT_PROTOBUF_CHARSET); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 8ff4482..7906bdd 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -25,23 +25,30 @@ public enum ProtobufSerdeModule implements SerdeModule { @Override public byte[] serialize(@NonNull final T t) { - // This cast is safe because we use the registerSerializer method to fill the map. - @SuppressWarnings("unchecked") - final Serializer serializer = (Serializer) CLASS_TO_SERIALIZER_MAP.get(t.getClass()); - if (serializer == null) { - throw new SerdeException( - String.format("Неподдерживаемый класс для сериализации в protobuf-представление: %s.", t.getClass().getName()) - ); + final byte[] result; + if (t instanceof QluaEvent.EventType) { + result = ProtobufQluaEventTypeSerde.INSTANCE.serialize((QluaEvent.EventType) t); } else { - try { - return serializer.serialize(t); - } catch (final Exception ex) { + // This cast is safe because we use the registerSerializer method to fill the map. + @SuppressWarnings("unchecked") + final Serializer serializer = (Serializer) CLASS_TO_SERIALIZER_MAP.get(t.getClass()); + if (serializer == null) { throw new SerdeException( - String.format("Ошибка при сериализации экземпляра класса '%s' в protobuf-представление.", t.getClass().getName()), - ex + String.format("Неподдерживаемый класс для сериализации в protobuf-представление: %s.", t.getClass().getName()) ); + } else { + try { + result = serializer.serialize(t); + } catch (final Exception ex) { + throw new SerdeException( + String.format("Ошибка при сериализации экземпляра класса '%s' в protobuf-представление.", t.getClass().getName()), + ex + ); + } } } + + return result; } @Override @@ -157,7 +164,7 @@ private static Map, Deserializer> createClassToDeserializerMap() { final ImmutableMap.Builder, Deserializer> result = ImmutableMap.builder(); - registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeDeserializer.INSTANCE); + registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerDeserializer(result, StopEventInfo.class, StopEventInfoPbDeserializer.INSTANCE); registerDeserializer(result, ConnectedEventInfo.class, ConnectedEventInfoPbDeserializer.INSTANCE); registerDeserializer(result, Trade.class, TradePbDeserializer.INSTANCE); From 8fddb4c5176964e684f1866f61c1c7baaa3fbca9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 29 Oct 2018 23:45:45 +0300 Subject: [PATCH 329/549] Added the protobuf serde for bit.band, bit.bor, bit.bxor, bit.bnot, bit.test, bit.tohex. --- .../serde/protobuf/BAndArgsPbSerializer.java | 42 +++++++++++++++++++ .../protobuf/BAndResultPbDeserializer.java | 26 ++++++++++++ .../serde/protobuf/BNotArgsPbSerializer.java | 26 ++++++++++++ .../protobuf/BNotResultPbDeserializer.java | 26 ++++++++++++ .../serde/protobuf/BOrArgsPbSerializer.java | 42 +++++++++++++++++++ .../protobuf/BOrResultPbDeserializer.java | 26 ++++++++++++ .../serde/protobuf/BXorArgsPbSerializer.java | 42 +++++++++++++++++++ .../protobuf/BXorResultPbDeserializer.java | 26 ++++++++++++ .../protobuf/BitTestArgsPbSerializer.java | 27 ++++++++++++ .../protobuf/BitTestResultPbDeserializer.java | 26 ++++++++++++ .../protobuf/BitToHexArgsPbSerializer.java | 33 +++++++++++++++ .../BitToHexResultPbDeserializer.java | 26 ++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 15 +++++++ 13 files changed, 383 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java new file mode 100644 index 0000000..16479f6 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Band; + +import java.util.stream.IntStream; + +import static java.util.stream.Collectors.toList; + +enum BAndArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final BAnd.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Band.Request convert(@NotNull final BAnd.Args args) { + + final Band.Request.Builder result = + Band.Request.newBuilder() + .setX1( args.getX1() ) + .setX2( args.getX2() ); + + final int[] xi = args.getXi(); + if (xi != null) { + result.addAllXi( + IntStream.of(xi) + .boxed() + .collect( toList() ) + ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndResultPbDeserializer.java new file mode 100644 index 0000000..02c9703 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Band; + +enum BAndResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BAnd.Result deserialize(@NotNull final byte[] data) { + return convert( Band.Result.parseFrom(data) ); + } + + @NotNull + @Override + public BAnd.Result convert(@NotNull final Band.Result result) { + return new BAnd.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java new file mode 100644 index 0000000..5576a48 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bnot; + +enum BNotArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final BNot.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Bnot.Request convert(@NotNull final BNot.Args args) { + + return Bnot.Request.newBuilder() + .setX( args.getX() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotResultPbDeserializer.java new file mode 100644 index 0000000..e954ba5 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bnot; + +enum BNotResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BNot.Result deserialize(@NotNull final byte[] data) { + return convert( Bnot.Result.parseFrom(data) ); + } + + @NotNull + @Override + public BNot.Result convert(@NotNull final Bnot.Result result) { + return new BNot.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java new file mode 100644 index 0000000..c077c22 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bor; + +import java.util.stream.IntStream; + +import static java.util.stream.Collectors.toList; + +enum BOrArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final BOr.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Bor.Request convert(@NotNull final BOr.Args args) { + + final Bor.Request.Builder result = + Bor.Request.newBuilder() + .setX1( args.getX1() ) + .setX2( args.getX2() ); + + final int[] xi = args.getXi(); + if (xi != null) { + result.addAllXi( + IntStream.of(xi) + .boxed() + .collect( toList() ) + ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrResultPbDeserializer.java new file mode 100644 index 0000000..2776583 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bor; + +enum BOrResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BOr.Result deserialize(@NotNull final byte[] data) { + return convert( Bor.Result.parseFrom(data) ); + } + + @NotNull + @Override + public BOr.Result convert(@NotNull final Bor.Result result) { + return new BOr.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java new file mode 100644 index 0000000..a627cae --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bxor; + +import java.util.stream.IntStream; + +import static java.util.stream.Collectors.toList; + +enum BXorArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final BXor.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Bxor.Request convert(@NotNull final BXor.Args args) { + + final Bxor.Request.Builder result = + Bxor.Request.newBuilder() + .setX1( args.getX1() ) + .setX2( args.getX2() ); + + final int[] xi = args.getXi(); + if (xi != null) { + result.addAllXi( + IntStream.of(xi) + .boxed() + .collect( toList() ) + ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorResultPbDeserializer.java new file mode 100644 index 0000000..2d44360 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Bxor; + +enum BXorResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public BXor.Result deserialize(@NotNull final byte[] data) { + return convert( Bxor.Result.parseFrom(data) ); + } + + @NotNull + @Override + public BXor.Result convert(@NotNull final Bxor.Result result) { + return new BXor.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java new file mode 100644 index 0000000..2ae8234 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java @@ -0,0 +1,27 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Btest; + +enum BitTestArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final Test.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Btest.Request convert(@NotNull final Test.Args args) { + + return Btest.Request.newBuilder() + .setX( args.getX() ) + .setN( args.getN() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbDeserializer.java new file mode 100644 index 0000000..3e43ebe --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Btest; + +enum BitTestResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Test.Result deserialize(@NotNull final byte[] data) { + return convert( Btest.Result.parseFrom(data) ); + } + + @NotNull + @Override + public Test.Result convert(@NotNull final Btest.Result result) { + return Test.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java new file mode 100644 index 0000000..8138c31 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Tohex; + +enum BitToHexArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final ToHex.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public Tohex.Request convert(@NotNull final ToHex.Args args) { + + final Tohex.Request.Builder result = + Tohex.Request.newBuilder() + .setX( args.getX() ); + + final Integer n = args.getN(); + if (n != null) { + result.setN(n); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbDeserializer.java new file mode 100644 index 0000000..2c454a7 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.rpc.bit.Tohex; + +enum BitToHexResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public ToHex.Result deserialize(@NotNull final byte[] data) { + return convert( Tohex.Result.parseFrom(data) ); + } + + @NotNull + @Override + public ToHex.Result convert(@NotNull final Tohex.Result result) { + return new ToHex.Result( result.getResult() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 7906bdd..6cd0485 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.enfernuz.quik.lua.rpc.api.messages.*; +import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.Deserializer; @@ -155,6 +156,13 @@ private static Map, Serializer> createClassToSerializerMap() { registerSerializer(result, SubscribeLevel2Quotes.Args.class, SubscribeLevel2QuotesArgsPbSerializer.INSTANCE); registerSerializer(result, UnsubscribeLevel2Quotes.Args.class, UnsubscribeLevel2QuotesArgsPbSerializer.INSTANCE); + registerSerializer(result, BAnd.Args.class, BAndArgsPbSerializer.INSTANCE); + registerSerializer(result, BNot.Args.class, BNotArgsPbSerializer.INSTANCE); + registerSerializer(result, BOr.Args.class, BOrArgsPbSerializer.INSTANCE); + registerSerializer(result, BXor.Args.class, BXorArgsPbSerializer.INSTANCE); + registerSerializer(result, Test.Args.class, BitTestArgsPbSerializer.INSTANCE); + registerSerializer(result, ToHex.Args.class, BitToHexArgsPbSerializer.INSTANCE); + // FIXME: add the rest of the serializers return result.build(); @@ -258,6 +266,13 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, SubscribeLevel2Quotes.Result.class, SubscribeLevel2QuotesResultPbDeserializer.INSTANCE); registerDeserializer(result, UnsubscribeLevel2Quotes.Result.class, UnsubscribeLevel2QuotesResultPbDeserializer.INSTANCE); + registerDeserializer(result, BAnd.Result.class, BAndResultPbDeserializer.INSTANCE); + registerDeserializer(result, BNot.Result.class, BNotResultPbDeserializer.INSTANCE); + registerDeserializer(result, BOr.Result.class, BOrResultPbDeserializer.INSTANCE); + registerDeserializer(result, BXor.Result.class, BXorResultPbDeserializer.INSTANCE); + registerDeserializer(result, Test.Result.class, BitTestResultPbDeserializer.INSTANCE); + registerDeserializer(result, ToHex.Result.class, BitToHexResultPbDeserializer.INSTANCE); + // FIXME: add the rest of the deserializers return result.build(); From 724a2f3aa7a05b3dec3209d28a75b811c86b08b9 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 3 Nov 2018 03:18:49 +0300 Subject: [PATCH 330/549] Added protobuf serde for the datasource's OHLCVT and Size. --- .../serde/protobuf/DsCArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsCResultPbDeserializer.java | 25 +++++++++++++ .../serde/protobuf/DsHArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsHResultPbDeserializer.java | 25 +++++++++++++ .../serde/protobuf/DsLArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsLResultPbDeserializer.java | 25 +++++++++++++ .../serde/protobuf/DsOArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsOResultPbDeserializer.java | 25 +++++++++++++ .../protobuf/DsSizePbArgsSerializer.java | 25 +++++++++++++ .../protobuf/DsSizeResultPbDeserializer.java | 25 +++++++++++++ .../serde/protobuf/DsTArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsTResultPbDeserializer.java | 37 +++++++++++++++++++ .../serde/protobuf/DsVArgsPbSerializer.java | 26 +++++++++++++ .../protobuf/DsVResultPbDeserializer.java | 25 +++++++++++++ .../serde/protobuf/ProtobufSerdeModule.java | 19 +++++++++- 15 files changed, 386 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizeResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVResultPbDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java new file mode 100644 index 0000000..50fc098 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsCArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final C.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.C.Request convert(@NotNull final C.Args args) { + + return qlua.rpc.datasource.C.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCResultPbDeserializer.java new file mode 100644 index 0000000..dac9872 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsCResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public C.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.C.Result.parseFrom(data) ); + } + + @NotNull + @Override + public C.Result convert(@NotNull final qlua.rpc.datasource.C.Result result) { + return new C.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java new file mode 100644 index 0000000..9277644 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsHArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final H.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.H.Request convert(@NotNull final H.Args args) { + + return qlua.rpc.datasource.H.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHResultPbDeserializer.java new file mode 100644 index 0000000..a979947 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsHResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public H.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.H.Result.parseFrom(data) ); + } + + @NotNull + @Override + public H.Result convert(@NotNull final qlua.rpc.datasource.H.Result result) { + return new H.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java new file mode 100644 index 0000000..9c5cb61 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsLArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final L.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.L.Request convert(@NotNull final L.Args args) { + + return qlua.rpc.datasource.L.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLResultPbDeserializer.java new file mode 100644 index 0000000..d0ae319 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsLResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public L.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.L.Result.parseFrom(data) ); + } + + @NotNull + @Override + public L.Result convert(@NotNull final qlua.rpc.datasource.L.Result result) { + return new L.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java new file mode 100644 index 0000000..9c73353 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsOArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final O.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.O.Request convert(@NotNull final O.Args args) { + + return qlua.rpc.datasource.O.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOResultPbDeserializer.java new file mode 100644 index 0000000..831c223 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsOResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public O.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.O.Result.parseFrom(data) ); + } + + @NotNull + @Override + public O.Result convert(@NotNull final qlua.rpc.datasource.O.Result result) { + return new O.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java new file mode 100644 index 0000000..e3dddf8 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsSizePbArgsSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final Size.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.Size.Request convert(@NotNull final Size.Args args) { + + return qlua.rpc.datasource.Size.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizeResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizeResultPbDeserializer.java new file mode 100644 index 0000000..62b1fd2 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizeResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsSizeResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Size.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.Size.Result.parseFrom(data) ); + } + + @NotNull + @Override + public Size.Result convert(@NotNull final qlua.rpc.datasource.Size.Result result) { + return new Size.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java new file mode 100644 index 0000000..569a18b --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsTArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final T.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.T.Request convert(@NotNull final T.Args args) { + + return qlua.rpc.datasource.T.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java new file mode 100644 index 0000000..1e52427 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java @@ -0,0 +1,37 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsTResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public T.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.T.Result.parseFrom(data) ); + } + + @NotNull + @Override + public T.Result convert(@NotNull final qlua.rpc.datasource.T.Result result) { + + return T.Result.builder() + .year( result.getYear() ) + .month( result.getMonth() ) + .day( result.getDay() ) + .weekDay( result.getWeekDay() ) + .hour( result.getHour() ) + .min( result.getMin() ) + .sec( result.getSec() ) + .ms( result.getMs() ) + .count( result.getCount() ) + .build(); + + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java new file mode 100644 index 0000000..3e6833d --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsVArgsPbSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final V.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.V.Request convert(@NotNull final V.Args args) { + + return qlua.rpc.datasource.V.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setCandleIndex( args.getCandleIndex() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVResultPbDeserializer.java new file mode 100644 index 0000000..ad11c29 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVResultPbDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsVResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public V.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.V.Result.parseFrom(data) ); + } + + @NotNull + @Override + public V.Result convert(@NotNull final qlua.rpc.datasource.V.Result result) { + return new V.Result( result.getValue() ); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 6cd0485..122d882 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -4,6 +4,7 @@ import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; +import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.Deserializer; @@ -24,7 +25,7 @@ public enum ProtobufSerdeModule implements SerdeModule { private static final Map, Deserializer> CLASS_TO_DESERIALIZER_MAP = createClassToDeserializerMap(); @Override - public byte[] serialize(@NonNull final T t) { + public byte[] serialize(@NonNull @NotNull final T t) { final byte[] result; if (t instanceof QluaEvent.EventType) { @@ -163,6 +164,14 @@ private static Map, Serializer> createClassToSerializerMap() { registerSerializer(result, Test.Args.class, BitTestArgsPbSerializer.INSTANCE); registerSerializer(result, ToHex.Args.class, BitToHexArgsPbSerializer.INSTANCE); + registerSerializer(result, O.Args.class, DsOArgsPbSerializer.INSTANCE); + registerSerializer(result, H.Args.class, DsHArgsPbSerializer.INSTANCE); + registerSerializer(result, L.Args.class, DsLArgsPbSerializer.INSTANCE); + registerSerializer(result, C.Args.class, DsCArgsPbSerializer.INSTANCE); + registerSerializer(result, V.Args.class, DsVArgsPbSerializer.INSTANCE); + registerSerializer(result, T.Args.class, DsTArgsPbSerializer.INSTANCE); + registerSerializer(result, Size.Args.class, DsSizePbArgsSerializer.INSTANCE); + // FIXME: add the rest of the serializers return result.build(); @@ -273,6 +282,14 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, Test.Result.class, BitTestResultPbDeserializer.INSTANCE); registerDeserializer(result, ToHex.Result.class, BitToHexResultPbDeserializer.INSTANCE); + registerDeserializer(result, O.Result.class, DsOResultPbDeserializer.INSTANCE); + registerDeserializer(result, H.Result.class, DsHResultPbDeserializer.INSTANCE); + registerDeserializer(result, L.Result.class, DsLResultPbDeserializer.INSTANCE); + registerDeserializer(result, C.Result.class, DsCResultPbDeserializer.INSTANCE); + registerDeserializer(result, V.Result.class, DsVResultPbDeserializer.INSTANCE); + registerDeserializer(result, T.Result.class, DsTResultPbDeserializer.INSTANCE); + registerDeserializer(result, Size.Result.class, DsSizeResultPbDeserializer.INSTANCE); + // FIXME: add the rest of the deserializers return result.build(); From 8caba329d15dae2041a440eec2ad70dba3064fd7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:22:57 +0300 Subject: [PATCH 331/549] Added nullity annotations. --- .../lua/rpc/api/messages/datasource/CreateDataSource.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java index 9c280da..d81f221 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSource.java @@ -10,6 +10,7 @@ import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class CreateDataSource implements RemoteProcedure { @@ -72,21 +73,25 @@ private Args( } @JsonIgnore + @NotNull public String getClassCode() { return classCode; } @JsonIgnore + @NotNull public String getSecCode() { return secCode; } @JsonIgnore + @NotNull public Interval getInterval() { return interval; } @JsonIgnore + @Nullable public String getParam() { return param; } From e19706ed2341f29861e09a9488cc0c21e1494b31 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:23:35 +0300 Subject: [PATCH 332/549] Removed weekDay field from comparison chain. --- .../com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java index bd0d592..a7481c5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntry.java @@ -105,7 +105,6 @@ public int compareTo(final DateTimeEntry other) { .start() .compare(year, other.year) .compare(month, other.month) - .compare(weekDay, other.weekDay) .compare(day, other.day) .compare(hour, other.hour) .compare(min, other.min) From 511cac4ecadeed5013407c0e18e86aaa86b6be88 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:24:54 +0300 Subject: [PATCH 333/549] Added DataSourceTime structure (result of DataSource:T). --- .../rpc/api/structures/DataSourceTime.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceTime.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceTime.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceTime.java new file mode 100644 index 0000000..e42e4ca --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceTime.java @@ -0,0 +1,87 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ComparisonChain; +import lombok.Builder; +import lombok.Value; +import org.jetbrains.annotations.NotNull; + +@Value +public class DataSourceTime implements Comparable { + + private static final String YEAR = "year"; + private static final String MONTH = "month"; + private static final String DAY = "day"; + private static final String WEEK_DAY = "week_day"; + private static final String HOUR = "hour"; + private static final String MIN = "min"; + private static final String SEC = "sec"; + private static final String MS = "ms"; + private static final String COUNT = "count"; + + int year; + int month; + int day; + int weekDay; + int hour; + int min; + int sec; + int ms; + int count; + + @JsonCreator + @Builder + private DataSourceTime(@JsonProperty(value = YEAR, required = true) final int year, + @JsonProperty(value = MONTH, required = true) final int month, + @JsonProperty(value = DAY, required = true) final int day, + @JsonProperty(value = WEEK_DAY, required = true) final int weekDay, + @JsonProperty(value = HOUR, required = true) final int hour, + @JsonProperty(value = MIN, required = true) final int min, + @JsonProperty(value = SEC, required = true) final int sec, + @JsonProperty(value = MS, required = true) final int ms, + @JsonProperty(value = COUNT, required = true) final int count) { + + this.year = year; + this.month = month; + this.day = day; + this.weekDay = weekDay; + this.hour = hour; + this.min = min; + this.sec = sec; + this.ms = ms; + this.count = count; + } + + @Override + public int compareTo(@NotNull final DataSourceTime other) { + return ComparisonChain + .start() + .compare(year, other.year) + .compare(month, other.month) + .compare(day, other.day) + .compare(weekDay, other.weekDay) + .compare(hour, other.hour) + .compare(min, other.min) + .compare(sec, other.sec) + .compare(ms, other.ms) + .result(); + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(YEAR, year) + .add(MONTH, month) + .add(DAY, day) + .add(WEEK_DAY, weekDay) + .add(HOUR, hour) + .add(MIN, min) + .add(SEC, sec) + .add(MS, ms) + .add(COUNT, count) + .toString(); + } +} From 2df0a161109c532831daef190e4ec6bae6063183 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:25:31 +0300 Subject: [PATCH 334/549] Added protobuf deserializer for DataSourceTime. --- .../DataSourceTimePbDeserializer.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceTimePbDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceTimePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceTimePbDeserializer.java new file mode 100644 index 0000000..e2fd8d0 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceTimePbDeserializer.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DataSourceTime; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +enum DataSourceTimePbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DataSourceTime deserialize(final byte[] data) { + return convert( QluaStructures.DataSourceTime.parseFrom(data) ); + } + + @Override + public DataSourceTime convert(@NotNull final QluaStructures.DataSourceTime time) { + + return DataSourceTime.builder() + .year( time.getYear() ) + .month( time.getMonth() ) + .day( time.getDay() ) + .weekDay( time.getWeekDay() ) + .hour( time.getHour() ) + .min( time.getMin() ) + .sec( time.getSec() ) + .ms( time.getMs() ) + .count( time.getCount() ) + .build(); + } +} From 484b3e91159905971d6ee644dfb8a2f0d4220469 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:26:19 +0300 Subject: [PATCH 335/549] Added DataSourceUpdateInfo structure (result of convenient DataSource:SetUpdateCallback feature). --- .../api/structures/DataSourceUpdateInfo.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceUpdateInfo.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceUpdateInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceUpdateInfo.java new file mode 100644 index 0000000..cd761ca --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DataSourceUpdateInfo.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.api.structures; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import org.jetbrains.annotations.NotNull; + +@Value +public class DataSourceUpdateInfo { + + private static final String DATA_SOURCE_UUID = "data_source_uuid"; + private static final String INDEX = "index"; + private static final String OPEN = "open"; + private static final String HIGH = "high"; + private static final String LOW = "low"; + private static final String CLOSE = "close"; + private static final String VOLUME = "volume"; + private static final String TIME = "time"; + private static final String SIZE = "size"; + + String datasourceUUID; + int index; + String open; + String high; + String low; + String close; + String volume; + DataSourceTime time; + Integer size; + + @JsonCreator + @Builder + private DataSourceUpdateInfo( + @JsonProperty(value = DATA_SOURCE_UUID,required = true) @NonNull @NotNull final String datasourceUUID, + @JsonProperty(value = INDEX, required = true) final int index, + @JsonProperty(OPEN) final String open, + @JsonProperty(HIGH) final String high, + @JsonProperty(LOW) final String low, + @JsonProperty(CLOSE) final String close, + @JsonProperty(VOLUME) final String volume, + @JsonProperty(TIME) final DataSourceTime time, + @JsonProperty(SIZE) final Integer size) { + + this.datasourceUUID = datasourceUUID; + this.index = index; + this.open = open; + this.high = high; + this.low = low; + this.close = close; + this.volume = volume; + this.time = time; + this.size = size; + } + + @NotNull + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(DATA_SOURCE_UUID, datasourceUUID) + .add(INDEX, index) + .add(OPEN, open) + .add(HIGH, high) + .add(LOW, low) + .add(CLOSE, close) + .add(VOLUME, volume) + .add(TIME, time) + .add(SIZE, size) + .toString(); + } +} From b7594fddecc0f6c5ef07ba694dbe395e60f3b855 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:27:07 +0300 Subject: [PATCH 336/549] Added protobuf deserializer for DataSourceUpdateInfo. --- .../DataSourceUpdateInfoPbDeserializer.java | 45 +++++++++++++++++++ .../serde/protobuf/ProtobufSerdeUtils.java | 8 ++++ 2 files changed, 53 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceUpdateInfoPbDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceUpdateInfoPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceUpdateInfoPbDeserializer.java new file mode 100644 index 0000000..a1c3f29 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DataSourceUpdateInfoPbDeserializer.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.DataSourceUpdateInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromDataSourceTime; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + +enum DataSourceUpdateInfoPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public DataSourceUpdateInfo deserialize(final byte[] data) { + return convert( QluaStructures.DataSourceUpdateInfo.parseFrom(data) ); + } + + @Override + public DataSourceUpdateInfo convert(@NotNull final QluaStructures.DataSourceUpdateInfo pbDataSourceUpdateInfo) { + + final DataSourceUpdateInfo.DataSourceUpdateInfoBuilder result = DataSourceUpdateInfo.builder() + .datasourceUUID( pbDataSourceUpdateInfo.getUuid() ) + .index( pbDataSourceUpdateInfo.getIndex() ) + .open( convertFromPbString(pbDataSourceUpdateInfo.getOpen()) ) + .high( convertFromPbString(pbDataSourceUpdateInfo.getHigh()) ) + .low( convertFromPbString(pbDataSourceUpdateInfo.getLow()) ) + .close( convertFromPbString(pbDataSourceUpdateInfo.getClose()) ) + .volume( convertFromPbString(pbDataSourceUpdateInfo.getVolume()) ); + + if (pbDataSourceUpdateInfo.hasTime()) { + result.time( convertFromDataSourceTime(pbDataSourceUpdateInfo.getTime()) ); + } + + if (!pbDataSourceUpdateInfo.getNullSize()) { + result.size( pbDataSourceUpdateInfo.getValueSize() ); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java index c287757..16e47f8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeUtils.java @@ -60,6 +60,9 @@ final class ProtobufSerdeUtils { private static final FromPbConverter SECURITY_PB_CONVERTER = SecurityPbDeserializer.INSTANCE; + private static final FromPbConverter DATA_SOURCE_TIME_PB_CONVERTER = + DataSourceTimePbDeserializer.INSTANCE; + @Contract(" -> fail") private ProtobufSerdeUtils() { throw new AssertionError("This should never be invoked."); @@ -150,4 +153,9 @@ static GetQuoteLevel2.QuoteEntry convertFromPbQuoteEntry(@NotNull final qlua.rpc static Security convertFromPbSecurity(@NotNull final QluaStructures.Security security) { return SECURITY_PB_CONVERTER.convert(security); } + + @NotNull + static DataSourceTime convertFromDataSourceTime(@NotNull final QluaStructures.DataSourceTime time) { + return DATA_SOURCE_TIME_PB_CONVERTER.convert(time); + } } From 0864c606b1c97d98f5f31837eab92159e9dc10da Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:28:47 +0300 Subject: [PATCH 337/549] Handling of DataSource:SetUpdateCallback. --- .../datasource/SetUpdateCallback.java | 117 +++++++++++++++++- .../DsSetUpdateCallbackPbArgsSerializer.java | 39 ++++++ ...SetUpdateCallbackPbResultDeserializer.java | 25 ++++ .../rpc/datasource/SetUpdateCallback.proto | 7 ++ src/main/proto/qlua/rpc/qlua_structures.proto | 29 +++++ ...sourceSetUpdateCallbackJsonSerdeTests.java | 7 ++ .../datasource/SetUpdateCallback/args.json | 2 +- 7 files changed, 219 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbResultDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java index cba491b..19e809b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallback.java @@ -3,27 +3,42 @@ import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.enfernuz.quik.lua.rpc.api.RpcResult; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class SetUpdateCallback implements RemoteProcedure { private SetUpdateCallback() {} - @JsonPropertyOrder({Args.DATASOURCE_UUID, Args.CALLBACK_FUNCTION_DEFINITION}) + @JsonPropertyOrder({ + Args.DATASOURCE_UUID, + Args.CALLBACK_FUNCTION_DEFINITION, + Args.WATCHING_O, + Args.WATCHING_H, + Args.WATCHING_L, + Args.WATCHING_C, + Args.WATCHING_V, + Args.WATCHING_T, + Args.WATCHING_SIZE + }) @EqualsAndHashCode public static class Args implements RpcArgs { private static final String DATASOURCE_UUID = "datasource_uuid"; private static final String CALLBACK_FUNCTION_DEFINITION = "f_cb_def"; + private static final String WATCHING_O = "watching_O"; + private static final String WATCHING_H = "watching_H"; + private static final String WATCHING_L = "watching_L"; + private static final String WATCHING_C = "watching_C"; + private static final String WATCHING_V = "watching_V"; + private static final String WATCHING_T = "watching_T"; + private static final String WATCHING_SIZE = "watching_Size"; @JsonProperty(DATASOURCE_UUID) private final String datasourceUUID; @@ -31,27 +46,117 @@ public static class Args implements RpcArgs { @JsonProperty(CALLBACK_FUNCTION_DEFINITION) private final String fCbDef; + @JsonProperty(WATCHING_O) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingO; + + @JsonProperty(WATCHING_H) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingH; + + @JsonProperty(WATCHING_L) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingL; + + @JsonProperty(WATCHING_C) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingC; + + @JsonProperty(WATCHING_V) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingV; + + @JsonProperty(WATCHING_T) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingT; + + @JsonProperty(WATCHING_SIZE) + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private final boolean watchingSize; + + @JsonCreator @Builder - private Args(@NonNull final String datasourceUUID, @NonNull final String fCbDef) { + private Args( + @NonNull final String datasourceUUID, + final String fCbDef, + final boolean watchingO, + final boolean watchingH, + final boolean watchingL, + final boolean watchingC, + final boolean watchingV, + final boolean watchingT, + final boolean watchingSize) { + this.datasourceUUID = datasourceUUID; this.fCbDef = fCbDef; + this.watchingO = watchingO; + this.watchingH = watchingH; + this.watchingL = watchingL; + this.watchingC = watchingC; + this.watchingV = watchingV; + this.watchingT = watchingT; + this.watchingSize = watchingSize; } @JsonIgnore + @NotNull public String getDatasourceUUID() { return datasourceUUID; } @JsonIgnore + @Nullable public String getCallbackFunctionDefinition() { return fCbDef; } + @JsonIgnore + public boolean isWatchingO() { + return watchingO; + } + + @JsonIgnore + public boolean isWatchingH() { + return watchingH; + } + + @JsonIgnore + public boolean isWatchingL() { + return watchingL; + } + + @JsonIgnore + public boolean isWatchingC() { + return watchingC; + } + + @JsonIgnore + public boolean isWatchingV() { + return watchingV; + } + + @JsonIgnore + public boolean isWatchingT() { + return watchingT; + } + + @JsonIgnore + public boolean isWatchingSize() { + return watchingSize; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) .add(DATASOURCE_UUID, datasourceUUID) .add(CALLBACK_FUNCTION_DEFINITION, fCbDef) + .add(WATCHING_O, watchingO) + .add(WATCHING_H, watchingH) + .add(WATCHING_L, watchingL) + .add(WATCHING_C, watchingC) + .add(WATCHING_V,watchingV) + .add(WATCHING_T, watchingT) + .add(WATCHING_SIZE, watchingSize) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java new file mode 100644 index 0000000..d94782f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsSetUpdateCallbackPbArgsSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetUpdateCallback.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetUpdateCallback.Request convert(@NotNull final SetUpdateCallback.Args args) { + + final qlua.rpc.datasource.SetUpdateCallback.Request.Builder result = + qlua.rpc.datasource.SetUpdateCallback.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .setWatchingO( args.isWatchingO() ) + .setWatchingH( args.isWatchingH() ) + .setWatchingL( args.isWatchingL() ) + .setWatchingC( args.isWatchingC() ) + .setWatchingV( args.isWatchingV() ) + .setWatchingT( args.isWatchingT() ) + .setWatchingSize( args.isWatchingSize() ); + + final String fbCbDef = args.getCallbackFunctionDefinition(); + if (fbCbDef != null) { + result.setFCbDef(fbCbDef); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbResultDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbResultDeserializer.java new file mode 100644 index 0000000..bff5b94 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbResultDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsSetUpdateCallbackPbResultDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetUpdateCallback.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.SetUpdateCallback.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetUpdateCallback.Result convert(@NotNull final qlua.rpc.datasource.SetUpdateCallback.Result result) { + return SetUpdateCallback.Result.getInstance( result.getResult() ); + } +} diff --git a/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto b/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto index 21b80c9..7c67982 100644 --- a/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto +++ b/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto @@ -11,6 +11,13 @@ message Request { string datasource_uuid = 1; string f_cb_def = 2; // NB: формат функции: "function (NUMBER index, TABLE datasource) function_body end" + bool watching_o = 3; + bool watching_h = 4; + bool watching_l = 5; + bool watching_c = 6; + bool watching_v = 7; + bool watching_t = 8; + bool watching_size = 9; } message Result { diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index e38099d..d4e5afd 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -624,3 +624,32 @@ message ConnectedEventInfo { message StopEventInfo { int32 flag = 1; } + +message DataSourceTime { + + int32 year = 1; + int32 month = 2; + int32 day = 3; + int32 week_day = 4; + int32 hour = 5; + int32 min = 6; + int32 sec = 7; + int32 ms = 8; + int32 count = 9; +} + +message DataSourceUpdateInfo { + + string uuid = 1; + int32 index = 2; + string open = 3; + string high = 4; + string low = 5; + string close = 6; + string volume = 7; + DataSourceTime time = 8; + oneof size { + bool null_size = 9; + int32 value_size = 10; + } +} diff --git a/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java b/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java index 4d493f0..c58b09c 100644 --- a/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java +++ b/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java @@ -15,6 +15,13 @@ public SetUpdateCallback.Args getArgsObject() { return SetUpdateCallback.Args.builder() .datasourceUUID("1") .fCbDef("2") + .watchingO(true) + .watchingH(true) + .watchingL(true) + .watchingC(true) + .watchingV(true) + .watchingT(true) + .watchingSize(true) .build(); } diff --git a/src/test/resources/json/datasource/SetUpdateCallback/args.json b/src/test/resources/json/datasource/SetUpdateCallback/args.json index 8257a46..9b739bc 100644 --- a/src/test/resources/json/datasource/SetUpdateCallback/args.json +++ b/src/test/resources/json/datasource/SetUpdateCallback/args.json @@ -1 +1 @@ -{"datasource_uuid":"1","f_cb_def":"2"} \ No newline at end of file +{"datasource_uuid":"1","f_cb_def":"2","watching_O":true,"watching_H":true,"watching_L":true,"watching_C":true,"watching_V":true,"watching_T":true,"watching_Size":true} \ No newline at end of file From b42203fb4f6549dd1002b0fea6412c7e1c7303d2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:30:56 +0300 Subject: [PATCH 338/549] Overrode getMessage for ServiceRpcException. --- .../com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java index 47a5946..95380fc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/ServiceRpcException.java @@ -13,4 +13,9 @@ public class ServiceRpcException extends RpcException { public ServiceRpcException(final ServiceError error) { this.error = error; } + + @Override + public String getMessage() { + return error.getMessage(); + } } From 4abee317fc6aa150140798edf5bed34a91e79c00 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:32:04 +0300 Subject: [PATCH 339/549] Handling of DataSource:T. --- .../quik/lua/rpc/api/QluaRpcClient.java | 2 +- .../lua/rpc/api/messages/datasource/T.java | 54 +++---------------- .../lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java | 4 +- .../protobuf/DsTResultPbDeserializer.java | 12 ++--- src/main/proto/qlua/rpc/datasource/T.proto | 13 ++--- .../java/wip/DatasourceTJsonSerdeTests.java | 7 ++- .../resources/json/datasource/T/result.json | 20 +++---- 7 files changed, 33 insertions(+), 79 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java index 643e263..15c9e92 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/QluaRpcClient.java @@ -177,7 +177,7 @@ public interface QluaRpcClient extends Gateway, Securable { int datasource_Size(Size.Args args); - T.Result datasource_T(T.Args args); + DataSourceTime datasource_T(T.Args args); String datasource_V(V.Args args); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java index 50ed80e..1d26ad2 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java @@ -3,6 +3,7 @@ import com.enfernuz.quik.lua.rpc.api.RemoteProcedure; import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.enfernuz.quik.lua.rpc.api.RpcResult; +import com.enfernuz.quik.lua.rpc.api.structures.DataSourceTime; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -97,62 +98,21 @@ public String toString() { @Value public static class Result implements RpcResult { - private static final String YEAR = "year"; - private static final String MONTH = "month"; - private static final String DAY = "day"; - private static final String WEEK_DAY = "week_day"; - private static final String HOUR = "hour"; - private static final String MIN = "min"; - private static final String SEC = "sec"; - private static final String MS = "ms"; - private static final String COUNT = "count"; - - int year; - int month; - int day; - int weekDay; - int hour; - int min; - int sec; - int ms; - int count; + private static final String TIME = "time"; + + DataSourceTime time; @JsonCreator @Builder - private Result(@JsonProperty(value = YEAR, required = true) final int year, - @JsonProperty(value = MONTH, required = true) final int month, - @JsonProperty(value = DAY, required = true) final int day, - @JsonProperty(value = WEEK_DAY, required = true) final int weekDay, - @JsonProperty(value = HOUR, required = true) final int hour, - @JsonProperty(value = MIN, required = true) final int min, - @JsonProperty(value = SEC, required = true) final int sec, - @JsonProperty(value = MS, required = true) final int ms, - @JsonProperty(value = COUNT, required = true) final int count) { - - this.year = year; - this.month = month; - this.day = day; - this.weekDay = weekDay; - this.hour = hour; - this.min = min; - this.sec = sec; - this.ms = ms; - this.count = count; + private Result(@JsonProperty(value = TIME, required = true) @NonNull @NotNull final DataSourceTime time) { + this.time = time; } @NotNull @Override public String toString() { return MoreObjects.toStringHelper(this) - .add(YEAR, year) - .add(MONTH, month) - .add(DAY, day) - .add(WEEK_DAY, weekDay) - .add(HOUR, hour) - .add(MIN, min) - .add(SEC, sec) - .add(MS, ms) - .add(COUNT, count) + .add(TIME, time) .toString(); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java index b7c1233..2beba20 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaRpcClient.java @@ -496,8 +496,8 @@ public int datasource_Size(@NotNull final Size.Args args) { } @Override - public @NotNull T.Result datasource_T(@NotNull final T.Args args) { - return makeRPC(T.class, args, T.Result.class); + public @NotNull DataSourceTime datasource_T(@NotNull final T.Args args) { + return makeRPC(T.class, args, T.Result.class).getTime(); } @Override diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java index 1e52427..f3f4866 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java @@ -6,6 +6,8 @@ import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromDataSourceTime; + enum DsTResultPbDeserializer implements Deserializer, FromPbConverter { INSTANCE; @@ -22,15 +24,7 @@ public T.Result deserialize(@NotNull final byte[] data) { public T.Result convert(@NotNull final qlua.rpc.datasource.T.Result result) { return T.Result.builder() - .year( result.getYear() ) - .month( result.getMonth() ) - .day( result.getDay() ) - .weekDay( result.getWeekDay() ) - .hour( result.getHour() ) - .min( result.getMin() ) - .sec( result.getSec() ) - .ms( result.getMs() ) - .count( result.getCount() ) + .time( convertFromDataSourceTime(result.getTime()) ) .build(); } diff --git a/src/main/proto/qlua/rpc/datasource/T.proto b/src/main/proto/qlua/rpc/datasource/T.proto index df44e86..7f9124e 100644 --- a/src/main/proto/qlua/rpc/datasource/T.proto +++ b/src/main/proto/qlua/rpc/datasource/T.proto @@ -4,6 +4,8 @@ syntax = "proto3"; package qlua.rpc.datasource.T; +import "qlua/rpc/qlua_structures.proto"; + option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; @@ -14,14 +16,5 @@ message Request { } message Result { - - int32 year = 1; - int32 month = 2; - int32 day = 3; - int32 week_day = 4; - int32 hour = 5; - int32 min = 6; - int32 sec = 7; - int32 ms = 8; - int32 count = 9; + qlua.structs.DataSourceTime time = 1; } diff --git a/src/test/java/wip/DatasourceTJsonSerdeTests.java b/src/test/java/wip/DatasourceTJsonSerdeTests.java index f1622e7..e9e3fe2 100644 --- a/src/test/java/wip/DatasourceTJsonSerdeTests.java +++ b/src/test/java/wip/DatasourceTJsonSerdeTests.java @@ -1,6 +1,7 @@ package wip; import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.enfernuz.quik.lua.rpc.api.structures.DataSourceTime; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; @@ -30,7 +31,7 @@ public String getJsonPath() { @Override public T.Result getExpectedObject() { - return T.Result.builder() + final DataSourceTime time = DataSourceTime.builder() .year(1) .month(2) .day(3) @@ -41,6 +42,10 @@ public T.Result getExpectedObject() { .ms(8) .count(9) .build(); + + return T.Result.builder() + .time(time) + .build(); } } } diff --git a/src/test/resources/json/datasource/T/result.json b/src/test/resources/json/datasource/T/result.json index 8b1a0ee..10b332b 100644 --- a/src/test/resources/json/datasource/T/result.json +++ b/src/test/resources/json/datasource/T/result.json @@ -1,11 +1,13 @@ { - "year" : 1, - "month" : 2, - "day" : 3, - "week_day" : 4, - "hour" : 5, - "min" : 6, - "sec" : 7, - "ms" : 8, - "count" : 9 + "time" : { + "year" : 1, + "month" : 2, + "day" : 3, + "week_day" : 4, + "hour" : 5, + "min" : 6, + "sec" : 7, + "ms" : 8, + "count" : 9 + } } \ No newline at end of file From 1d3a59d665b81eb231e748fb03bb473d7763cbda Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:33:08 +0300 Subject: [PATCH 340/549] Added new "OnDataSourceUpdate" custom QLua event. --- .../rpc/api/zmq/ZmqTcpQluaEventProcessor.java | 56 ++++++++++--------- .../rpc/events/api/LoggingEventHandler.java | 51 +++++++++-------- .../quik/lua/rpc/events/api/QluaEvent.java | 12 ++-- .../lua/rpc/events/api/QluaEventHandler.java | 46 ++++++++------- .../serde/json/JsonQluaEventTypeSerde.java | 2 + .../protobuf/ProtobufQluaEventTypeSerde.java | 2 + src/main/proto/qlua/rpc/qlua_events.proto | 1 + 7 files changed, 94 insertions(+), 76 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java index 31606bf..935bd9c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/ZmqTcpQluaEventProcessor.java @@ -47,9 +47,10 @@ public final class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor, Zm * @return новый экземпляр компонента {@link ZmqTcpQluaEventProcessor} * @throws NullPointerException если какой-либо из аргументов является null */ - public static @NotNull ZmqTcpQluaEventProcessor newInstance( - @NotNull @NonNull final ClientConfiguration config, - @NotNull @NonNull final PollingMode pollingMode) { + @NotNull + public static ZmqTcpQluaEventProcessor newInstance( + @NonNull @NotNull final ClientConfiguration config, + @NonNull @NotNull final PollingMode pollingMode) { final SerdeModule serdeModule = SerdeUtils.getSerdeModule( config.getSerdeProtocol() ); final ZmqTcpQluaEventPoller eventPoller; @@ -61,7 +62,7 @@ public final class ZmqTcpQluaEventProcessor implements TcpQluaEventProcessor, Zm eventPoller = new NonBlockingZmqTcpQluaEventPoller(config.getNetworkAddress(), config.getAuthContext(), serdeModule); break; default: - throw new IllegalArgumentException(String.format("Неподдерживаемый режим чтения очереди событий: '%s'.", pollingMode)); + throw new IllegalArgumentException(String.format("Неподдерживаемый режим чтения очереди событий: %s.", pollingMode)); } @@ -92,80 +93,83 @@ public void process() throws QluaEventProcessingException { for (final QluaEventHandler eventHandler : eventHandlers) { switch (event.getType()) { case ON_STOP: - eventHandler.onStop( serdeModule.deserialize(StopEventInfo.class, eventData) ); + eventHandler.onStop( serdeModule.deserialize(StopEventInfo.class, requireNonNull(eventData)) ); break; case ON_CLOSE: eventHandler.onClose(); break; case ON_CONNECTED: - eventHandler.onConnected( serdeModule.deserialize(ConnectedEventInfo.class, eventData) ); + eventHandler.onConnected( serdeModule.deserialize(ConnectedEventInfo.class, requireNonNull(eventData)) ); break; case ON_DISCONNECTED: eventHandler.onDisconnected(); break; case ON_FIRM: - eventHandler.onFirm( serdeModule.deserialize(Firm.class, eventData) ); + eventHandler.onFirm( serdeModule.deserialize(Firm.class, requireNonNull(eventData)) ); break; case ON_ALL_TRADE: - eventHandler.onAllTrade( serdeModule.deserialize(AllTrade.class, eventData) ); + eventHandler.onAllTrade( serdeModule.deserialize(AllTrade.class, requireNonNull(eventData)) ); break; case ON_TRADE: - eventHandler.onTrade( serdeModule.deserialize(Trade.class, eventData) ); + eventHandler.onTrade( serdeModule.deserialize(Trade.class, requireNonNull(eventData)) ); break; case ON_ORDER: - eventHandler.onOrder( serdeModule.deserialize(Order.class, eventData) ); + eventHandler.onOrder( serdeModule.deserialize(Order.class, requireNonNull(eventData)) ); break; case ON_ACCOUNT_BALANCE: - eventHandler.onAccountBalance( serdeModule.deserialize(AccountBalance.class, eventData) ); + eventHandler.onAccountBalance( serdeModule.deserialize(AccountBalance.class, requireNonNull(eventData)) ); break; case ON_FUTURES_LIMIT_CHANGE: - eventHandler.onFuturesLimitChange( serdeModule.deserialize(FuturesLimit.class, eventData) ); + eventHandler.onFuturesLimitChange( serdeModule.deserialize(FuturesLimit.class, requireNonNull(eventData)) ); break; case ON_FUTURES_LIMIT_DELETE: - eventHandler.onFuturesLimitDelete( serdeModule.deserialize(FuturesLimitDelete.class, eventData) ); + eventHandler.onFuturesLimitDelete( serdeModule.deserialize(FuturesLimitDelete.class, requireNonNull(eventData)) ); break; case ON_FUTURES_CLIENT_HOLDING: - eventHandler.onFuturesClientHolding( serdeModule.deserialize(FuturesClientHolding.class, eventData) ); + eventHandler.onFuturesClientHolding( serdeModule.deserialize(FuturesClientHolding.class, requireNonNull(eventData)) ); break; case ON_MONEY_LIMIT: - eventHandler.onMoneyLimit( serdeModule.deserialize(MoneyLimit.class, eventData) ); + eventHandler.onMoneyLimit( serdeModule.deserialize(MoneyLimit.class, requireNonNull(eventData)) ); break; case ON_MONEY_LIMIT_DELETE: - eventHandler.onMoneyLimitDelete( serdeModule.deserialize(MoneyLimitDelete.class, eventData) ); + eventHandler.onMoneyLimitDelete( serdeModule.deserialize(MoneyLimitDelete.class, requireNonNull(eventData)) ); break; case ON_DEPO_LIMIT: - eventHandler.onDepoLimit( serdeModule.deserialize(DepoLimit.class, eventData) ); + eventHandler.onDepoLimit( serdeModule.deserialize(DepoLimit.class, requireNonNull(eventData)) ); break; case ON_DEPO_LIMIT_DELETE: - eventHandler.onDepoLimitDelete( serdeModule.deserialize(DepoLimitDelete.class, eventData) ); + eventHandler.onDepoLimitDelete( serdeModule.deserialize(DepoLimitDelete.class, requireNonNull(eventData)) ); break; case ON_ACCOUNT_POSITION: - eventHandler.onAccountPosition( serdeModule.deserialize(AccountPosition.class, eventData) ); + eventHandler.onAccountPosition( serdeModule.deserialize(AccountPosition.class, requireNonNull(eventData)) ); break; case ON_NEG_DEAL: - eventHandler.onNegDeal( serdeModule.deserialize(NegDeal.class, eventData) ); + eventHandler.onNegDeal( serdeModule.deserialize(NegDeal.class, requireNonNull(eventData)) ); break; case ON_NEG_TRADE: - eventHandler.onNegTrade( serdeModule.deserialize(NegTrade.class, eventData) ); + eventHandler.onNegTrade( serdeModule.deserialize(NegTrade.class, requireNonNull(eventData)) ); break; case ON_STOP_ORDER: - eventHandler.onStopOrder( serdeModule.deserialize(StopOrder.class, eventData) ); + eventHandler.onStopOrder( serdeModule.deserialize(StopOrder.class, requireNonNull(eventData)) ); break; case ON_TRANS_REPLY: - eventHandler.onTransReply( serdeModule.deserialize(TransReply.class, eventData) ); + eventHandler.onTransReply( serdeModule.deserialize(TransReply.class, requireNonNull(eventData)) ); break; case ON_PARAM: - eventHandler.onParam( serdeModule.deserialize(ParamEventInfo.class, eventData) ); + eventHandler.onParam( serdeModule.deserialize(ParamEventInfo.class, requireNonNull(eventData)) ); break; case ON_QUOTE: - eventHandler.onQuote( serdeModule.deserialize(QuoteEventInfo.class, eventData) ); + eventHandler.onQuote( serdeModule.deserialize(QuoteEventInfo.class, requireNonNull(eventData)) ); break; case ON_CLEAN_UP: eventHandler.onCleanUp(); break; + case ON_DATA_SOURCE_UPDATE: + eventHandler.onDataSourceUpdate( serdeModule.deserialize(DataSourceUpdateInfo.class, requireNonNull(eventData)) ); + break; default: throw new QluaEventProcessingException( - String.format("Неподдерживаемый тип QLua-события: \"%s\".", event.getType()) + String.format("Неподдерживаемый тип QLua-события: %s.", event.getType()) ); } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java index b111ca6..c86acfe 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/LoggingEventHandler.java @@ -1,7 +1,9 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.enfernuz.quik.lua.rpc.api.structures.*; -import org.slf4j.*; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Обработчик событий API QLua терминала QUIK, журналирующий (логгирующий) события и их данные. @@ -21,12 +23,12 @@ public void onClose() { } @Override - public void onStop(final StopEventInfo stopEventInfo) { + public void onStop(@NotNull final StopEventInfo stopEventInfo) { LOGGER.info("onStop:\n{}", stopEventInfo); } @Override - public void onConnected(final ConnectedEventInfo connectedEventInfo) { + public void onConnected(@NotNull final ConnectedEventInfo connectedEventInfo) { LOGGER.info("onConnected:\n{}", connectedEventInfo); } @@ -41,97 +43,97 @@ public void onInit() { } @Override - public void onFirm(final Firm firm) { + public void onFirm(@NotNull final Firm firm) { LOGGER.info("onFirm:\n{}", firm); } @Override - public void onAllTrade(final AllTrade allTrade) { + public void onAllTrade(@NotNull final AllTrade allTrade) { LOGGER.info("onAllTrade:\n{}", allTrade); } @Override - public void onTrade(final Trade trade) { + public void onTrade(@NotNull final Trade trade) { LOGGER.info("onTrade:\n{}", trade); } @Override - public void onOrder(final Order order) { + public void onOrder(@NotNull final Order order) { LOGGER.info("onOrder:\n{}", order); } @Override - public void onAccountBalance(final AccountBalance accountBalance) { + public void onAccountBalance(@NotNull final AccountBalance accountBalance) { LOGGER.info("onAccountBalance:\n{}", accountBalance); } @Override - public void onFuturesLimitChange(final FuturesLimit futuresLimit) { + public void onFuturesLimitChange(@NotNull final FuturesLimit futuresLimit) { LOGGER.info("onFuturesLimitChange:\n{}", futuresLimit); } @Override - public void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) { + public void onFuturesLimitDelete(@NotNull final FuturesLimitDelete futuresLimitDelete) { LOGGER.info("onFuturesLimitDelete:\n{}", futuresLimitDelete); } @Override - public void onFuturesClientHolding(final FuturesClientHolding futuresClientHolding) { + public void onFuturesClientHolding(@NotNull final FuturesClientHolding futuresClientHolding) { LOGGER.info("onFuturesClientHolding:\n{}", futuresClientHolding); } @Override - public void onMoneyLimit(final MoneyLimit moneyLimit) { + public void onMoneyLimit(@NotNull final MoneyLimit moneyLimit) { LOGGER.info("onMoneyLimit:\n{}", moneyLimit); } @Override - public void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) { + public void onMoneyLimitDelete(@NotNull final MoneyLimitDelete moneyLimitDelete) { LOGGER.info("onMoneyLimitDelete:\n{}", moneyLimitDelete); } @Override - public void onDepoLimit(final DepoLimit depoLimit) { + public void onDepoLimit(@NotNull final DepoLimit depoLimit) { LOGGER.info("onDepoLimit:\n{}", depoLimit); } @Override - public void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) { + public void onDepoLimitDelete(@NotNull final DepoLimitDelete depoLimitDelete) { LOGGER.info("onDepoLimitDelete:\n{}", depoLimitDelete); } @Override - public void onAccountPosition(final AccountPosition accountPosition) { + public void onAccountPosition(@NotNull final AccountPosition accountPosition) { LOGGER.info("onAccountPosition:\n{}", accountPosition); } @Override - public void onNegDeal(final NegDeal negDeal) { + public void onNegDeal(@NotNull final NegDeal negDeal) { LOGGER.info("onNegDeal:\n{}", negDeal); } @Override - public void onNegTrade(final NegTrade negTrade) { + public void onNegTrade(@NotNull final NegTrade negTrade) { LOGGER.info("onNegTrade:\n{}", negTrade); } @Override - public void onStopOrder(final StopOrder stopOrder) { + public void onStopOrder(@NotNull final StopOrder stopOrder) { LOGGER.info("onStopOrder:\n{}", stopOrder); } @Override - public void onTransReply(final TransReply transReply) { + public void onTransReply(@NotNull final TransReply transReply) { LOGGER.info("onTransReply:\n{}", transReply); } @Override - public void onParam(final ParamEventInfo param) { + public void onParam(@NotNull final ParamEventInfo param) { LOGGER.info("onParam:\n{}", param); } @Override - public void onQuote(final QuoteEventInfo quote) { + public void onQuote(@NotNull final QuoteEventInfo quote) { LOGGER.info("onQuote:\n{}", quote); } @@ -139,4 +141,9 @@ public void onQuote(final QuoteEventInfo quote) { public void onCleanUp() { LOGGER.info("onCleanUp"); } + + @Override + public void onDataSourceUpdate(@NotNull final DataSourceUpdateInfo dataSourceUpdate) { + LOGGER.info("onDataSourceUpdate:\n{}", dataSourceUpdate); + } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java index 12a0ecd..fcbcb8a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEvent.java @@ -1,12 +1,11 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.google.common.base.MoreObjects; +import lombok.NonNull; import java.util.Arrays; import java.util.Objects; -import static java.util.Objects.requireNonNull; - public final class QluaEvent { private final EventType type; @@ -20,9 +19,7 @@ public final class QluaEvent { * @return экземпляр события API QLua терминала QUIK с заданным типом и данными * @throws NullPointerException если заданный тип события является null */ - public static QluaEvent create(final EventType type, final byte[] data) { - - requireNonNull(type, "The argument 'type' must not be null."); + public static QluaEvent create(@NonNull final EventType type, final byte[] data) { return new QluaEvent(type, data == null ? null : data.clone()); } @@ -86,7 +83,7 @@ public String toString() { .toString(); } - public static enum EventType { + public enum EventType { ON_CLOSE, ON_STOP, @@ -111,6 +108,7 @@ public static enum EventType { ON_QUOTE, ON_DISCONNECTED, ON_CONNECTED, - ON_CLEAN_UP; + ON_CLEAN_UP, + ON_DATA_SOURCE_UPDATE; } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java index f418c7f..7af1c0d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/events/api/QluaEventHandler.java @@ -1,6 +1,7 @@ package com.enfernuz.quik.lua.rpc.events.api; import com.enfernuz.quik.lua.rpc.api.structures.*; +import org.jetbrains.annotations.NotNull; /** * Обработчик событий API QLua терминала QUIK. @@ -21,7 +22,7 @@ default void onClose() {} * * @param stopEventInfo аргументы функции обратного вызова OnStop */ - default void onStop(StopEventInfo stopEventInfo) {} + default void onStop(@NotNull final StopEventInfo stopEventInfo) {} /** * Функция обратного вызова для события терминала OnConnected. @@ -31,7 +32,7 @@ default void onStop(StopEventInfo stopEventInfo) {} * Если в течение торгового дня терминал получает новый класс, то функция вызывается еще раз, при этом параметр * вызова flag принимает значение «false». */ - default void onConnected(ConnectedEventInfo connectedEventInfo) {} + default void onConnected(@NotNull final ConnectedEventInfo connectedEventInfo) {} /** * Функция обратного вызова для события терминала OnDisconnected. @@ -54,7 +55,7 @@ default void onInit() {} * * @param firm новая фирма */ - default void onFirm(final Firm firm) {} + default void onFirm(@NotNull final Firm firm) {} /** * Функция обратного вызова для события терминала OnAllTrade. @@ -63,7 +64,7 @@ default void onFirm(final Firm firm) {} * * @param allTrade обезличенная сделка */ - default void onAllTrade(final AllTrade allTrade) {} + default void onAllTrade(@NotNull final AllTrade allTrade) {} /** * Функция обратного вызова для события терминала OnTrade. @@ -72,7 +73,7 @@ default void onAllTrade(final AllTrade allTrade) {} * * @param trade сделка */ - default void onTrade(final Trade trade) {} + default void onTrade(@NotNull final Trade trade) {} /** * Функция обратного вызова для события терминала OnOrder. @@ -81,7 +82,7 @@ default void onTrade(final Trade trade) {} * * @param order заявка */ - default void onOrder(final Order order) {} + default void onOrder(@NotNull final Order order) {} /** * Функция обратного вызова для события терминала OnAccountBalance. @@ -90,7 +91,7 @@ default void onOrder(final Order order) {} * * @param accountBalance текущие позиции по счетам */ - default void onAccountBalance(final AccountBalance accountBalance) {} + default void onAccountBalance(@NotNull final AccountBalance accountBalance) {} /** * Функция обратного вызова для события терминала OnFuturesLimitChange. @@ -99,7 +100,7 @@ default void onAccountBalance(final AccountBalance accountBalance) {} * * @param futuresLimit текущие значения лимита по срочному рынку */ - default void onFuturesLimitChange(final FuturesLimit futuresLimit) {} + default void onFuturesLimitChange(@NotNull final FuturesLimit futuresLimit) {} /** * Функция обратного вызова для события терминала OnFuturesLimitDelete. @@ -108,7 +109,7 @@ default void onFuturesLimitChange(final FuturesLimit futuresLimit) {} * * @param futuresLimitDelete удаляемый лимит по срочному рынку */ - default void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) {} + default void onFuturesLimitDelete(@NotNull final FuturesLimitDelete futuresLimitDelete) {} /** * Функция обратного вызова для события терминала OnFuturesClientHolding. @@ -117,7 +118,7 @@ default void onFuturesLimitDelete(final FuturesLimitDelete futuresLimitDelete) { * * @param futuresClientHolding описание позиции по срочному рынку */ - default void onFuturesClientHolding(final FuturesClientHolding futuresClientHolding) {} + default void onFuturesClientHolding(@NotNull final FuturesClientHolding futuresClientHolding) {} /** * Функция обратного вызова для события терминала OnMoneyLimit. @@ -126,7 +127,7 @@ default void onFuturesClientHolding(final FuturesClientHolding futuresClientHold * * @param moneyLimit текущие значения денежного лимита */ - default void onMoneyLimit(final MoneyLimit moneyLimit) {} + default void onMoneyLimit(@NotNull final MoneyLimit moneyLimit) {} /** * Функция обратного вызова для события терминала OnMoneyLimitDelete. @@ -135,7 +136,7 @@ default void onMoneyLimit(final MoneyLimit moneyLimit) {} * * @param moneyLimitDelete удаляемый денежный лимит */ - default void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) {} + default void onMoneyLimitDelete(@NotNull final MoneyLimitDelete moneyLimitDelete) {} /** * Функция обратного вызова для события терминала OnDepoLimit. @@ -144,7 +145,7 @@ default void onMoneyLimitDelete(final MoneyLimitDelete moneyLimitDelete) {} * * @param depoLimit текущие значения лимитов по бумагам */ - default void onDepoLimit(final DepoLimit depoLimit) {} + default void onDepoLimit(@NotNull final DepoLimit depoLimit) {} /** * Функция обратного вызова для события терминала OnDepoLimitDelete. @@ -153,7 +154,7 @@ default void onDepoLimit(final DepoLimit depoLimit) {} * * @param depoLimitDelete удаляемый лимит по бумагам */ - default void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) {} + default void onDepoLimitDelete(@NotNull final DepoLimitDelete depoLimitDelete) {} /** * Функция обратного вызова для события терминала OnAccountPosition. @@ -162,7 +163,7 @@ default void onDepoLimitDelete(final DepoLimitDelete depoLimitDelete) {} * * @param accountPosition текущие значения денежной позиции по счету */ - default void onAccountPosition(final AccountPosition accountPosition) {} + default void onAccountPosition(@NotNull final AccountPosition accountPosition) {} /** * Функция обратного вызова для события терминала OnNegDeal. @@ -171,7 +172,7 @@ default void onAccountPosition(final AccountPosition accountPosition) {} * * @param negDeal заявка на внебиржевые сделки */ - default void onNegDeal(final NegDeal negDeal) {} + default void onNegDeal(@NotNull final NegDeal negDeal) {} /** * Функция обратного вызова для события терминала OnNegTrade. @@ -181,7 +182,7 @@ default void onNegDeal(final NegDeal negDeal) {} * * @param negTrade сделка для исполнения */ - default void onNegTrade(final NegTrade negTrade) {} + default void onNegTrade(@NotNull final NegTrade negTrade) {} /** * Функция обратного вызова для события терминала OnStopOrder. @@ -190,7 +191,7 @@ default void onNegTrade(final NegTrade negTrade) {} * * @param stopOrder стоп-заявка */ - default void onStopOrder(final StopOrder stopOrder) {} + default void onStopOrder(@NotNull final StopOrder stopOrder) {} /** * Функция обратного вызова для события терминала OnTransReply. @@ -202,7 +203,7 @@ default void onStopOrder(final StopOrder stopOrder) {} * * @param transReply описание транзакции */ - default void onTransReply(final TransReply transReply) {} + default void onTransReply(@NotNull final TransReply transReply) {} /** * Функция обратного вызова для события терминала OnParam. @@ -211,7 +212,7 @@ default void onTransReply(final TransReply transReply) {} * * @param param объект, содержащий код бумаги и код класса инструмента, по которому изменились текущие параметры */ - default void onParam(final ParamEventInfo param) {} + default void onParam(@NotNull final ParamEventInfo param) {} /** * Функция обратного вызова для события терминала OnQuote. @@ -220,7 +221,7 @@ default void onParam(final ParamEventInfo param) {} * * @param quote объект, содержащий код бумаги и код класса инструмента, по которому изменился стакан котировок */ - default void onQuote(final QuoteEventInfo quote) {} + default void onQuote(@NotNull final QuoteEventInfo quote) {} /** * Функция обратного вызова для события терминала OnCleanUp. @@ -233,4 +234,7 @@ default void onQuote(final QuoteEventInfo quote) {} * */ default void onCleanUp() {} + + //FIXME: javadoc + default void onDataSourceUpdate(@NotNull final DataSourceUpdateInfo dataSourceUpdate) {}; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java index 9e532d3..5d56fa7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/json/JsonQluaEventTypeSerde.java @@ -85,6 +85,7 @@ private static Map createPbEventTypeNameHashToEven result.put(hash("OnDisconnected"), QluaEvent.EventType.ON_DISCONNECTED); result.put(hash("OnConnected"), QluaEvent.EventType.ON_CONNECTED); result.put(hash("OnCleanUp"), QluaEvent.EventType.ON_CLEAN_UP); + result.put(hash("OnDataSourceUpdate"), QluaEvent.EventType.ON_DATA_SOURCE_UPDATE); assert QluaEvent.EventType.values().length == result.size(); @@ -119,6 +120,7 @@ private static EnumMap createEventTypeToEventTypeBy result.put(QluaEvent.EventType.ON_DISCONNECTED, asBytes("OnDisconnected")); result.put(QluaEvent.EventType.ON_CONNECTED, asBytes("OnConnected")); result.put(QluaEvent.EventType.ON_CLEAN_UP, asBytes("OnCleanUp")); + result.put(QluaEvent.EventType.ON_DATA_SOURCE_UPDATE, asBytes("OnDataSourceUpdate")); assert QluaEvent.EventType.values().length == result.size(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java index 38d1447..ed18739 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufQluaEventTypeSerde.java @@ -85,6 +85,7 @@ private static Map createPbEventTypeHashToEventTyp result.put(hash(QluaEvents.EventType.ON_DISCONNECTED.getNumber()), QluaEvent.EventType.ON_DISCONNECTED); result.put(hash(QluaEvents.EventType.ON_CONNECTED.getNumber()), QluaEvent.EventType.ON_CONNECTED); result.put(hash(QluaEvents.EventType.ON_CLEAN_UP.getNumber()), QluaEvent.EventType.ON_CLEAN_UP); + result.put(hash(QluaEvents.EventType.ON_DATA_SOURCE_UPDATE.getNumber()), QluaEvent.EventType.ON_DATA_SOURCE_UPDATE); assert (result.size() == QluaEvent.EventType.values().length); @@ -119,6 +120,7 @@ private static EnumMap createEventTypeToPbEventType result.put(QluaEvent.EventType.ON_DISCONNECTED, asStringBytes(QluaEvents.EventType.ON_DISCONNECTED.getNumber())); result.put(QluaEvent.EventType.ON_CONNECTED, asStringBytes(QluaEvents.EventType.ON_CONNECTED.getNumber())); result.put(QluaEvent.EventType.ON_CLEAN_UP, asStringBytes(QluaEvents.EventType.ON_CLEAN_UP.getNumber())); + result.put(QluaEvent.EventType.ON_DATA_SOURCE_UPDATE, asStringBytes(QluaEvents.EventType.ON_DATA_SOURCE_UPDATE.getNumber())); assert (result.size() == QluaEvent.EventType.values().length); diff --git a/src/main/proto/qlua/rpc/qlua_events.proto b/src/main/proto/qlua/rpc/qlua_events.proto index 7affc8a..8e94e80 100644 --- a/src/main/proto/qlua/rpc/qlua_events.proto +++ b/src/main/proto/qlua/rpc/qlua_events.proto @@ -32,4 +32,5 @@ enum EventType { ON_PARAM = 23; ON_QUOTE = 24; ON_CLEAN_UP = 25; // no data attached + ON_DATA_SOURCE_UPDATE = 26; } From 30c124d9663884397f6615a1cf9402b0c66d6eee Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:33:52 +0300 Subject: [PATCH 341/549] Refactoring, inner exception handling. --- .../lua/rpc/api/zmq/AbstractTcpZmqClient.java | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java index 077082a..9ddaf15 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/zmq/AbstractTcpZmqClient.java @@ -2,22 +2,20 @@ import com.enfernuz.quik.lua.rpc.io.transport.NetworkAddress; import com.enfernuz.quik.lua.rpc.io.transport.TcpGateway; -import org.jetbrains.annotations.Contract; +import lombok.NonNull; import org.jetbrains.annotations.NotNull; import org.zeromq.ZMQ; import java.io.IOException; -import static java.util.Objects.requireNonNull; - abstract class AbstractTcpZmqClient implements TcpGateway { private final NetworkAddress networkAddress; private final String uri; - private boolean isOpened; + private boolean opened; - AbstractTcpZmqClient(final @NotNull NetworkAddress networkAddress) { - this.networkAddress = requireNonNull(networkAddress, "Аргумент 'networkAddress' не должен быть null."); + AbstractTcpZmqClient(@NonNull @NotNull final NetworkAddress networkAddress) { + this.networkAddress = networkAddress; this.uri = String.format("tcp://%s:%d", networkAddress.getHost(), networkAddress.getPort()); } @@ -27,7 +25,6 @@ abstract class AbstractTcpZmqClient implements TcpGateway { abstract void deinitializeIO(); - @Contract(pure = true) @Override public final NetworkAddress getNetworkAddress() { return networkAddress; @@ -36,13 +33,13 @@ public final NetworkAddress getNetworkAddress() { @Override public final void open() throws IOException { - if (!isOpened) { + if (!opened) { initializeIO(); final ZMQ.Socket socket = getSocket(); if ( socket.connect(uri) ) { - isOpened = true; + opened = true; } else { final String errorMessage = String.format( @@ -51,27 +48,35 @@ public final void open() throws IOException { socket.errno() ); - deinitializeIO(); - - throw new IOException(errorMessage); + Throwable suppressed = null; + try { + deinitializeIO(); + } catch (final Throwable t) { + suppressed = t; + } finally { + final IOException ex = new IOException(errorMessage); + if (suppressed != null) { + ex.addSuppressed(suppressed); + } + throw ex; + } } } } - @Contract(pure = true) @Override public final boolean isOpened() { - return isOpened; + return opened; } @Override public final void close() throws IOException { - if (isOpened) { + if (opened) { final ZMQ.Socket socket = getSocket(); if ( socket.disconnect(uri) ) { - isOpened = false; + opened = false; deinitializeIO(); } else { throw new IOException( From 54b806cd8b75b2446e86daa0b6c2e5527b68edd2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:34:24 +0300 Subject: [PATCH 342/549] DataSource:Close protobuf handling. --- .../protobuf/DsClosePbArgsSerializer.java | 25 +++++++++++++++++++ .../protobuf/DsClosePbResultDeserializer.java | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbResultDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java new file mode 100644 index 0000000..3ef2b6e --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsClosePbArgsSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final Close.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.Close.Request convert(@NotNull final Close.Args args) { + + return qlua.rpc.datasource.Close.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbResultDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbResultDeserializer.java new file mode 100644 index 0000000..ff1484f --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbResultDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsClosePbResultDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public Close.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.Close.Result.parseFrom(data) ); + } + + @NotNull + @Override + public Close.Result convert(@NotNull final qlua.rpc.datasource.Close.Result result) { + return Close.Result.getInstance( result.getResult() ); + } +} From 6e6f76110e9e537d65b06dbe95ae4fa68272e1f1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:34:51 +0300 Subject: [PATCH 343/549] DataSource:CreateDataSource protobuf handling. --- .../DsCreateDataSourcePbArgsSerializer.java | 92 +++++++++++++++++++ ...sCreateDataSourcePbResultDeserializer.java | 36 ++++++++ 2 files changed, 128 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbResultDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java new file mode 100644 index 0000000..a0e8d8c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java @@ -0,0 +1,92 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsCreateDataSourcePbArgsSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final CreateDataSource.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.CreateDataSource.Request convert(@NotNull final CreateDataSource.Args args) { + + final CreateDataSource.Interval interval = args.getInterval(); + final qlua.rpc.datasource.CreateDataSource.Interval pbInterval; + switch (interval) { + case INTERVAL_TICK: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_TICK; + break; + case INTERVAL_M1: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M1; + break; + case INTERVAL_M2: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M2; + break; + case INTERVAL_M3: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M3; + break; + case INTERVAL_M4: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M4; + break; + case INTERVAL_M5: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M5; + break; + case INTERVAL_M6: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M6; + break; + case INTERVAL_M10: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M10; + break; + case INTERVAL_M15: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M15; + break; + case INTERVAL_M20: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M20; + break; + case INTERVAL_M30: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_M30; + break; + case INTERVAL_H1: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H1; + break; + case INTERVAL_H2: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H2; + break; + case INTERVAL_H4: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H4; + break; + case INTERVAL_D1: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_D1; + break; + case INTERVAL_W1: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_W1; + break; + case INTERVAL_MN1: + pbInterval = qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_MN1; + break; + default: + throw new IllegalArgumentException( String.format("Неизвестный тип интервала: %s.", interval) ); + } + + final qlua.rpc.datasource.CreateDataSource.Request.Builder result = + qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + .setClassCode( args.getClassCode() ) + .setSecCode( args.getSecCode() ) + .setInterval(pbInterval); + + final String param = args.getParam(); + if (param != null) { + result.setParam(param); + } + + return result.build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbResultDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbResultDeserializer.java new file mode 100644 index 0000000..72e6127 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbResultDeserializer.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsCreateDataSourcePbResultDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public CreateDataSource.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.CreateDataSource.Result.parseFrom(data) ); + } + + @NotNull + @Override + public CreateDataSource.Result convert(@NotNull final qlua.rpc.datasource.CreateDataSource.Result result) { + + final CreateDataSource.Result.ResultBuilder resultBuilder = CreateDataSource.Result.builder(); + + final boolean error = result.getIsError(); + resultBuilder.error(error); + if (error) { + resultBuilder.errorDesc( result.getErrorDesc() ); + } else { + resultBuilder.datasourceUUID( result.getDatasourceUuid() ); + } + + return resultBuilder.build(); + } +} From 993bab6b1496766ec532674009bf1974b20e0d28 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:35:13 +0300 Subject: [PATCH 344/549] DataSource:SetEmptyCallback protobuf handling. --- .../DsSetEmptyCallbackPbArgsSerializer.java | 25 +++++++++++++++++++ ...sSetEmptyCallbackPbResultDeserializer.java | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbResultDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java new file mode 100644 index 0000000..7440d71 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +enum DsSetEmptyCallbackPbArgsSerializer implements Serializer, ToPbConverter { + + INSTANCE; + + @NotNull + @Override + public byte[] serialize(@NotNull final SetEmptyCallback.Args args) { + return convert(args).toByteArray(); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetEmptyCallback.Request convert(@NotNull final SetEmptyCallback.Args args) { + + return qlua.rpc.datasource.SetEmptyCallback.Request.newBuilder() + .setDatasourceUuid( args.getDatasourceUUID() ) + .build(); + } +} diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbResultDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbResultDeserializer.java new file mode 100644 index 0000000..024a9a3 --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbResultDeserializer.java @@ -0,0 +1,25 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +enum DsSetEmptyCallbackPbResultDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SetEmptyCallback.Result deserialize(@NotNull final byte[] data) { + return convert( qlua.rpc.datasource.SetEmptyCallback.Result.parseFrom(data) ); + } + + @NotNull + @Override + public SetEmptyCallback.Result convert(@NotNull final qlua.rpc.datasource.SetEmptyCallback.Result result) { + return SetEmptyCallback.Result.getInstance( result.getResult() ); + } +} From 615fd9a4c515e3bed2cc1a28d39af9ef01b123b4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:35:33 +0300 Subject: [PATCH 345/549] os.sysdate protobuf handling. --- .../protobuf/SysDateResultPbDeserializer.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysDateResultPbDeserializer.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysDateResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysDateResultPbDeserializer.java new file mode 100644 index 0000000..9a4bf8c --- /dev/null +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysDateResultPbDeserializer.java @@ -0,0 +1,26 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.protobuf.InvalidProtocolBufferException; +import lombok.SneakyThrows; +import org.jetbrains.annotations.NotNull; + +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbDateTimeEntry; + +enum SysDateResultPbDeserializer implements Deserializer, FromPbConverter { + + INSTANCE; + + @NotNull + @SneakyThrows(InvalidProtocolBufferException.class) + @Override + public SysDate.Result deserialize(final byte[] data) { + return convert( qlua.rpc.os.Sysdate.Result.parseFrom(data) ); + } + + @Override + public SysDate.Result convert(@NotNull final qlua.rpc.os.Sysdate.Result result) { + return new SysDate.Result( convertFromPbDateTimeEntry(result.getResult()) ); + } +} From 5a5e246e11eadf33f063309e0f387d1a86b13e4e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:35:59 +0300 Subject: [PATCH 346/549] RequestEnvelope protobuf handling. --- .../lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java index d395286..eb9f084 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RequestEnvelopePbSerializer.java @@ -24,7 +24,8 @@ public class RequestEnvelopePbSerializer implements Serializer Date: Mon, 5 Nov 2018 22:36:20 +0300 Subject: [PATCH 347/549] Registered new protobuf handlers. --- .../serde/protobuf/ProtobufSerdeModule.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java index 122d882..ee38e07 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ProtobufSerdeModule.java @@ -5,6 +5,7 @@ import com.enfernuz.quik.lua.rpc.api.messages.*; import com.enfernuz.quik.lua.rpc.api.messages.bit.*; import com.enfernuz.quik.lua.rpc.api.messages.datasource.*; +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.enfernuz.quik.lua.rpc.api.structures.*; import com.enfernuz.quik.lua.rpc.events.api.QluaEvent; import com.enfernuz.quik.lua.rpc.serde.Deserializer; @@ -97,6 +98,8 @@ private static Map, Serializer> createClassToSerializerMap() { final ImmutableMap.Builder, Serializer> result = ImmutableMap.builder(); + result.put(RequestEnvelope.class, new RequestEnvelopePbSerializer(ProtobufSerdeModule.INSTANCE)); + registerSerializer(result, AddColumn.Args.class, AddColumnArgsPbSerializer.INSTANCE); registerSerializer(result, AddLabel.Args.class, AddLabelArgsPbSerializer.INSTANCE); registerSerializer(result, CalcBuySell.Args.class, CalcBuySellArgsPbSerializer.INSTANCE); @@ -141,7 +144,6 @@ private static Map, Serializer> createClassToSerializerMap() { registerSerializer(result, IsWindowClosed.Args.class, IsWindowClosedArgsPbSerializer.INSTANCE); registerSerializer(result, ParamRequest.Args.class, ParamRequestArgsPbSerializer.INSTANCE); registerSerializer(result, Message.Args.class, MessageArgsPbSerializer.INSTANCE); - registerSerializer(result, ParamRequest.Args.class, ParamRequestArgsPbSerializer.INSTANCE); registerSerializer(result, PrintDbgStr.Args.class, PrintDbgStrArgsPbSerializer.INSTANCE); registerSerializer(result, RGB.Args.class, RGBArgsPbSerializer.INSTANCE); registerSerializer(result, SearchItems.Args.class, SearchItemsArgsPbSerializer.INSTANCE); @@ -171,8 +173,10 @@ private static Map, Serializer> createClassToSerializerMap() { registerSerializer(result, V.Args.class, DsVArgsPbSerializer.INSTANCE); registerSerializer(result, T.Args.class, DsTArgsPbSerializer.INSTANCE); registerSerializer(result, Size.Args.class, DsSizePbArgsSerializer.INSTANCE); - - // FIXME: add the rest of the serializers + registerSerializer(result, Close.Args.class, DsClosePbArgsSerializer.INSTANCE); + registerSerializer(result, SetEmptyCallback.Args.class, DsSetEmptyCallbackPbArgsSerializer.INSTANCE); + registerSerializer(result, SetUpdateCallback.Args.class, DsSetUpdateCallbackPbArgsSerializer.INSTANCE); + registerSerializer(result, CreateDataSource.Args.class, DsCreateDataSourcePbArgsSerializer.INSTANCE); return result.build(); } @@ -181,6 +185,8 @@ private static Map, Deserializer> createClassToDeserializerMap() { final ImmutableMap.Builder, Deserializer> result = ImmutableMap.builder(); + registerDeserializer(result, ResponseEnvelope.class, ResponseEnvelopePbDeserializer.INSTANCE); + registerDeserializer(result, QluaEvent.EventType.class, ProtobufQluaEventTypeSerde.INSTANCE); registerDeserializer(result, StopEventInfo.class, StopEventInfoPbDeserializer.INSTANCE); registerDeserializer(result, ConnectedEventInfo.class, ConnectedEventInfoPbDeserializer.INSTANCE); @@ -210,6 +216,8 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, Money.class, MoneyPbDeserializer.INSTANCE); registerDeserializer(result, PortfolioInfo.class, PortfolioInfoPbDeserializer.INSTANCE); registerDeserializer(result, Security.class, SecurityPbDeserializer.INSTANCE); + registerDeserializer(result, DataSourceTime.class, DataSourceTimePbDeserializer.INSTANCE); + registerDeserializer(result, DataSourceUpdateInfo.class, DataSourceUpdateInfoPbDeserializer.INSTANCE); registerDeserializer(result, AddColumn.Result.class, AddColumnResultPbDeserializer.INSTANCE); registerDeserializer(result, AddLabel.Result.class, AddLabelResultPbDeserializer.INSTANCE); @@ -289,8 +297,12 @@ private static Map, Deserializer> createClassToDeserializerMap() { registerDeserializer(result, V.Result.class, DsVResultPbDeserializer.INSTANCE); registerDeserializer(result, T.Result.class, DsTResultPbDeserializer.INSTANCE); registerDeserializer(result, Size.Result.class, DsSizeResultPbDeserializer.INSTANCE); + registerDeserializer(result, Close.Result.class, DsClosePbResultDeserializer.INSTANCE); + registerDeserializer(result, SetEmptyCallback.Result.class, DsSetEmptyCallbackPbResultDeserializer.INSTANCE); + registerDeserializer(result, SetUpdateCallback.Result.class, DsSetUpdateCallbackPbResultDeserializer.INSTANCE); + registerDeserializer(result, CreateDataSource.Result.class, DsCreateDataSourcePbResultDeserializer.INSTANCE); - // FIXME: add the rest of the deserializers + registerDeserializer(result, SysDate.Result.class, SysDateResultPbDeserializer.INSTANCE); return result.build(); } From 996cdcd1824bdcb2c726f2f5dd3b430e5e0955bd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:58:20 +0300 Subject: [PATCH 348/549] Updated gitignore. --- .gitignore | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7d5aa69..47a3fe7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,27 @@ +.idea/ +target/ *.iml -/.idea/ + +# Compiled class file *.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* From ca332afd561ae8fe684305ad928e2389eefb458e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 22:59:59 +0300 Subject: [PATCH 349/549] Moved JSON serde test to appropriate package. --- .../api/messages/AddLabelJsonSerdeTest.java | 62 -------- .../api/messages/AllocTableJsonSerdeTest.java | 48 ------- .../messages/GetClassInfoJsonSerdeTest.java | 78 ---------- .../api/messages/GetDepoExJsonSerdeTest.java | 93 ------------ .../GetFuturesHoldingJsonSerdeTest.java | 96 ------------- .../GetFuturesLimitJsonSerdeTest.java | 95 ------------- .../messages/GetInfoParamJsonSerdeTest.java | 55 ------- .../api/messages/GetItemJsonSerdeTest.java | 70 --------- .../messages/GetLabelParamsJsonSerdeTest.java | 70 --------- .../messages/GetLinesCountJsonSerdeTest.java | 54 ------- .../api/messages/GetMoneyExJsonSerdeTest.java | 90 ------------ .../api/messages/GetMoneyJsonSerdeTest.java | 70 --------- .../messages/GetNumCandlesJsonSerdeTest.java | 54 ------- .../messages/GetNumberOfJsonSerdeTest.java | 54 ------- .../GetOrderByNumberJsonSerdeTest.java | 134 ------------------ .../messages/GetParamEx2JsonSerdeTest.java | 65 --------- .../api/messages/GetParamExJsonSerdeTest.java | 65 --------- .../GetPortfolioInfoExJsonSerdeTest.java | 126 ---------------- .../GetPortfolioInfoJsonSerdeTest.java | 101 ------------- .../messages/GetQuoteLevel2JsonSerdeTest.java | 78 ---------- .../messages/GetScriptPathJsonSerdeTest.java | 54 ------- .../GetSecurityInfoJsonSerdeTest.java | 77 ---------- .../messages/GetTableSizeJsonSerdeTest.java | 62 -------- .../messages/GetTradeDateJsonSerdeTest.java | 61 -------- .../GetWindowCaptionJsonSerdeTest.java | 58 -------- .../messages/GetWindowRectJsonSerdeTest.java | 64 --------- .../GetWorkingFolderJsonSerdeTest.java | 54 ------- .../api/messages/HighlightJsonSerdeTest.java | 64 --------- .../api/messages/InsertRowJsonSerdeTest.java | 57 -------- .../messages/IsConnectedJsonSerdeTest.java | 92 ------------ ...IsSubscribedLevel2QuotesJsonSerdeTest.java | 60 -------- .../messages/IsWindowClosedJsonSerdeTest.java | 68 --------- .../api/messages/MessageJsonSerdeTest.java | 80 ----------- .../messages/ParamRequestJsonSerdeTest.java | 91 ------------ .../messages/PrintDbgStrJsonSerdeTest.java | 54 ------- .../rpc/api/messages/RGBJsonSerdeTest.java | 58 -------- .../messages/SearchItemsJsonSerdeTest.java | 79 ----------- .../SendTransactionJsonSerdeTest.java | 62 -------- .../api/messages/SetCellJsonSerdeTest.java | 60 -------- .../api/messages/SetColorJsonSerdeTest.java | 62 -------- .../messages/SetLabelParamsJsonSerdeTest.java | 65 --------- .../messages/SetSelectedRowJsonSerdeTest.java | 57 -------- ...ableNotificationCallbackJsonSerdeTest.java | 54 ------- .../SetWindowCaptionJsonSerdeTest.java | 54 ------- .../messages/SetWindowPosJsonSerdeTest.java | 60 -------- .../rpc/api/messages/SleepJsonSerdeTest.java | 54 ------- .../SubscribeLevel2QuotesJsonSerdeTest.java | 57 -------- .../UnsubscribeLevel2QuotesJsonSerdeTest.java | 57 -------- .../api/messages/bit/BAndJsonSerdeTest.java | 75 ---------- .../api/messages/bit/BNotJsonSerdeTest.java | 54 ------- .../api/messages/bit/BOrJsonSerdeTest.java | 75 ---------- .../api/messages/bit/BXorJsonSerdeTest.java | 75 ---------- .../api/messages/bit/TestJsonSerdeTest.java | 58 -------- .../api/messages/bit/ToHexJsonSerdeTest.java | 58 -------- .../messages/datasource/CJsonSerdeTest.java | 54 ------- .../datasource/CloseJsonSerdeTest.java | 54 ------- .../CreateDataSourceJsonSerdeTest.java | 97 ------------- .../messages/datasource/HJsonSerdeTest.java | 54 ------- .../messages/datasource/LJsonSerdeTest.java | 54 ------- .../messages/datasource/OJsonSerdeTest.java | 54 ------- .../SetEmptyCallbackJsonSerdeTest.java | 54 ------- .../SetUpdateCallbackJsonSerdeTest.java | 57 -------- .../datasource/SizeJsonSerdeTest.java | 54 ------- .../messages/datasource/TJsonSerdeTest.java | 64 --------- .../messages/datasource/VJsonSerdeTest.java | 54 ------- .../api/messages/os/SysDateJsonSerdeTest.java | 68 --------- .../AccountBalanceJsonSerdeTest.java | 67 --------- .../AccountPositionJsonSerdeTest.java | 70 --------- .../api/structures/AllTradeJsonSerdeTest.java | 82 ----------- .../ConnectedEventInfoJsonSerdeTest.java | 51 ------- .../DateTimeEntryJsonSerdeTest.java | 61 -------- .../rpc/api/structures/FirmJsonSerdeTest.java | 56 -------- .../FuturesClientHoldingJsonSerdeTest.java | 72 ---------- .../structures/FuturesLimitJsonSerdeTest.java | 69 --------- .../api/structures/MoneyJsonSerdeTest.java | 59 -------- .../PortfolioInfoJsonSerdeTest.java | 92 ------------ .../AbstractJsonDeserializationTest.java | 2 +- .../AbstractJsonRpcArgsSerializationTest.java | 2 +- .../json}/AbstractJsonSerdeModuleTest.java | 2 +- ...tractRpcResultJsonDeserializationTest.java | 2 +- .../serde/json}/AddColumnJsonSerdeTests.java | 2 +- .../serde/json}/AddLabelJsonSerdeTests.java | 2 +- .../serde/json}/AllocTableJsonSerdeTests.java | 2 +- .../serde/json}/BitBAndJsonSerdeTests.java | 2 +- .../serde/json}/BitBNotJsonSerdeTests.java | 2 +- .../rpc/serde/json}/BitBOrJsonSerdeTests.java | 2 +- .../serde/json}/BitBXorJsonSerdeTests.java | 2 +- .../serde/json}/BitTestJsonSerdeTests.java | 2 +- .../serde/json}/BitToHexJsonSerdeTests.java | 2 +- .../json}/CalcBuySellJsonSerdeTests.java | 2 +- .../CancelParamRequestJsonSerdeTests.java | 2 +- .../rpc/serde/json}/ClearJsonSerdeTests.java | 2 +- .../json}/CreateWindowJsonSerdeTests.java | 2 +- .../json}/DatasourceCJsonSerdeTests.java | 2 +- .../json}/DatasourceCloseJsonSerdeTests.java | 2 +- ...asourceCreateDataSourceJsonSerdeTests.java | 2 +- .../json}/DatasourceHJsonSerdeTests.java | 2 +- .../json}/DatasourceLJsonSerdeTests.java | 2 +- .../json}/DatasourceOJsonSerdeTests.java | 2 +- ...asourceSetEmptyCallbackJsonSerdeTests.java | 2 +- ...sourceSetUpdateCallbackJsonSerdeTests.java | 2 +- .../json}/DatasourceSizeJsonSerdeTests.java | 2 +- .../json}/DatasourceTJsonSerdeTests.java | 2 +- .../json}/DatasourceVJsonSerdeTests.java | 2 +- .../json}/DelAllLabelsJsonSerdeTests.java | 2 +- .../serde/json}/DelLabelJsonSerdeTests.java | 2 +- .../serde/json}/DeleteRowJsonSerdeTests.java | 2 +- .../json}/DestroyTableJsonSerdeTests.java | 2 +- .../json}/GetBuySellInfoExJsonSerdeTests.java | 2 +- .../json}/GetBuySellInfoJsonSerdeTests.java | 2 +- .../GetCandlesByIndexJsonSerdeTests.java | 2 +- .../serde/json}/GetCellJsonSerdeTests.java | 2 +- .../json}/GetClassInfoJsonSerdeTests.java | 2 +- .../GetClassSecuritiesJsonSerdeTests.java | 2 +- .../json}/GetClassesListJsonSerdeTests.java | 2 +- .../serde/json}/GetDepoExJsonSerdeTests.java | 2 +- .../serde/json}/GetDepoJsonSerdeTests.java | 2 +- .../GetFuturesHoldingJsonSerdeTests.java | 2 +- .../json}/GetFuturesLimitJsonSerdeTests.java | 2 +- .../json}/GetInfoParamJsonSerdeTests.java | 2 +- .../serde/json}/GetItemJsonSerdeTests.java | 2 +- .../json}/GetLabelParamsJsonSerdeTests.java | 2 +- .../json}/GetLinesCountJsonSerdeTests.java | 2 +- .../serde/json}/GetMoneyExJsonSerdeTests.java | 2 +- .../serde/json}/GetMoneyJsonSerdeTests.java | 2 +- .../json}/GetNumCandlesJsonSerdeTests.java | 2 +- .../json}/GetNumberOfJsonSerdeTests.java | 2 +- .../json}/GetOrderByNumberJsonSerdeTests.java | 2 +- .../json}/GetParamEx2JsonSerdeTests.java | 2 +- .../serde/json}/GetParamExJsonSerdeTests.java | 2 +- .../GetPortfolioInfoExJsonSerdeTests.java | 2 +- .../json}/GetPortfolioInfoJsonSerdeTests.java | 2 +- .../json}/GetQuoteLevel2JsonSerdeTests.java | 2 +- .../json}/GetScriptPathJsonSerdeTests.java | 2 +- .../json}/GetSecurityInfoJsonSerdeTests.java | 3 +- .../json}/GetTableSizeJsonSerdeTests.java | 2 +- .../json}/GetTradeDateJsonSerdeTests.java | 2 +- .../json}/GetWindowCaptionJsonSerdeTests.java | 2 +- .../json}/GetWindowRectJsonSerdeTests.java | 2 +- .../json}/GetWorkingFolderJsonSerdeTests.java | 2 +- .../serde/json}/HighlightJsonSerdeTests.java | 2 +- .../serde/json}/InsertRowJsonSerdeTests.java | 2 +- .../json}/IsConnectedJsonSerdeTests.java | 2 +- ...sSubscribedLevel2QuotesJsonSerdeTests.java | 2 +- .../json}/IsWindowClosedJsonSerdeTests.java | 2 +- .../serde/json}/MessageJsonSerdeTests.java | 2 +- .../json}/ParamRequestJsonSerdeTests.java | 2 +- .../json}/PrintDbgStrJsonSerdeTests.java | 2 +- .../rpc/serde/json}/RGBJsonSerdeTests.java | 2 +- .../json}/SearchItemsJsonSerdeTests.java | 2 +- .../json}/SendTransactionJsonSerdeTests.java | 2 +- .../serde/json}/SetCellJsonSerdeTests.java | 2 +- .../serde/json}/SetColorJsonSerdeTests.java | 2 +- .../json}/SetLabelParamsJsonSerdeTests.java | 2 +- .../json}/SetSelectedRowJsonSerdeTests.java | 2 +- ...bleNotificationCallbackJsonSerdeTests.java | 2 +- .../json}/SetWindowCaptionJsonSerdeTests.java | 2 +- .../json}/SetWindowPosJsonSerdeTests.java | 2 +- .../rpc/serde/json}/SleepJsonSerdeTests.java | 2 +- .../SubscribeLevel2QuotesJsonSerdeTests.java | 2 +- .../serde/json}/SysdateJsonSerdeTests.java | 2 +- ...UnsubscribeLevel2QuotesJsonSerdeTests.java | 2 +- .../AccountBalanceJsonSerdeTests.java | 4 +- .../AccountPositionJsonSerdeTests.java | 4 +- .../structures/AllTradeJsonSerdeTests.java | 4 +- .../ConnectedEventInfoSerdeTests.java | 4 +- .../DepoLimitDeleteJsonSerdeTests.java | 4 +- .../structures/DepoLimitJsonSerdeTests.java | 4 +- .../json}/structures/FirmJsonSerdeTests.java | 4 +- .../FuturesClientHoldingJsonSerdeTests.java | 4 +- .../FuturesLimitDeleteJsonSerdeTests.java | 4 +- .../FuturesLimitJsonSerdeTests.java | 4 +- .../MoneyLimitDeleteJsonSerdeTests.java | 4 +- .../structures/MoneyLimitJsonSerdeTests.java | 4 +- .../structures/NegDealJsonSerdeTests.java | 4 +- .../structures/NegTradeJsonSerdeTests.java | 4 +- .../json}/structures/OrderJsonSerdeTests.java | 4 +- .../ParamEventInfoJsonSerdeTests.java | 4 +- .../QuoteEventInfoJsonSerdeTests.java | 4 +- .../StopEventInfoJsonSerdeTests.java | 4 +- .../structures/StopOrderJsonSerdeTests.java | 4 +- .../json}/structures/TradeJsonSerdeTests.java | 4 +- .../structures/TransReplyJsonSerdeTests.java | 4 +- 183 files changed, 128 insertions(+), 5254 deletions(-) delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AbstractJsonDeserializationTest.java (93%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AbstractJsonRpcArgsSerializationTest.java (94%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AbstractJsonSerdeModuleTest.java (84%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AbstractRpcResultJsonDeserializationTest.java (94%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AddColumnJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AddLabelJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/AllocTableJsonSerdeTests.java (92%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitBAndJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitBNotJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitBOrJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitBXorJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitTestJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/BitToHexJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/CalcBuySellJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/CancelParamRequestJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/ClearJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/CreateWindowJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceCJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceCloseJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceCreateDataSourceJsonSerdeTests.java (98%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceHJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceLJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceOJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceSetEmptyCallbackJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceSetUpdateCallbackJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceSizeJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceTJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DatasourceVJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DelAllLabelsJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DelLabelJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DeleteRowJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/DestroyTableJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetBuySellInfoExJsonSerdeTests.java (98%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetBuySellInfoJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetCandlesByIndexJsonSerdeTests.java (98%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetCellJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetClassInfoJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetClassSecuritiesJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetClassesListJsonSerdeTests.java (93%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetDepoExJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetDepoJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetFuturesHoldingJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetFuturesLimitJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetInfoParamJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetItemJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetLabelParamsJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetLinesCountJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetMoneyExJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetMoneyJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetNumCandlesJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetNumberOfJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetOrderByNumberJsonSerdeTests.java (99%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetParamEx2JsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetParamExJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetPortfolioInfoExJsonSerdeTests.java (99%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetPortfolioInfoJsonSerdeTests.java (99%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetQuoteLevel2JsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetScriptPathJsonSerdeTests.java (92%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetSecurityInfoJsonSerdeTests.java (98%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetTableSizeJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetTradeDateJsonSerdeTests.java (94%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetWindowCaptionJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetWindowRectJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/GetWorkingFolderJsonSerdeTests.java (93%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/HighlightJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/InsertRowJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/IsConnectedJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/IsSubscribedLevel2QuotesJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/IsWindowClosedJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/MessageJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/ParamRequestJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/PrintDbgStrJsonSerdeTests.java (92%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/RGBJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SearchItemsJsonSerdeTests.java (98%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SendTransactionJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetCellJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetColorJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetLabelParamsJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetSelectedRowJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetTableNotificationCallbackJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetWindowCaptionJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SetWindowPosJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SleepJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SubscribeLevel2QuotesJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/SysdateJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/UnsubscribeLevel2QuotesJsonSerdeTests.java (97%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/AccountBalanceJsonSerdeTests.java (89%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/AccountPositionJsonSerdeTests.java (90%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/AllTradeJsonSerdeTests.java (92%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/ConnectedEventInfoSerdeTests.java (88%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/DepoLimitDeleteJsonSerdeTests.java (85%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/DepoLimitJsonSerdeTests.java (89%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/FirmJsonSerdeTests.java (83%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/FuturesClientHoldingJsonSerdeTests.java (90%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/FuturesLimitDeleteJsonSerdeTests.java (83%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/FuturesLimitJsonSerdeTests.java (90%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/MoneyLimitDeleteJsonSerdeTests.java (85%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/MoneyLimitJsonSerdeTests.java (89%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/NegDealJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/NegTradeJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/OrderJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/ParamEventInfoJsonSerdeTests.java (83%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/QuoteEventInfoJsonSerdeTests.java (83%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/StopEventInfoJsonSerdeTests.java (91%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/StopOrderJsonSerdeTests.java (95%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/TradeJsonSerdeTests.java (96%) rename src/test/java/{wip => com/enfernuz/quik/lua/rpc/serde/json}/structures/TransReplyJsonSerdeTests.java (94%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java deleted file mode 100644 index 956978a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabelJsonSerdeTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class AddLabelJsonSerdeTest { - - private static ObjectMapper sut; - - private static AddLabel.Args requestObj; - private static AddLabel.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = AddLabel.Args.builder() - .chartTag("1") - .labelParams(ImmutableMap.of( - "key1", "value1", - "key2", "value2", - "key3", "value3" - )) - .build(); - - resultObj = new AddLabel.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/AddLabel.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/AddLabel.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final AddLabel.Result actualResultObj = sut.readValue(resultJson, AddLabel.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java deleted file mode 100644 index 73db34e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/AllocTableJsonSerdeTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class AllocTableJsonSerdeTest { - - private static ObjectMapper sut; - - private static AllocTable.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - resultObj = new AllocTable.Result(1); - resultJson = - Resources.toString(Resources.getResource("json/AllocTable.result.json"), Charsets.UTF_8); - } - -// @Test -// public void testRequestSerialize() throws IOException { -// -// final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); -// -// assertEquals(requestJson, actualRequestJson); -// } - - @Test - public void testResultDeserialize() throws IOException { - - final AllocTable.Result actualResultObj = sut.readValue(resultJson, AllocTable.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java deleted file mode 100644 index 51cc43f..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfoJsonSerdeTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetClassInfoJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetClassInfo.Args requestObj; - private static String requestJson; - - private static GetClassInfo.Result resultObj; - private static String resultJson; - - private static GetClassInfo.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetClassInfo.Args("1"); - requestJson = - Resources.toString(Resources.getResource("json/getClassInfo.request.json"), Charsets.UTF_8); - - final ClassInfo classInfo = ClassInfo.builder() - .firmId("1") - .name("2") - .code("3") - .npars(4) - .nsecs(5) - .build(); - - resultObj = new GetClassInfo.Result(classInfo); - resultJson = - Resources.toString(Resources.getResource("json/getClassInfo.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = new GetClassInfo.Result(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getClassInfo.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testSerializeRequest() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testDeserializeResult() throws IOException { - - final GetClassInfo.Result actualResultObj = sut.readValue(resultJson, GetClassInfo.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - final GetClassInfo.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetClassInfo.Result.class); - - assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java deleted file mode 100644 index 5a4fdb5..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoExJsonSerdeTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetDepoExJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetDepoEx.Request requestObj; - private static String requestJson; - - private static GetDepoEx.Result resultObj; - private static String resultJson; - - private static GetDepoEx.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetDepoEx.Request.builder() - .firmId("1") - .clientCode("2") - .secCode("3") - .trdAccId("4") - .limitKind(5) - .build(); - requestJson = - Resources.toString(Resources.getResource("json/getDepoEx.request.json"), Charsets.UTF_8); - - final DepoLimit depoLimit = DepoLimit.builder() - .secCode("1") - .trdAccId("2") - .firmId("3") - .clientCode("4") - .openBal(5) - .openLimit(6) - .currentBal(7) - .currentLimit(8) - .lockedSell(9) - .lockedBuy(10) - .lockedBuyValue("11") - .lockedSellValue("12") - .awgPositionPrice("13") - .limitKind(14) - .build(); - - resultObj = GetDepoEx.Result.getInstance(depoLimit); - resultJson = - Resources.toString(Resources.getResource("json/getDepoEx.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetDepoEx.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getDepoEx.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testSerializeRequest() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testDeserializeResult() throws IOException { - - final GetDepoEx.Result actualResultObj = sut.readValue(resultJson, GetDepoEx.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - final GetDepoEx.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetDepoEx.Result.class); - - assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java deleted file mode 100644 index 8a2e879..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHoldingJsonSerdeTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetFuturesHoldingJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetFuturesHolding.Args requestObj; - private static String requestJson; - - private static GetFuturesHolding.Result resultObj; - private static String resultJson; - - private static GetFuturesHolding.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetFuturesHolding.Args.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .build(); - requestJson = - Resources.toString(Resources.getResource("json/getFuturesHolding.request.json"), Charsets.UTF_8); - - final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .startBuy("5") - .startSell("6") - .todayBuy("7") - .todaySell("8") - .totalNet("9") - .openBuys(10) - .openSells(11) - .cbplUsed("12") - .cbplPlanned("13") - .varMargin("14") - .avrPosnPrice("15") - .positionValue("16") - .realVarMargin("17") - .totalVarMargin("18") - .sessionStatus(19) - .build(); - - resultObj = GetFuturesHolding.Result.getInstance(futuresClientHolding); - resultJson = Resources.toString(Resources.getResource("json/getFuturesHolding.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetFuturesHolding.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getFuturesHolding.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetFuturesHolding.Result actualResultObj = sut.readValue(resultJson, GetFuturesHolding.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - final GetFuturesHolding.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetFuturesHolding.Result.class); - - assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java deleted file mode 100644 index 041bc08..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimitJsonSerdeTest.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetFuturesLimitJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetFuturesLimit.Args requestObj; - private static String requestJson; - - private static GetFuturesLimit.Result resultObj; - private static String resultJson; - - private static GetFuturesLimit.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetFuturesLimit.Args.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .currCode("4") - .build(); - requestJson = - Resources.toString(Resources.getResource("json/getFuturesLimit.request.json"), Charsets.UTF_8); - - final FuturesLimit futuresLimit = FuturesLimit.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .liquidityCoef("4") - .cbpPrevLimit("5") - .cbpLimit("6") - .cbplUsed("7") - .cbplPlanned("8") - .varMargin("9") - .accruedInt("10") - .cbplUsedForOrders("11") - .cbplUsedForPositions("12") - .optionsPremium("13") - .tsComission("14") - .kgo("15") - .currCode("16") - .realVarMargin("17") - .build(); - - resultObj = GetFuturesLimit.Result.getInstance(futuresLimit); - resultJson = - Resources.toString(Resources.getResource("json/getFuturesLimit.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetFuturesLimit.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getFuturesLimit.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetFuturesLimit.Result actualResultObj = sut.readValue(resultJson, GetFuturesLimit.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - final GetFuturesLimit.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetFuturesLimit.Result.class); - - assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java deleted file mode 100644 index d24378e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetInfoParamJsonSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetInfoParamJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetInfoParam.Request requestObj; - private static GetInfoParam.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetInfoParam.Request("1"); - - resultObj = new GetInfoParam.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/getInfoParam.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getInfoParam.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetInfoParam.Result actualResultObj = sut.readValue(resultJson, GetInfoParam.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java deleted file mode 100644 index 27c0678..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetItemJsonSerdeTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetItemJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetItem.Request requestObj; - private static String requestJson; - - private static GetItem.Result resultObj; - private static String resultJson; - - private static GetItem.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetItem.Request("1", 2); - requestJson = Resources.toString(Resources.getResource("json/getItem.request.json"), Charsets.UTF_8); - - final ImmutableMap.Builder tableRow = ImmutableMap.builder(); - tableRow.put("field_1", "value_1"); - tableRow.put("field_2", "value_2"); - tableRow.put("field_3", "value_3"); - tableRow.put("field_...", "value_..."); - tableRow.put("field_n", "value_n"); - - resultObj = GetItem.Result.getInstance( tableRow.build() ); - resultJson = Resources.toString(Resources.getResource("json/getItem.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetItem.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getItem.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetItem.Result.class)); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - assertEquals( - resultObjWithOnlyRequiredFields, - sut.readValue(resultJsonWithOnlyRequiredFields, GetItem.Result.class) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java deleted file mode 100644 index 1efbd6e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParamsJsonSerdeTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetLabelParamsJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetLabelParams.Request requestObj; - private static String requestJson; - - private static GetLabelParams.Result resultObj; - private static String resultJson; - - private static GetLabelParams.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetLabelParams.Request("1", 2); - requestJson = Resources.toString(Resources.getResource("json/GetLabelParams.request.json"), Charsets.UTF_8); - - final ImmutableMap.Builder labelParams = ImmutableMap.builder(); - labelParams.put("param_1", "value_1"); - labelParams.put("param_2", "value_2"); - labelParams.put("param_3", "value_3"); - labelParams.put("param_...", "value_..."); - labelParams.put("param_n", "value_n"); - - resultObj = GetLabelParams.Result.getInstance( labelParams.build() ); - resultJson = Resources.toString(Resources.getResource("json/GetLabelParams.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetLabelParams.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/GetLabelParams.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetLabelParams.Result.class)); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - assertEquals( - resultObjWithOnlyRequiredFields, - sut.readValue(resultJsonWithOnlyRequiredFields, GetLabelParams.Result.class) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java deleted file mode 100644 index 9cdfe3c..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetLinesCountJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetLinesCountJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetLinesCount.Request requestObj; - private static GetLinesCount.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetLinesCount.Request("1"); - - resultObj = new GetLinesCount.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/getLinesCount.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getLinesCount.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetLinesCount.Result actualResultObj = sut.readValue(resultJson, GetLinesCount.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java deleted file mode 100644 index 3a2caf4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyExJsonSerdeTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetMoneyExJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetMoneyEx.Request requestObj; - private static String requestJson; - - private static GetMoneyEx.Result resultObj; - private static String resultJson; - - private static GetMoneyEx.Result resultObjWithOnlyRequiredFields; - private static String resultJsonWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetMoneyEx.Request.builder() - .firmId("1") - .clientCode("2") - .tag("3") - .currCode("4") - .limitKind(5) - .build(); - requestJson = Resources.toString(Resources.getResource("json/getMoneyEx.request.json"), Charsets.UTF_8); - - final MoneyLimit moneyEx = MoneyLimit.builder() - .currCode("1") - .tag("2") - .firmId("3") - .clientCode("4") - .openBal("5") - .openLimit("6") - .currentBal("7") - .currentLimit("8") - .locked("9") - .lockedValueCoef("10") - .lockedMarginValue("11") - .leverage("12") - .limitKind(13) - .build(); - - resultObj = GetMoneyEx.Result.getInstance(moneyEx); - resultJson = Resources.toString(Resources.getResource("json/getMoneyEx.result.json"), Charsets.UTF_8); - - resultObjWithOnlyRequiredFields = GetMoneyEx.Result.getInstance(null); - resultJsonWithOnlyRequiredFields = - Resources.toString(Resources.getResource("json/getMoneyEx.result.only_required_fields.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetMoneyEx.Result actualResultObj = sut.readValue(resultJson, GetMoneyEx.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeResultWithOnlyRequiredFields() throws IOException { - - final GetMoneyEx.Result actualResultObj = sut.readValue(resultJsonWithOnlyRequiredFields, GetMoneyEx.Result.class); - - assertEquals(resultObjWithOnlyRequiredFields, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java deleted file mode 100644 index dbb1102..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyJsonSerdeTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.Money; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetMoneyJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetMoney.Request requestObj; - private static GetMoney.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetMoney.Request.builder() - .clientCode("1") - .firmId("2") - .tag("3") - .currCode("4") - .build(); - - final Money money = Money.builder() - .moneyOpenLimit("1") - .moneyLimitLockedNonMarginalValue("2") - .moneyLimitLocked("3") - .moneyOpenBalance("4") - .moneyCurrentLimit("5") - .moneyCurrentBalance("6") - .moneyLimitAvailable("7") - .build(); - - resultObj = new GetMoney.Result(money); - - requestJson = - Resources.toString(Resources.getResource("json/getMoney.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getMoney.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetMoney.Result actualResultObj = sut.readValue(resultJson, GetMoney.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java deleted file mode 100644 index e542421..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumCandlesJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetNumCandlesJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetNumCandles.Request requestObj; - private static GetNumCandles.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetNumCandles.Request("1"); - - resultObj = new GetNumCandles.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/getNumCandles.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getNumCandles.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetNumCandles.Result actualResultObj = sut.readValue(resultJson, GetNumCandles.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java deleted file mode 100644 index c79dfa2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetNumberOfJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetNumberOfJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetNumberOf.Request requestObj; - private static GetNumberOf.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetNumberOf.Request("1"); - - resultObj = new GetNumberOf.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/getNumberOf.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getNumberOf.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetNumberOf.Result actualResultObj = sut.readValue(resultJson, GetNumberOf.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java deleted file mode 100644 index 45a1e40..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumberJsonSerdeTest.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetOrderByNumberJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetOrderByNumber.Request requestObj; - private static String requestJson; - - private static GetOrderByNumber.Result resultObj; - private static String resultJson; - - private static GetOrderByNumber.Result errorObj; - private static String errorJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetOrderByNumber.Request("1", 12345678909876577L); - requestJson = Resources.toString(Resources.getResource("json/getOrderByNumber.request.json"), Charsets.UTF_8); - - final DateTimeEntry datetime = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - - final DateTimeEntry withdrawDatetime = DateTimeEntry.builder() - .mcs(9) - .ms(8) - .sec(7) - .min(6) - .hour(5) - .day(4) - .weekDay(3) - .month(2) - .year(1) - .build(); - - final Order order = Order.builder() - .orderNum(12345678909876577L) - .flags(2) - .brokerRef("3") - .userId("4") - .firmId("5") - .account("6") - .price("7") - .qty(8) - .balance("9") - .value("10") - .accruedInt("11") - .yield("12") - .transId("13") - .clientCode("14") - .price2("15") - .settleCode("16") - .uid("17") - .canceledUid("18") - .exchangeCode("19") - .activationTime("20") - .linkedOrder("21") - .expiry("22") - .secCode("23") - .classCode("24") - .datetime(datetime) - .withdrawDatetime(withdrawDatetime) - .bankAccId("27") - .valueEntryType(28) - .repoTerm("29") - .repoValue("30") - .repo2Value("31") - .repoValueBalance("32") - .startDiscount("33") - .rejectReason("34") - .extOrderFlags("35") - .minQty(36) - .execType(37) - .sideQualifier(38) - .acntType(39) - .capacity(40) - .passiveOnlyOrder(41) - .visible(42) - .build(); - - resultObj = GetOrderByNumber.Result.getInstance(order, 2); - resultJson = Resources.toString(Resources.getResource("json/getOrderByNumber.result.json"), Charsets.UTF_8); - - errorObj = GetOrderByNumber.Result.getInstance(null, 0); - errorJson = Resources.toString(Resources.getResource("json/getOrderByNumber.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetOrderByNumber.Result actualResultObj = sut.readValue(resultJson, GetOrderByNumber.Result.class); - - assertEquals(resultObj, actualResultObj); - } - - @Test - public void testDeserializeError() throws IOException { - assertEquals(errorObj, sut.readValue(errorJson, GetOrderByNumber.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java deleted file mode 100644 index 13145ff..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamEx2JsonSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetParamEx2JsonSerdeTest { - - private static ObjectMapper sut; - - private static GetParamEx2.Request requestObj; - private static GetParamEx2.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetParamEx2.Request.builder() - .classCode("1") - .secCode("2") - .paramName("3") - .build(); - - final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() - .paramType("1") - .paramValue("2") - .paramImage("3") - .result("4") - .build(); - - resultObj = new GetParamEx2.Result(paramEx); - - requestJson = - Resources.toString(Resources.getResource("json/getParamEx2.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getParamEx2.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetParamEx2.Result actualResultObj = sut.readValue(resultJson, GetParamEx2.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java deleted file mode 100644 index 6156139..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetParamExJsonSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetParamExJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetParamEx.Request requestObj; - private static GetParamEx.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetParamEx.Request.builder() - .classCode("1") - .secCode("2") - .paramName("3") - .build(); - - final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() - .paramType("1") - .paramValue("2") - .paramImage("3") - .result("4") - .build(); - - resultObj = new GetParamEx.Result(paramEx); - - requestJson = - Resources.toString(Resources.getResource("json/getParamEx.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getParamEx.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetParamEx.Result actualResultObj = sut.readValue(resultJson, GetParamEx.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java deleted file mode 100644 index d03c231..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoExJsonSerdeTest.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetPortfolioInfoExJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetPortfolioInfoEx.Request requestObj; - private static GetPortfolioInfoEx.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetPortfolioInfoEx.Request.builder() - .firmId("1") - .clientCode("2") - .limitKind(3) - .build(); - - final PortfolioInfo portfolioInfo = PortfolioInfo.builder() - .isLeverage("1") - .inAssets("2") - .leverage("3") - .openLimit("4") - .valShort("5") - .valLong("6") - .valLongMargin("7") - .valLongAsset("8") - .assets("9") - .curLeverage("10") - .margin("11") - .limAll("12") - .avLimAll("13") - .lockedBuy("14") - .lockedBuyMargin("15") - .lockedBuyAsset("16") - .lockedSell("17") - .lockedValueCoef("18") - .inAllAssets("19") - .allAssets("20") - .profitLoss("21") - .rateChange("22") - .limBuy("23") - .limSell("24") - .limNonMargin("25") - .limBuyAsset("26") - .valShortNet("27") - .valLongNet("28") - .totalMoneyBal("29") - .totalLockedMoney("30") - .haircuts("31") - .assetsWithoutHc("32") - .statusCoef("33") - .varMargin("34") - .goForPositions("35") - .goForOrders("36") - .rateFutures("37") - .isQualClient("38") - .isFutures("39") - .currTag("40") - .build(); - - resultObj = GetPortfolioInfoEx.Result.builder() - .portfolioInfo(portfolioInfo) - .initMargin("2") - .minMargin("3") - .correctedMargin("4") - .clientType("5") - .portfolioValue("6") - .startLimitOpenPos("7") - .totalLimitOpenPos("8") - .limitOpenPos("9") - .usedLimOpenPos("10") - .accVarMargin("11") - .clVarMargin("12") - .optLiquidCost("13") - .futAsset("14") - .futTotalAsset("15") - .futDebt("16") - .futRateAsset("17") - .futRateAssetOpen("18") - .futRateGo("19") - .planedRateGo("20") - .cashLeverage("21") - .futPositionType("22") - .futAccruedInt("23") - .build(); - - requestJson = - Resources.toString(Resources.getResource("json/getPortfolioInfoEx.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getPortfolioInfoEx.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetPortfolioInfoEx.Result actualResultObj = sut.readValue(resultJson, GetPortfolioInfoEx.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java deleted file mode 100644 index 407a60b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetPortfolioInfoJsonSerdeTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetPortfolioInfoJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetPortfolioInfo.Request requestObj; - private static GetPortfolioInfo.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetPortfolioInfo.Request.builder() - .firmId("1") - .clientCode("2") - .build(); - - final PortfolioInfo portfolioInfo = PortfolioInfo.builder() - .isLeverage("1") - .inAssets("2") - .leverage("3") - .openLimit("4") - .valShort("5") - .valLong("6") - .valLongMargin("7") - .valLongAsset("8") - .assets("9") - .curLeverage("10") - .margin("11") - .limAll("12") - .avLimAll("13") - .lockedBuy("14") - .lockedBuyMargin("15") - .lockedBuyAsset("16") - .lockedSell("17") - .lockedValueCoef("18") - .inAllAssets("19") - .allAssets("20") - .profitLoss("21") - .rateChange("22") - .limBuy("23") - .limSell("24") - .limNonMargin("25") - .limBuyAsset("26") - .valShortNet("27") - .valLongNet("28") - .totalMoneyBal("29") - .totalLockedMoney("30") - .haircuts("31") - .assetsWithoutHc("32") - .statusCoef("33") - .varMargin("34") - .goForPositions("35") - .goForOrders("36") - .rateFutures("37") - .isQualClient("38") - .isFutures("39") - .currTag("40") - .build(); - - resultObj = new GetPortfolioInfo.Result(portfolioInfo); - - requestJson = - Resources.toString(Resources.getResource("json/getPortfolioInfo.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getPortfolioInfo.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetPortfolioInfo.Result actualResultObj = sut.readValue(resultJson, GetPortfolioInfo.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java deleted file mode 100644 index cd79c34..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetQuoteLevel2JsonSerdeTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2.QuoteEntry; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableList; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -public class GetQuoteLevel2JsonSerdeTest { - - private static ObjectMapper sut; - - private static GetQuoteLevel2.Request requestObj; - private static GetQuoteLevel2.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetQuoteLevel2.Request.builder() - .classCode("1") - .secCode("2") - .build(); - - final List bids = - ImmutableList.of( - QuoteEntry.builder().price("100").quantity("42").build(), - QuoteEntry.builder().price("200").quantity("20").build(), - QuoteEntry.builder().price("300").quantity("1").build() - ); - - final List offers = - ImmutableList.of( - QuoteEntry.builder().price("350").quantity("25").build(), - QuoteEntry.builder().price("999").quantity("5000").build() - ); - - resultObj = GetQuoteLevel2.Result.builder() - .bidCount("3") - .offerCount("2") - .bids(bids) - .offers(offers) - .build(); - - requestJson = - Resources.toString(Resources.getResource("json/getQuoteLevel2.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getQuoteLevel2.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetQuoteLevel2.Result actualResultObj = sut.readValue(resultJson, GetQuoteLevel2.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java deleted file mode 100644 index 2c3a9a1..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetScriptPathJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetScriptPathJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetScriptPath.Request requestObj; - private static GetScriptPath.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetScriptPath.Request.INSTANCE; - - resultObj = new GetScriptPath.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/getScriptPath.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getScriptPath.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetScriptPath.Result actualResultObj = sut.readValue(resultJson, GetScriptPath.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java deleted file mode 100644 index 7dcb7d3..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetSecurityInfoJsonSerdeTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.api.structures.Security; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetSecurityInfoJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetSecurityInfo.Request requestObj; - private static String requestJson; - - private static GetSecurityInfo.Result resultObj; - private static String resultJson; - - private static GetSecurityInfo.Result errorObj; - private static String errorJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetSecurityInfo.Request.builder() - .classCode("1") - .secCode("2") - .build(); - requestJson = Resources.toString(Resources.getResource("json/getSecurityInfo.request.json"), Charsets.UTF_8); - - final Security securityInfo = Security.builder() - .code("1") - .name("2") - .shortName("3") - .classCode("4") - .className("5") - .faceValue("6") - .faceUnit("7") - .scale("8") - .matDate("9") - .lotSize("10") - .isinCode("11") - .minPriceStep("12") - .build(); - - resultObj = GetSecurityInfo.Result.getInstance(securityInfo); - resultJson = Resources.toString(Resources.getResource("json/getSecurityInfo.result.json"), Charsets.UTF_8); - - errorObj = GetSecurityInfo.Result.getErrorInstance(); - errorJson = - Resources.toString(Resources.getResource("json/getSecurityInfo.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetSecurityInfo.Result.class)); - } - - @Test - public void testDeserializeError() throws IOException { - assertEquals(errorObj, sut.readValue(errorJson, GetSecurityInfo.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java deleted file mode 100644 index 9e0a088..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSizeJsonSerdeTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetTableSizeJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetTableSize.Request requestObj; - private static String requestJson; - - private static GetTableSize.Result resultObj; - private static String resultJson; - - private static GetTableSize.Result errorObj; - private static String errorJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetTableSize.Request(1); - requestJson = Resources.toString(Resources.getResource("json/GetTableSize.request.json"), Charsets.UTF_8); - - final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() - .rows(1) - .col(2) - .build(); - resultObj = GetTableSize.Result.getInstance(tableSize); - resultJson = Resources.toString(Resources.getResource("json/GetTableSize.result.json"), Charsets.UTF_8); - - errorObj = GetTableSize.Result.getErrorInstance(); - errorJson = - Resources.toString(Resources.getResource("json/GetTableSize.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetTableSize.Result.class)); - } - - @Test - public void testDeserializeError() throws IOException { - assertEquals(errorObj, sut.readValue(errorJson, GetTableSize.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java deleted file mode 100644 index 0ccf99b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetTradeDateJsonSerdeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetTradeDateJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetTradeDate.Request requestObj; - private static GetTradeDate.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetTradeDate.Request.INSTANCE; - - final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() - .date("1") - .year(2) - .month(3) - .day(4) - .build(); - - resultObj = new GetTradeDate.Result(tradeDate); - - requestJson = - Resources.toString(Resources.getResource("json/getTradeDate.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getTradeDate.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetTradeDate.Result actualResultObj = sut.readValue(resultJson, GetTradeDate.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java deleted file mode 100644 index c5735c7..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaptionJsonSerdeTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetWindowCaptionJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetWindowCaption.Request requestObj; - private static String requestJson; - - private static GetWindowCaption.Result resultObj; - private static String resultJson; - - private static GetWindowCaption.Result errorObj; - private static String errorJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetWindowCaption.Request(1); - requestJson = Resources.toString(Resources.getResource("json/GetWindowCaption.request.json"), Charsets.UTF_8); - - resultObj = GetWindowCaption.Result.getInstance("1"); - resultJson = Resources.toString(Resources.getResource("json/GetWindowCaption.result.json"), Charsets.UTF_8); - - errorObj = GetWindowCaption.Result.getErrorInstance(); - errorJson = - Resources.toString(Resources.getResource("json/GetWindowCaption.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetWindowCaption.Result.class)); - } - - @Test - public void testDeserializeError() throws IOException { - assertEquals(errorObj, sut.readValue(errorJson, GetWindowCaption.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java deleted file mode 100644 index 71ac085..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowRectJsonSerdeTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetWindowRectJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetWindowRect.Request requestObj; - private static String requestJson; - - private static GetWindowRect.Result resultObj; - private static String resultJson; - - private static GetWindowRect.Result errorObj; - private static String errorJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new GetWindowRect.Request(1); - requestJson = Resources.toString(Resources.getResource("json/GetWindowRect.request.json"), Charsets.UTF_8); - - final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() - .top(1) - .left(2) - .bottom(3) - .right(4) - .build(); - resultObj = GetWindowRect.Result.getInstance(windowRect); - resultJson = Resources.toString(Resources.getResource("json/GetWindowRect.result.json"), Charsets.UTF_8); - - errorObj = GetWindowRect.Result.getErrorInstance(); - errorJson = - Resources.toString(Resources.getResource("json/GetWindowRect.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testResultDeserialize() throws IOException { - assertEquals(resultObj, sut.readValue(resultJson, GetWindowRect.Result.class)); - } - - @Test - public void testDeserializeError() throws IOException { - assertEquals(errorObj, sut.readValue(errorJson, GetWindowRect.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java deleted file mode 100644 index c5f0499..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/GetWorkingFolderJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class GetWorkingFolderJsonSerdeTest { - - private static ObjectMapper sut; - - private static GetWorkingFolder.Request requestObj; - private static GetWorkingFolder.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = GetWorkingFolder.Request.INSTANCE; - - resultObj = new GetWorkingFolder.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/getWorkingFolder.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/getWorkingFolder.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final GetWorkingFolder.Result actualResultObj = sut.readValue(resultJson, GetWorkingFolder.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java deleted file mode 100644 index ac23f8f..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/HighlightJsonSerdeTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class HighlightJsonSerdeTest { - - private static ObjectMapper sut; - - private static Highlight.Request requestObj; - private static String requestJson; - - private static Highlight.Result trueObj; - private static String trueJson; - - private static Highlight.Result falseObj; - private static String falseJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = Highlight.Request.builder() - .tId(1) - .row(2) - .col(3) - .bColor(4) - .fColor(5) - .timeout(6) - .build(); - requestJson = Resources.toString(Resources.getResource("json/Highlight.request.json"), Charsets.UTF_8); - - trueObj = Highlight.Result.getInstance(true); - trueJson = Resources.toString(Resources.getResource("json/Highlight.result.true.json"), Charsets.UTF_8); - - falseObj = Highlight.Result.getInstance(false); - falseJson = Resources.toString(Resources.getResource("json/Highlight.result.false.json"), Charsets.UTF_8); - } - - @Test - public void testSerialize_Request() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testDeserialize_TrueResult() throws IOException { - assertEquals(trueObj, sut.readValue(trueJson, Highlight.Result.class)); - } - - @Test - public void testDeserialize_FalseResult() throws IOException { - assertEquals(falseObj, sut.readValue(falseJson, Highlight.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java deleted file mode 100644 index 30dd258..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/InsertRowJsonSerdeTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class InsertRowJsonSerdeTest { - - private static ObjectMapper sut; - - private static InsertRow.Request requestObj; - private static InsertRow.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = InsertRow.Request.builder() - .tId(1) - .key(2) - .build(); - - resultObj = new InsertRow.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/InsertRow.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/InsertRow.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final InsertRow.Result actualResultObj = sut.readValue(resultJson, InsertRow.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java deleted file mode 100644 index bdd7f30..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsConnectedJsonSerdeTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.exc.MismatchedInputException; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import lombok.SneakyThrows; -import org.hamcrest.Matchers; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class IsConnectedJsonSerdeTest { - - private static final ObjectMapper SUT = getSUT(); - - private static final IsConnected.Request OBJ_REQUEST = IsConnected.Request.INSTANCE; - private static final String JSON_REQUEST = getJson("json/isConnected/request.json"); - - private static final IsConnected.Result OBJ_TRUE_RESULT = getObjOfTrueResult(); - private static final String JSON_TRUE_RESULT = getJson("json/isConnected/result.true.json"); - - private static final IsConnected.Result OBJ_FALSE_RESULT = getObjOfFalseResult(); - private static final String JSON_FALSE_RESULT = getJson("json/isConnected/result.false.json"); - - private static final IsConnected.Result OBJ_GARBAGE_RESULT = getObjOfGarbageResult(); - private static final String JSON_GARBAGE_RESULT = getJson("json/isConnected/result.garbage.json"); - - private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJson("json/isConnected/result.missing.is_connected.json"); - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Test - public void shouldSerialize_ObjectOf_Request_To_JsonOf_Request() throws IOException { - assertEquals(JSON_REQUEST, SUT.writerWithDefaultPrettyPrinter().writeValueAsString(OBJ_REQUEST)); - } - - @Test - public void shouldDeserialize_JsonOf_TrueResult_To_ObjectOf_TrueResult() throws IOException { - assertEquals(OBJ_TRUE_RESULT, SUT.readValue(JSON_TRUE_RESULT, IsConnected.Result.class)); - } - - @Test - public void shouldDeserialize_JsonOf_FalseResult_To_ObjectOf_FalseResult() throws IOException { - assertEquals(OBJ_FALSE_RESULT, SUT.readValue(JSON_FALSE_RESULT, IsConnected.Result.class)); - } - - @Test - public void shouldDeserialize_JsonOf_GarbageResult_To_ObjectOf_GarbageResult() throws IOException { - assertEquals(OBJ_GARBAGE_RESULT, SUT.readValue(JSON_GARBAGE_RESULT, IsConnected.Result.class)); - } - - @Test - public void shouldFailOn_deserializationOf_JsonOf_Result_WithMissingField_IsConnected() throws IOException { - - thrown.expect(MismatchedInputException.class); - thrown.expectMessage(Matchers.containsString("Missing required creator property 'is_connected'")); - - SUT.readValue(JSON_RESULT_MISSING_FIELD_IS_CONNECTED, IsConnected.Result.class); - } - - private static ObjectMapper getSUT() { - - final ObjectMapper result = new ObjectMapper(); - result.registerModule(new QluaJsonModule()); - - return result; - } - - private static IsConnected.Result getObjOfGarbageResult() { - return IsConnected.Result.getInstance(123); - } - - private static IsConnected.Result getObjOfFalseResult() { - return IsConnected.Result.getInstance(0); - } - - private static IsConnected.Result getObjOfTrueResult() { - return IsConnected.Result.getInstance(1); - } - - @SneakyThrows(IOException.class) - private static final String getJson(final String resourcePath) { - return Resources.toString(Resources.getResource(resourcePath), Charsets.UTF_8); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java deleted file mode 100644 index 5e44adf..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsSubscribedLevel2QuotesJsonSerdeTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class IsSubscribedLevel2QuotesJsonSerdeTest { - - private static ObjectMapper sut; - - private static IsSubscribedLevel2Quotes.Request requestObj; - private static String requestJson; - - private static IsSubscribedLevel2Quotes.Result trueResultObj; - private static String trueResultJson; - - private static IsSubscribedLevel2Quotes.Result falseResultObj; - private static String falseResultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = IsSubscribedLevel2Quotes.Request.builder() - .classCode("1") - .secCode("2") - .build(); - requestJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.request.json"), Charsets.UTF_8); - - trueResultObj = IsSubscribedLevel2Quotes.Result.getInstance(true); - trueResultJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.true.json"), Charsets.UTF_8); - - falseResultObj = IsSubscribedLevel2Quotes.Result.getInstance(false); - falseResultJson = Resources.toString(Resources.getResource("json/IsSubscribed_Level_II_Quotes.result.false.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testTrueResultDeserialize() throws IOException { - assertEquals(trueResultObj, sut.readValue(trueResultJson, IsSubscribedLevel2Quotes.Result.class)); - } - - @Test - public void testFalseResultDeserialize() throws IOException { - assertEquals(falseResultObj, sut.readValue(falseResultJson, IsSubscribedLevel2Quotes.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java deleted file mode 100644 index fae7b84..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/IsWindowClosedJsonSerdeTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class IsWindowClosedJsonSerdeTest { - - private static ObjectMapper sut; - - private static IsWindowClosed.Request requestObj; - private static String requestJson; - - private static IsWindowClosed.Result trueResultObj; - private static String trueResultJson; - - private static IsWindowClosed.Result falseResultObj; - private static String falseResultJson; - - private static IsWindowClosed.Result errorResultObj; - private static String errorResultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new IsWindowClosed.Request(1); - requestJson = Resources.toString(Resources.getResource("json/IsWindowClosed.request.json"), Charsets.UTF_8); - - trueResultObj = IsWindowClosed.Result.getInstance( IsWindowClosed.WindowClosed.getInstance(true) ); - trueResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.true.json"), Charsets.UTF_8); - - falseResultObj = IsWindowClosed.Result.getInstance( IsWindowClosed.WindowClosed.getInstance(false) ); - falseResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.false.json"), Charsets.UTF_8); - - errorResultObj = IsWindowClosed.Result.getErrorInstance(); - errorResultJson = Resources.toString(Resources.getResource("json/IsWindowClosed.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - assertEquals(requestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj)); - } - - @Test - public void testTrueResultDeserialize() throws IOException { - assertEquals(trueResultObj, sut.readValue(trueResultJson, IsWindowClosed.Result.class)); - } - - @Test - public void testFalseResultDeserialize() throws IOException { - assertEquals(falseResultObj, sut.readValue(falseResultJson, IsWindowClosed.Result.class)); - } - - @Test - public void testErrorResultDeserialize() throws IOException { - assertEquals(errorResultObj, sut.readValue(errorResultJson, IsWindowClosed.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java deleted file mode 100644 index 1af1b8a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/MessageJsonSerdeTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class MessageJsonSerdeTest { - - private static ObjectMapper sut; - - private static Message.Request fullArgsRequestObject; - private static String fullArgsRequestJson; - - private static Message.Request requiredArgsRequestObject; - private static String requiredArgsRequestJson; - - private static Message.Result okResultObj; - private static String okResultJson; - - private static Message.Result notOkResultObj; - private static String notOkResultJson; - - private static Message.Result errorResultObj; - private static String errorResultJson; - - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = new Message.Request("1", Message.IconType.WARNING); - fullArgsRequestJson = Resources.toString(Resources.getResource("json/message.request_full_args.json"), Charsets.UTF_8); - - requiredArgsRequestObject = new Message.Request("1"); - requiredArgsRequestJson = Resources.toString(Resources.getResource("json/message.request_required_args.json"), Charsets.UTF_8); - - okResultObj = Message.Result.getInstance( Message.MessageResult.getOkInstance() ); - okResultJson = Resources.toString(Resources.getResource("json/message.result.ok.json"), Charsets.UTF_8); - - notOkResultObj = Message.Result.getInstance( Message.MessageResult.getInstance(789) ); - notOkResultJson = Resources.toString(Resources.getResource("json/message.result.not_ok.json"), Charsets.UTF_8); - - errorResultObj = Message.Result.getErrorInstance(); - errorResultJson = Resources.toString(Resources.getResource("json/message.result.error.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - assertEquals(fullArgsRequestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject)); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - assertEquals(requiredArgsRequestJson, sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject)); - } - - @Test - public void testDeserializeOkResult() throws IOException { - assertEquals(okResultObj, sut.readValue(okResultJson, Message.Result.class)); - } - - @Test - public void testDeserializeNotOkResult() throws IOException { - assertEquals(notOkResultObj, sut.readValue(notOkResultJson, Message.Result.class)); - } - - @Test - public void testDeserializeErrorResult() throws IOException { - assertEquals(errorResultObj, sut.readValue(errorResultJson, Message.Result.class)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java deleted file mode 100644 index 211e194..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/ParamRequestJsonSerdeTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.exc.MismatchedInputException; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import lombok.SneakyThrows; -import org.hamcrest.Matchers; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class ParamRequestJsonSerdeTest { - - private static final ObjectMapper SUT = getSUT(); - - private static final ParamRequest.Request OBJ_REQUEST = getObjOfRequest(); - private static final String JSON_REQUEST = getJson("json/ParamRequest/request.json"); - - private static final ParamRequest.Result OBJ_TRUE_RESULT = getObjOfTrueResult(); - private static final String JSON_TRUE_RESULT = getJson("json/ParamRequest/result.true.json"); - - private static final ParamRequest.Result OBJ_FALSE_RESULT = getObjOfFalseResult(); - private static final String JSON_FALSE_RESULT = getJson("json/ParamRequest/result.false.json"); - - private static final Class RESULT_CLASS = ParamRequest.Result.class; - - private static final String JSON_RESULT_MISSING_FIELD_IS_CONNECTED = getJson("json/ParamRequest/result.missing.result.json"); - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Test - public void shouldSerialize_ObjectOf_Request_To_JsonOf_Request() throws IOException { - assertEquals(JSON_REQUEST, SUT.writerWithDefaultPrettyPrinter().writeValueAsString(OBJ_REQUEST)); - } - - @Test - public void shouldDeserialize_JsonOf_TrueResult_To_ObjectOf_TrueResult() throws IOException { - assertEquals(OBJ_TRUE_RESULT, SUT.readValue(JSON_TRUE_RESULT, RESULT_CLASS)); - } - - @Test - public void shouldDeserialize_JsonOf_FalseResult_To_ObjectOf_FalseResult() throws IOException { - assertEquals(OBJ_FALSE_RESULT, SUT.readValue(JSON_FALSE_RESULT, RESULT_CLASS)); - } - - @Test - public void shouldFailOn_deserializationOf_JsonOf_Result_WithMissingField_IsConnected() throws IOException { - - thrown.expect(MismatchedInputException.class); - thrown.expectMessage(Matchers.containsString("Missing required creator property 'result'")); - - SUT.readValue(JSON_RESULT_MISSING_FIELD_IS_CONNECTED, RESULT_CLASS); - } - - private static ObjectMapper getSUT() { - - final ObjectMapper result = new ObjectMapper(); - result.registerModule(new QluaJsonModule()); - - return result; - } - - private static ParamRequest.Request getObjOfRequest() { - - return ParamRequest.Request.builder() - .classCode("1") - .secCode("2") - .dbName("3") - .build(); - } - - private static ParamRequest.Result getObjOfFalseResult() { - return ParamRequest.Result.getInstance(false); - } - - private static ParamRequest.Result getObjOfTrueResult() { - return ParamRequest.Result.getInstance(true); - } - - @SneakyThrows(IOException.class) - private static final String getJson(final String resourcePath) { - return Resources.toString(Resources.getResource(resourcePath), Charsets.UTF_8); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java deleted file mode 100644 index 8ab28b2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/PrintDbgStrJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class PrintDbgStrJsonSerdeTest { - - private static ObjectMapper sut; - - private static PrintDbgStr.Request requestObj; - private static PrintDbgStr.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new PrintDbgStr.Request("1"); - - resultObj = PrintDbgStr.Result.INSTANCE; - - requestJson = - Resources.toString(Resources.getResource("json/PrintDbgStr/request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/PrintDbgStr/result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final PrintDbgStr.Result actualResultObj = sut.readValue(resultJson, PrintDbgStr.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java deleted file mode 100644 index b50bb14..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/RGBJsonSerdeTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class RGBJsonSerdeTest { - - private static ObjectMapper sut; - - private static RGB.Request requestObj; - private static RGB.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = RGB.Request.builder() - .red(1) - .blue(2) - .green(3) - .build(); - - resultObj = new RGB.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/RGB.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/RGB.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final RGB.Result actualResultObj = sut.readValue(resultJson, RGB.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java deleted file mode 100644 index 53277fa..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItemsJsonSerdeTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SearchItemsJsonSerdeTest { - - private static ObjectMapper sut; - - private static SearchItems.Request fullArgsRequestObject; - private static SearchItems.Request requiredArgsRequestObject; - private static SearchItems.Result resultObj; - private static String fullArgsRequestJson; - private static String requiredArgsRequestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = SearchItems.Request.builder() - .tableName("1") - .startIndex(2) - .endIndex(3) - .fnDef("4") - .params("5") - .build(); - - requiredArgsRequestObject = SearchItems.Request.builder() - .tableName("1") - .startIndex(2) - .endIndex(3) - .fnDef("4") - .build(); - - resultObj = new SearchItems.Result(new int[] {1, 3, 5, 7, 9}); - - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/SearchItems.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/SearchItems.request_required_args.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SearchItems.result.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SearchItems.Result actualResultObj = sut.readValue(resultJson, SearchItems.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java deleted file mode 100644 index 794d4ba..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SendTransactionJsonSerdeTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SendTransactionJsonSerdeTest { - - private static ObjectMapper sut; - - private static SendTransaction.Request requestObj; - private static SendTransaction.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new SendTransaction.Request( - ImmutableMap.of( - "key_1", "value_1", - "key_2", "value_2", - "key_3", "value_3" - ) - ); - - resultObj = new SendTransaction.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/sendTransaction.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/sendTransaction.result.json"), Charsets.UTF_8); - } - - // The test might appear to be flaky though, as the map's iteration order is not strictly defined... - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SendTransaction.Result actualResultObj = sut.readValue(resultJson, SendTransaction.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java deleted file mode 100644 index 3efad9b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetCellJsonSerdeTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetCellJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetCell.Request requestObj; - private static SetCell.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetCell.Request.builder() - .tId(1) - .key(2) - .code(3) - .text("4") - .value(5.55) - .build(); - - resultObj = new SetCell.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/SetCell.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetCell.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetCell.Result actualResultObj = sut.readValue(resultJson, SetCell.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java deleted file mode 100644 index 7492a01..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetColorJsonSerdeTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetColorJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetColor.Request requestObj; - private static SetColor.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetColor.Request.builder() - .tId(1) - .row(2) - .col(3) - .bColor(4) - .fColor(5) - .selBColor(6) - .selFColor(7) - .build(); - - resultObj = new SetColor.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/SetColor.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetColor.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetColor.Result actualResultObj = sut.readValue(resultJson, SetColor.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java deleted file mode 100644 index 7a150aa..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetLabelParamsJsonSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetLabelParamsJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetLabelParams.Request requestObj; - private static SetLabelParams.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetLabelParams.Request.builder() - .chartTag("1") - .labelId(2) - .labelParams( - ImmutableMap.of( - "key_1", "value_1", - "key_2", "value_2", - "key_3", "value_3") - ) - .build(); - - resultObj = new SetLabelParams.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/SetLabelParams.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetLabelParams.result.json"), Charsets.UTF_8); - } - - // The test might appear to be flaky though, as the map's iteration order is not strictly defined... - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetLabelParams.Result actualResultObj = sut.readValue(resultJson, SetLabelParams.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java deleted file mode 100644 index b455e49..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetSelectedRowJsonSerdeTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetSelectedRowJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetSelectedRow.Request requestObj; - private static SetSelectedRow.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetSelectedRow.Request.builder() - .tableId(1) - .row(2) - .build(); - - resultObj = new SetSelectedRow.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/SetSelectedRow.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetSelectedRow.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetSelectedRow.Result actualResultObj = sut.readValue(resultJson, SetSelectedRow.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java deleted file mode 100644 index 9cf2a08..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetTableNotificationCallbackJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetTableNotificationCallbackJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetTableNotificationCallback.Request requestObj; - private static SetTableNotificationCallback.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new SetTableNotificationCallback.Request(1, "2"); - - resultObj = new SetTableNotificationCallback.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/SetTableNotificationCallback.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetTableNotificationCallback.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetTableNotificationCallback.Result actualResultObj = sut.readValue(resultJson, SetTableNotificationCallback.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java deleted file mode 100644 index 50da03d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowCaptionJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetWindowCaptionJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetWindowCaption.Request requestObj; - private static SetWindowCaption.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new SetWindowCaption.Request(1, "2"); - - resultObj = new SetWindowCaption.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/SetWindowCaption.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetWindowCaption.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetWindowCaption.Result actualResultObj = sut.readValue(resultJson, SetWindowCaption.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java deleted file mode 100644 index 60337a7..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SetWindowPosJsonSerdeTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetWindowPosJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetWindowPos.Request requestObj; - private static SetWindowPos.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetWindowPos.Request.builder() - .tId(1) - .x(2) - .y(3) - .dx(4) - .dy(5) - .build(); - - resultObj = new SetWindowPos.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/SetWindowPos.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/SetWindowPos.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetWindowPos.Result actualResultObj = sut.readValue(resultJson, SetWindowPos.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java deleted file mode 100644 index 32d5324..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SleepJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SleepJsonSerdeTest { - - private static ObjectMapper sut; - - private static Sleep.Request requestObj; - private static Sleep.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new Sleep.Request(1); - - resultObj = new Sleep.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/sleep.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/sleep.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final Sleep.Result actualResultObj = sut.readValue(resultJson, Sleep.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java deleted file mode 100644 index 19923a8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/SubscribeLevel2QuotesJsonSerdeTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SubscribeLevel2QuotesJsonSerdeTest { - - private static ObjectMapper sut; - - private static SubscribeLevel2Quotes.Request requestObj; - private static SubscribeLevel2Quotes.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SubscribeLevel2Quotes.Request.builder() - .classCode("1") - .secCode("2") - .build(); - - resultObj = new SubscribeLevel2Quotes.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/Subscribe_Level_II_Quotes.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/Subscribe_Level_II_Quotes.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SubscribeLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, SubscribeLevel2Quotes.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java deleted file mode 100644 index 57c14ed..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/UnsubscribeLevel2QuotesJsonSerdeTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class UnsubscribeLevel2QuotesJsonSerdeTest { - - private static ObjectMapper sut; - - private static UnsubscribeLevel2Quotes.Request requestObj; - private static UnsubscribeLevel2Quotes.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = UnsubscribeLevel2Quotes.Request.builder() - .classCode("1") - .secCode("2") - .build(); - - resultObj = new UnsubscribeLevel2Quotes.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/Unsubscribe_Level_II_Quotes.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/Unsubscribe_Level_II_Quotes.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final UnsubscribeLevel2Quotes.Result actualResultObj = sut.readValue(resultJson, UnsubscribeLevel2Quotes.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java deleted file mode 100644 index d39a60c..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BAndJsonSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class BAndJsonSerdeTest { - - private static ObjectMapper sut; - - private static BAnd.Request fullArgsRequestObject; - private static BAnd.Request requiredArgsRequestObject; - private static BAnd.Result resultObj; - private static String fullArgsRequestJson; - private static String requiredArgsRequestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = BAnd.Request.builder() - .x1(1) - .x2(2) - .xi(new int[] {3, 5, 7, 9}) - .build(); - - requiredArgsRequestObject = BAnd.Request.builder() - .x1(1) - .x2(2) - .build(); - - resultObj = new BAnd.Result(1); - - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.band.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.band.request_required_args.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.band.result.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final BAnd.Result actualResultObj = sut.readValue(resultJson, BAnd.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java deleted file mode 100644 index 763ca9d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BNotJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class BNotJsonSerdeTest { - - private static ObjectMapper sut; - - private static BNot.Request requestObj; - private static BNot.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new BNot.Request(1); - - resultObj = new BNot.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/bit.bnot.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.bnot.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final BNot.Result actualResultObj = sut.readValue(resultJson, BNot.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java deleted file mode 100644 index 47c2944..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BOrJsonSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class BOrJsonSerdeTest { - - private static ObjectMapper sut; - - private static BOr.Request fullArgsRequestObject; - private static BOr.Request requiredArgsRequestObject; - private static BOr.Result resultObj; - private static String fullArgsRequestJson; - private static String requiredArgsRequestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = BOr.Request.builder() - .x1(1) - .x2(2) - .xi(new int[] {3, 5, 7, 9}) - .build(); - - requiredArgsRequestObject = BOr.Request.builder() - .x1(1) - .x2(2) - .build(); - - resultObj = new BOr.Result(1); - - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.bor.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.bor.request_required_args.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.bor.result.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final BOr.Result actualResultObj = sut.readValue(resultJson, BOr.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java deleted file mode 100644 index ab2f8f1..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/BXorJsonSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class BXorJsonSerdeTest { - - private static ObjectMapper sut; - - private static BXor.Request fullArgsRequestObject; - private static BXor.Request requiredArgsRequestObject; - private static BXor.Result resultObj; - private static String fullArgsRequestJson; - private static String requiredArgsRequestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = BXor.Request.builder() - .x1(1) - .x2(2) - .xi(new int[] {3, 5, 7, 9}) - .build(); - - requiredArgsRequestObject = BXor.Request.builder() - .x1(1) - .x2(2) - .build(); - - resultObj = new BXor.Result(1); - - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.bxor.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/bit.bxor.request_required_args.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.bxor.result.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final BXor.Result actualResultObj = sut.readValue(resultJson, BXor.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java deleted file mode 100644 index 5caefdd..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/TestJsonSerdeTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class TestJsonSerdeTest { - - private static ObjectMapper sut; - - private static com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Request requestObj; - private static com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Request.builder() - .x(1) - .n(2) - .build(); - - resultObj = new com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/bit.test.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.test.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result actualResultObj = - sut.readValue(resultJson, com.enfernuz.quik.lua.rpc.api.messages.bit.Test.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java deleted file mode 100644 index 60be63d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/bit/ToHexJsonSerdeTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.bit; - -import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class ToHexJsonSerdeTest { - - private static ObjectMapper sut; - - private static ToHex.Request requestObj; - private static ToHex.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = ToHex.Request.builder() - .x(1) - .n(2) - .build(); - - resultObj = new ToHex.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/bit.tohex.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/bit.tohex.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final ToHex.Result actualResultObj = sut.readValue(resultJson, ToHex.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java deleted file mode 100644 index 96eeffb..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class CJsonSerdeTest { - - private static ObjectMapper sut; - - private static C.Request requestObj; - private static C.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new C.Request("1", 2); - - resultObj = new C.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.C.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.C.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final C.Result actualResultObj = sut.readValue(resultJson, C.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java deleted file mode 100644 index a37a8c3..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CloseJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class CloseJsonSerdeTest { - - private static ObjectMapper sut; - - private static Close.Request requestObj; - private static Close.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new Close.Request("1"); - - resultObj = new Close.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.Close.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.Close.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final Close.Result actualResultObj = sut.readValue(resultJson, Close.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java deleted file mode 100644 index 773a4f6..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/CreateDataSourceJsonSerdeTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class CreateDataSourceJsonSerdeTest { - - private static ObjectMapper sut; - - private static CreateDataSource.Request fullArgsRequestObject; - private static CreateDataSource.Request requiredArgsRequestObject; - private static CreateDataSource.Result successResultObj; - private static CreateDataSource.Result errorResultObj; - private static String fullArgsRequestJson; - private static String requiredArgsRequestJson; - private static String successResultJson; - private static String errorResultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - fullArgsRequestObject = CreateDataSource.Request.builder() - .classCode("1") - .secCode("2") - .interval(CreateDataSource.Interval.INTERVAL_M5) - .param("4") - .build(); - - requiredArgsRequestObject = CreateDataSource.Request.builder() - .classCode("1") - .secCode("2") - .interval(CreateDataSource.Interval.INTERVAL_M5) - .build(); - - successResultObj = CreateDataSource.Result.builder() - .datasourceUUID("1") - .error(false) - .build(); - - errorResultObj = CreateDataSource.Result.builder() - .error(true) - .errorDesc("2") - .build(); - - fullArgsRequestJson = - Resources.toString(Resources.getResource("json/datasource.CreateDataSource.request_full_args.json"), Charsets.UTF_8); - requiredArgsRequestJson = - Resources.toString(Resources.getResource("json/datasource.CreateDataSource.request_required_args.json"), Charsets.UTF_8); - successResultJson = - Resources.toString(Resources.getResource("json/datasource.CreateDataSource.result_success.json"), Charsets.UTF_8); - errorResultJson = - Resources.toString(Resources.getResource("json/datasource.CreateDataSource.result_error.json"), Charsets.UTF_8); - } - - @Test - public void testFullArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(fullArgsRequestObject); - - assertEquals(fullArgsRequestJson, actualRequestJson); - } - - @Test - public void testRequiredArgsRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requiredArgsRequestObject); - - assertEquals(requiredArgsRequestJson, actualRequestJson); - } - - @Test - public void testSuccessResultDeserialize() throws IOException { - - final CreateDataSource.Result actualResultObj = sut.readValue(successResultJson, CreateDataSource.Result.class); - - assertEquals(successResultObj, actualResultObj); - } - - @Test - public void testErrorResultDeserialize() throws IOException { - - final CreateDataSource.Result actualResultObj = sut.readValue(errorResultJson, CreateDataSource.Result.class); - - assertEquals(errorResultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java deleted file mode 100644 index 626f0a9..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/HJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class HJsonSerdeTest { - - private static ObjectMapper sut; - - private static H.Request requestObj; - private static H.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new H.Request("1", 2); - - resultObj = new H.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.H.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.H.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final H.Result actualResultObj = sut.readValue(resultJson, H.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java deleted file mode 100644 index feee3a2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/LJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class LJsonSerdeTest { - - private static ObjectMapper sut; - - private static L.Request requestObj; - private static L.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new L.Request("1", 2); - - resultObj = new L.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.L.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.L.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final L.Result actualResultObj = sut.readValue(resultJson, L.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java deleted file mode 100644 index 6ef7229..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/OJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class OJsonSerdeTest { - - private static ObjectMapper sut; - - private static O.Request requestObj; - private static O.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new O.Request("1", 2); - - resultObj = new O.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.O.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.O.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final O.Result actualResultObj = sut.readValue(resultJson, O.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java deleted file mode 100644 index c5eeff4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetEmptyCallbackJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetEmptyCallbackJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetEmptyCallback.Request requestObj; - private static SetEmptyCallback.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new SetEmptyCallback.Request("1"); - - resultObj = new SetEmptyCallback.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.SetEmptyCallback.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.SetEmptyCallback.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetEmptyCallback.Result actualResultObj = sut.readValue(resultJson, SetEmptyCallback.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java deleted file mode 100644 index b6eb378..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SetUpdateCallbackJsonSerdeTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SetUpdateCallbackJsonSerdeTest { - - private static ObjectMapper sut; - - private static SetUpdateCallback.Request requestObj; - private static SetUpdateCallback.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SetUpdateCallback.Request.builder() - .datasourceUUID("1") - .fCbDef("2") - .build(); - - resultObj = new SetUpdateCallback.Result(true); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.SetUpdateCallback.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.SetUpdateCallback.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SetUpdateCallback.Result actualResultObj = sut.readValue(resultJson, SetUpdateCallback.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java deleted file mode 100644 index 781a663..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/SizeJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SizeJsonSerdeTest { - - private static ObjectMapper sut; - - private static Size.Request requestObj; - private static Size.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new Size.Request("1"); - - resultObj = new Size.Result(1); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.Size.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.Size.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final Size.Result actualResultObj = sut.readValue(resultJson, Size.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java deleted file mode 100644 index 91f3d75..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/TJsonSerdeTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class TJsonSerdeTest { - - private static ObjectMapper sut; - - private static T.Request requestObj; - private static T.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new T.Request("1", 2); - - resultObj = T.Result.builder() - .year(1) - .month(2) - .day(3) - .weekDay(4) - .hour(5) - .min(6) - .sec(7) - .ms(8) - .count(9) - .build(); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.T.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.T.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final T.Result actualResultObj = sut.readValue(resultJson, T.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java deleted file mode 100644 index 2e60155..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/VJsonSerdeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.datasource; - -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class VJsonSerdeTest { - - private static ObjectMapper sut; - - private static V.Request requestObj; - private static V.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = new V.Request("1", 2); - - resultObj = new V.Result("1"); - - requestJson = - Resources.toString(Resources.getResource("json/datasource.V.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/datasource.V.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final V.Result actualResultObj = sut.readValue(resultJson, V.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java deleted file mode 100644 index 293ecf8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/messages/os/SysDateJsonSerdeTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.messages.os; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.json.jackson.QluaJsonModule; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.io.IOException; - -import static org.junit.Assert.assertEquals; - -public class SysDateJsonSerdeTest { - - private static ObjectMapper sut; - - private static SysDate.Request requestObj; - private static SysDate.Result resultObj; - private static String requestJson; - private static String resultJson; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = new ObjectMapper(); - sut.registerModule(new QluaJsonModule()); - - requestObj = SysDate.Request.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - - resultObj = new SysDate.Result(dateTimeEntry); - - requestJson = - Resources.toString(Resources.getResource("json/os.sysdate.request.json"), Charsets.UTF_8); - resultJson = - Resources.toString(Resources.getResource("json/os.sysdate.result.json"), Charsets.UTF_8); - } - - @Test - public void testRequestSerialize() throws IOException { - - final String actualRequestJson = sut.writerWithDefaultPrettyPrinter().writeValueAsString(requestObj); - - assertEquals(requestJson, actualRequestJson); - } - - @Test - public void testResultDeserialize() throws IOException { - - final SysDate.Result actualResultObj = sut.readValue(resultJson, SysDate.Result.class); - - assertEquals(resultObj, actualResultObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java deleted file mode 100644 index 466d2c1..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountBalanceJsonSerdeTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AccountBalanceJsonSerdeTest { - - private static SerdeModule sut; - - private static AccountBalance expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = AccountBalance.builder() - .firmId("1") - .secCode("2") - .trdAccId("3") - .depAccId("4") - .openBal("5") - .currentPos("6") - .plannedPosSell("7") - .plannedPosBuy("8") - .planBal("9") - .usqtyb("10") - .usqtys("11") - .planned("12") - .settleBal("13") - .bankAccId("14") - .firmUse(15) - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/AccountBalance.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final AccountBalance actualObject = sut.deserialize(AccountBalance.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actualObject); - } -} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java deleted file mode 100644 index 6f29bd2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AccountPositionJsonSerdeTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AccountPositionJsonSerdeTest { - - private static SerdeModule sut; - - private static AccountPosition expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = AccountPosition.builder() - .firmId("1") - .currCode("2") - .tag("3") - .description("4") - .openBal("5") - .currentPos("6") - .plannedPos("7") - .limit1("8") - .limit2("9") - .orderBuy("10") - .orderSell("11") - .netto("12") - .plannedBal("13") - .debit("14") - .credit("15") - .bankAccId("16") - .marginCall("17") - .settleBal("18") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/AccountPosition.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final AccountPosition actualObject = sut.deserialize(AccountPosition.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actualObject); - } -} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java deleted file mode 100644 index 1b83fa3..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/AllTradeJsonSerdeTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AllTradeJsonSerdeTest { - - private static SerdeModule sut; - - private static AllTrade expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - - expectedObject = AllTrade.builder() - .tradeNum(123456789012345L) - .flags(2) - .price("3") - .qty(4) - .value("5") - .accruedInt("6") - .yield("7") - .settleCode("8") - .repoRate("9") - .repoValue("10") - .repo2Value("11") - .repoTerm("12") - .secCode("13") - .classCode("14") - .datetime(dateTimeEntry) - .period(16) - .openInterest("17") - .exchangeCode("18") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/AllTrade.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final AllTrade actualObject = sut.deserialize(AllTrade.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actualObject); - } -} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java deleted file mode 100644 index 84c6966..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/ConnectedEventInfoJsonSerdeTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ConnectedEventInfoJsonSerdeTest { - - private static SerdeModule sut; - - private static ConnectedEventInfo expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = new ConnectedEventInfo(true); - - expectedJson = Resources.toString(Resources.getResource("json/structures/ConnectedEventInfo.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final ConnectedEventInfo actual = sut.deserialize(ConnectedEventInfo.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actual); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java deleted file mode 100644 index 23485af..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/DateTimeEntryJsonSerdeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DateTimeEntryJsonSerdeTest { - - private static SerdeModule sut; - - private static DateTimeEntry expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/DateTimeEntry.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final DateTimeEntry actualObject = sut.deserialize(DateTimeEntry.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actualObject); - } -} \ No newline at end of file diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java deleted file mode 100644 index db56c1f..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FirmJsonSerdeTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class FirmJsonSerdeTest { - - private static SerdeModule sut; - - private static Firm expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = Firm.builder() - .firmId("1") - .firmName("2") - .status(3) - .exchange("4") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/Firm.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final Firm actual = sut.deserialize(Firm.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actual); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java deleted file mode 100644 index de4d0f5..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHoldingJsonSerdeTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class FuturesClientHoldingJsonSerdeTest { - - private static SerdeModule sut; - - private static FuturesClientHolding futuresClientHolding; - private static String futuresClientHoldingAsJson; - private static byte[] futuresClientHoldingAsJsonBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - futuresClientHolding = FuturesClientHolding.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .startBuy("5") - .startSell("6") - .todayBuy("7") - .todaySell("8") - .totalNet("9") - .openBuys(10) - .openSells(11) - .cbplUsed("12") - .cbplPlanned("13") - .varMargin("14") - .avrPosnPrice("15") - .positionValue("16") - .realVarMargin("17") - .totalVarMargin("18") - .sessionStatus(19) - .build(); - - futuresClientHoldingAsJson = - Resources.toString(Resources.getResource("json/structures/FuturesClientHolding.json"), Charsets.UTF_8); - futuresClientHoldingAsJsonBytes = trimAndRemoveLineBreaks(futuresClientHoldingAsJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(futuresClientHolding); - - assertTrue( Arrays.equals(futuresClientHoldingAsJsonBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final FuturesClientHolding actual = sut.deserialize(FuturesClientHolding.class, futuresClientHoldingAsJsonBytes); - - assertEquals(futuresClientHolding, actual); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java deleted file mode 100644 index 3e653b2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitJsonSerdeTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class FuturesLimitJsonSerdeTest { - - private static SerdeModule sut; - - private static FuturesLimit expectedObj; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObj = FuturesLimit.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .liquidityCoef("4") - .cbpPrevLimit("5") - .cbpLimit("6") - .cbplUsed("7") - .cbplPlanned("8") - .varMargin("9") - .accruedInt("10") - .cbplUsedForOrders("11") - .cbplUsedForPositions("12") - .optionsPremium("13") - .tsComission("14") - .kgo("15") - .currCode("16") - .realVarMargin("17") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/FuturesLimit.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObj); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final FuturesLimit actualObj = sut.deserialize(FuturesLimit.class, expectedJsonAsBytes); - - assertEquals(expectedObj, actualObj); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java deleted file mode 100644 index aa22111..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/MoneyJsonSerdeTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MoneyJsonSerdeTest { - - private static SerdeModule sut; - - private static Money expectedObj; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObj = Money.builder() - .moneyOpenLimit("1") - .moneyLimitLockedNonMarginalValue("2") - .moneyLimitLocked("3") - .moneyOpenBalance("4") - .moneyCurrentLimit("5") - .moneyCurrentBalance("6") - .moneyLimitAvailable("7") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/Money.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObj); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final Money actual = sut.deserialize(Money.class, expectedJsonAsBytes); - - assertEquals(expectedObj, actual); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java deleted file mode 100644 index 22e0588..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/api/structures/PortfolioInfoJsonSerdeTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.enfernuz.quik.lua.rpc.api.structures; - -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; -import com.google.common.base.Charsets; -import com.google.common.io.Resources; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static com.enfernuz.quik.lua.rpc.serde.SerdeUtils.trimAndRemoveLineBreaks; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class PortfolioInfoJsonSerdeTest { - - private static SerdeModule sut; - - private static PortfolioInfo expectedObject; - private static String expectedJson; - private static byte[] expectedJsonAsBytes; - - @BeforeClass - public static void globalSetup() throws IOException { - - sut = JsonSerdeModule.INSTANCE; - - expectedObject = PortfolioInfo.builder() - .isLeverage("1") - .inAssets("2") - .leverage("3") - .openLimit("4") - .valShort("5") - .valLong("6") - .valLongMargin("7") - .valLongAsset("8") - .assets("9") - .curLeverage("10") - .margin("11") - .limAll("12") - .avLimAll("13") - .lockedBuy("14") - .lockedBuyMargin("15") - .lockedBuyAsset("16") - .lockedSell("17") - .lockedValueCoef("18") - .inAllAssets("19") - .allAssets("20") - .profitLoss("21") - .rateChange("22") - .limBuy("23") - .limSell("24") - .limNonMargin("25") - .limBuyAsset("26") - .valShortNet("27") - .valLongNet("28") - .totalMoneyBal("29") - .totalLockedMoney("30") - .haircuts("31") - .assetsWithoutHc("32") - .statusCoef("33") - .varMargin("34") - .goForPositions("35") - .goForOrders("36") - .rateFutures("37") - .isQualClient("38") - .isFutures("39") - .currTag("40") - .build(); - - expectedJson = Resources.toString(Resources.getResource("json/structures/PortfolioInfo.json"), Charsets.UTF_8); - expectedJsonAsBytes = trimAndRemoveLineBreaks(expectedJson).getBytes(Charsets.UTF_8); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedJsonAsBytes, actual) ); - } - - @Test - public void testDeserialize() { - - final PortfolioInfo actual = sut.deserialize(PortfolioInfo.class, expectedJsonAsBytes); - - assertEquals(expectedObject, actual); - } -} diff --git a/src/test/java/wip/AbstractJsonDeserializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonDeserializationTest.java similarity index 93% rename from src/test/java/wip/AbstractJsonDeserializationTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonDeserializationTest.java index 879f05e..a02c49c 100644 --- a/src/test/java/wip/AbstractJsonDeserializationTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonDeserializationTest.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.google.common.io.Resources; import org.junit.Test; diff --git a/src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonRpcArgsSerializationTest.java similarity index 94% rename from src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonRpcArgsSerializationTest.java index 41238ba..2f6f50d 100644 --- a/src/test/java/wip/AbstractJsonRpcArgsSerializationTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonRpcArgsSerializationTest.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.RpcArgs; import com.google.common.base.Charsets; diff --git a/src/test/java/wip/AbstractJsonSerdeModuleTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonSerdeModuleTest.java similarity index 84% rename from src/test/java/wip/AbstractJsonSerdeModuleTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonSerdeModuleTest.java index 199fc77..d6bdfd9 100644 --- a/src/test/java/wip/AbstractJsonSerdeModuleTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractJsonSerdeModuleTest.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.enfernuz.quik.lua.rpc.serde.json.JsonSerdeModule; diff --git a/src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractRpcResultJsonDeserializationTest.java similarity index 94% rename from src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractRpcResultJsonDeserializationTest.java index 47412a4..647fc7f 100644 --- a/src/test/java/wip/AbstractRpcResultJsonDeserializationTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AbstractRpcResultJsonDeserializationTest.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.RpcResult; import com.google.common.io.Resources; diff --git a/src/test/java/wip/AddColumnJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddColumnJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/AddColumnJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddColumnJsonSerdeTests.java index 5c1dcb6..e68559a 100644 --- a/src/test/java/wip/AddColumnJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddColumnJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/AddLabelJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddLabelJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/AddLabelJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddLabelJsonSerdeTests.java index 3d0ba7a..671e1ba 100644 --- a/src/test/java/wip/AddLabelJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AddLabelJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; import com.google.common.collect.ImmutableMap; diff --git a/src/test/java/wip/AllocTableJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AllocTableJsonSerdeTests.java similarity index 92% rename from src/test/java/wip/AllocTableJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AllocTableJsonSerdeTests.java index c164d74..1dd561b 100644 --- a/src/test/java/wip/AllocTableJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/AllocTableJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitBAndJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBAndJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/BitBAndJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBAndJsonSerdeTests.java index 177990f..63f5043 100644 --- a/src/test/java/wip/BitBAndJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBAndJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitBNotJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBNotJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/BitBNotJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBNotJsonSerdeTests.java index 90a4bcf..941beef 100644 --- a/src/test/java/wip/BitBNotJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBNotJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitBOrJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBOrJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/BitBOrJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBOrJsonSerdeTests.java index 71504ef..3495711 100644 --- a/src/test/java/wip/BitBOrJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBOrJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitBXorJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBXorJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/BitBXorJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBXorJsonSerdeTests.java index 0a5866e..af01435 100644 --- a/src/test/java/wip/BitBXorJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitBXorJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitTestJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitTestJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/BitTestJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitTestJsonSerdeTests.java index 8d19df0..f2153ee 100644 --- a/src/test/java/wip/BitTestJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitTestJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/BitToHexJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitToHexJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/BitToHexJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitToHexJsonSerdeTests.java index 4bce2a6..fdb28d9 100644 --- a/src/test/java/wip/BitToHexJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/BitToHexJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/CalcBuySellJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CalcBuySellJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/CalcBuySellJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CalcBuySellJsonSerdeTests.java index c9c2b5b..361eb07 100644 --- a/src/test/java/wip/CalcBuySellJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CalcBuySellJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/CancelParamRequestJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CancelParamRequestJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/CancelParamRequestJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CancelParamRequestJsonSerdeTests.java index c05991a..86e24a3 100644 --- a/src/test/java/wip/CancelParamRequestJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CancelParamRequestJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/ClearJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ClearJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/ClearJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ClearJsonSerdeTests.java index f949e8c..43f059c 100644 --- a/src/test/java/wip/ClearJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ClearJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.Clear; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/CreateWindowJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CreateWindowJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/CreateWindowJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CreateWindowJsonSerdeTests.java index 57b882b..f72ff99 100644 --- a/src/test/java/wip/CreateWindowJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/CreateWindowJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceCJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceCJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCJsonSerdeTests.java index 97ae545..8300154 100644 --- a/src/test/java/wip/DatasourceCJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceCloseJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCloseJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/DatasourceCloseJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCloseJsonSerdeTests.java index 34e4b47..d3af08f 100644 --- a/src/test/java/wip/DatasourceCloseJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCloseJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCreateDataSourceJsonSerdeTests.java similarity index 98% rename from src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCreateDataSourceJsonSerdeTests.java index 2a73664..58d074f 100644 --- a/src/test/java/wip/DatasourceCreateDataSourceJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceCreateDataSourceJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceHJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceHJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceHJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceHJsonSerdeTests.java index 1aa418c..da203c2 100644 --- a/src/test/java/wip/DatasourceHJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceHJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceLJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceLJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceLJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceLJsonSerdeTests.java index cb84b3c..befab77 100644 --- a/src/test/java/wip/DatasourceLJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceLJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceOJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceOJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceOJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceOJsonSerdeTests.java index a8eccd5..feeea16 100644 --- a/src/test/java/wip/DatasourceOJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceOJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetEmptyCallbackJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetEmptyCallbackJsonSerdeTests.java index 971ab19..d316e13 100644 --- a/src/test/java/wip/DatasourceSetEmptyCallbackJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetEmptyCallbackJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetUpdateCallbackJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetUpdateCallbackJsonSerdeTests.java index c58b09c..da703c9 100644 --- a/src/test/java/wip/DatasourceSetUpdateCallbackJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSetUpdateCallbackJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceSizeJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSizeJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceSizeJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSizeJsonSerdeTests.java index bb9406c..3e3f7b2 100644 --- a/src/test/java/wip/DatasourceSizeJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceSizeJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DatasourceTJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/DatasourceTJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java index e9e3fe2..77e8ea0 100644 --- a/src/test/java/wip/DatasourceTJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; import com.enfernuz.quik.lua.rpc.api.structures.DataSourceTime; diff --git a/src/test/java/wip/DatasourceVJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceVJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DatasourceVJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceVJsonSerdeTests.java index 11bfa51..b2db513 100644 --- a/src/test/java/wip/DatasourceVJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceVJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DelAllLabelsJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelAllLabelsJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DelAllLabelsJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelAllLabelsJsonSerdeTests.java index 27b38ff..3b04809 100644 --- a/src/test/java/wip/DelAllLabelsJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelAllLabelsJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DelLabelJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelLabelJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DelLabelJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelLabelJsonSerdeTests.java index 689fe1c..7617415 100644 --- a/src/test/java/wip/DelLabelJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DelLabelJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DeleteRowJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DeleteRowJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DeleteRowJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DeleteRowJsonSerdeTests.java index 53519aa..9e332fd 100644 --- a/src/test/java/wip/DeleteRowJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DeleteRowJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/DestroyTableJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DestroyTableJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/DestroyTableJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DestroyTableJsonSerdeTests.java index 2208810..d020fad 100644 --- a/src/test/java/wip/DestroyTableJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DestroyTableJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoExJsonSerdeTests.java similarity index 98% rename from src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoExJsonSerdeTests.java index 4b04d0e..d07635f 100644 --- a/src/test/java/wip/GetBuySellInfoExJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoExJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; diff --git a/src/test/java/wip/GetBuySellInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetBuySellInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoJsonSerdeTests.java index aef0867..9841d43 100644 --- a/src/test/java/wip/GetBuySellInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetBuySellInfoJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCandlesByIndexJsonSerdeTests.java similarity index 98% rename from src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCandlesByIndexJsonSerdeTests.java index 0174298..7ec84e2 100644 --- a/src/test/java/wip/GetCandlesByIndexJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCandlesByIndexJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; diff --git a/src/test/java/wip/GetCellJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCellJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetCellJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCellJsonSerdeTests.java index 69cde0c..c19f068 100644 --- a/src/test/java/wip/GetCellJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetCellJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetCell; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetClassInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassInfoJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetClassInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassInfoJsonSerdeTests.java index 42c7ced..4f83140 100644 --- a/src/test/java/wip/GetClassInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassInfoJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; diff --git a/src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassSecuritiesJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassSecuritiesJsonSerdeTests.java index 9b061fe..12bd172 100644 --- a/src/test/java/wip/GetClassSecuritiesJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassSecuritiesJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetClassesListJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassesListJsonSerdeTests.java similarity index 93% rename from src/test/java/wip/GetClassesListJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassesListJsonSerdeTests.java index cfba437..649d0ac 100644 --- a/src/test/java/wip/GetClassesListJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetClassesListJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetDepoExJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoExJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetDepoExJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoExJsonSerdeTests.java index 8e94aed..b13fae8 100644 --- a/src/test/java/wip/GetDepoExJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoExJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; diff --git a/src/test/java/wip/GetDepoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetDepoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoJsonSerdeTests.java index b686683..4a646de 100644 --- a/src/test/java/wip/GetDepoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetDepoJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.enfernuz.quik.lua.rpc.api.structures.Depo; diff --git a/src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesHoldingJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesHoldingJsonSerdeTests.java index ae85ed0..c182907 100644 --- a/src/test/java/wip/GetFuturesHoldingJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesHoldingJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; diff --git a/src/test/java/wip/GetFuturesLimitJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesLimitJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetFuturesLimitJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesLimitJsonSerdeTests.java index 853f082..992dbfb 100644 --- a/src/test/java/wip/GetFuturesLimitJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetFuturesLimitJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; diff --git a/src/test/java/wip/GetInfoParamJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetInfoParamJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/GetInfoParamJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetInfoParamJsonSerdeTests.java index 2d4e0f4..9858a09 100644 --- a/src/test/java/wip/GetInfoParamJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetInfoParamJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetItemJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetItemJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetItemJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetItemJsonSerdeTests.java index ef8ef50..ab336f8 100644 --- a/src/test/java/wip/GetItemJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetItemJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetItem; import com.google.common.collect.ImmutableMap; diff --git a/src/test/java/wip/GetLabelParamsJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLabelParamsJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetLabelParamsJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLabelParamsJsonSerdeTests.java index e7e22c2..18dbfe2 100644 --- a/src/test/java/wip/GetLabelParamsJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLabelParamsJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; import com.google.common.collect.ImmutableMap; diff --git a/src/test/java/wip/GetLinesCountJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLinesCountJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/GetLinesCountJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLinesCountJsonSerdeTests.java index 90c660f..5b60642 100644 --- a/src/test/java/wip/GetLinesCountJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetLinesCountJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetMoneyExJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyExJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetMoneyExJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyExJsonSerdeTests.java index 39a6bc5..3ad8c46 100644 --- a/src/test/java/wip/GetMoneyExJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyExJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; diff --git a/src/test/java/wip/GetMoneyJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetMoneyJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyJsonSerdeTests.java index 381e9f7..806755e 100644 --- a/src/test/java/wip/GetMoneyJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetMoneyJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; import com.enfernuz.quik.lua.rpc.api.structures.Money; diff --git a/src/test/java/wip/GetNumCandlesJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumCandlesJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/GetNumCandlesJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumCandlesJsonSerdeTests.java index 2884052..dfc3c32 100644 --- a/src/test/java/wip/GetNumCandlesJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumCandlesJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetNumberOfJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumberOfJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/GetNumberOfJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumberOfJsonSerdeTests.java index 18e4667..12962e4 100644 --- a/src/test/java/wip/GetNumberOfJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetNumberOfJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetOrderByNumberJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetOrderByNumberJsonSerdeTests.java similarity index 99% rename from src/test/java/wip/GetOrderByNumberJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetOrderByNumberJsonSerdeTests.java index 30396ad..11e2eca 100644 --- a/src/test/java/wip/GetOrderByNumberJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetOrderByNumberJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; diff --git a/src/test/java/wip/GetParamEx2JsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamEx2JsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetParamEx2JsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamEx2JsonSerdeTests.java index 69c8da8..7973025 100644 --- a/src/test/java/wip/GetParamEx2JsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamEx2JsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetParamExJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamExJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetParamExJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamExJsonSerdeTests.java index 8968f8b..e975eda 100644 --- a/src/test/java/wip/GetParamExJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetParamExJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoExJsonSerdeTests.java similarity index 99% rename from src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoExJsonSerdeTests.java index 1a836e3..a2d473a 100644 --- a/src/test/java/wip/GetPortfolioInfoExJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoExJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; diff --git a/src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoJsonSerdeTests.java similarity index 99% rename from src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoJsonSerdeTests.java index 36e4f72..1f97ec3 100644 --- a/src/test/java/wip/GetPortfolioInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetPortfolioInfoJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; diff --git a/src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetQuoteLevel2JsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetQuoteLevel2JsonSerdeTests.java index 70789b5..164bf4b 100644 --- a/src/test/java/wip/GetQuoteLevel2JsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetQuoteLevel2JsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; import com.google.common.collect.ImmutableList; diff --git a/src/test/java/wip/GetScriptPathJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetScriptPathJsonSerdeTests.java similarity index 92% rename from src/test/java/wip/GetScriptPathJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetScriptPathJsonSerdeTests.java index f4ebfbc..2042848 100644 --- a/src/test/java/wip/GetScriptPathJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetScriptPathJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetSecurityInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetSecurityInfoJsonSerdeTests.java similarity index 98% rename from src/test/java/wip/GetSecurityInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetSecurityInfoJsonSerdeTests.java index 016d3ef..aa9b9e5 100644 --- a/src/test/java/wip/GetSecurityInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetSecurityInfoJsonSerdeTests.java @@ -1,8 +1,7 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; import com.enfernuz.quik.lua.rpc.api.structures.Security; -import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; diff --git a/src/test/java/wip/GetTableSizeJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTableSizeJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetTableSizeJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTableSizeJsonSerdeTests.java index 601d035..32628ac 100644 --- a/src/test/java/wip/GetTableSizeJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTableSizeJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetTradeDateJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTradeDateJsonSerdeTests.java similarity index 94% rename from src/test/java/wip/GetTradeDateJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTradeDateJsonSerdeTests.java index 0c80a61..6339d95 100644 --- a/src/test/java/wip/GetTradeDateJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetTradeDateJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetWindowCaptionJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowCaptionJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/GetWindowCaptionJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowCaptionJsonSerdeTests.java index 5f6a315..4edc123 100644 --- a/src/test/java/wip/GetWindowCaptionJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowCaptionJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetWindowRectJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowRectJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/GetWindowRectJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowRectJsonSerdeTests.java index 3c0d2a7..064412e 100644 --- a/src/test/java/wip/GetWindowRectJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWindowRectJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/GetWorkingFolderJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWorkingFolderJsonSerdeTests.java similarity index 93% rename from src/test/java/wip/GetWorkingFolderJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWorkingFolderJsonSerdeTests.java index 446c333..010800c 100644 --- a/src/test/java/wip/GetWorkingFolderJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/GetWorkingFolderJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/HighlightJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/HighlightJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/HighlightJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/HighlightJsonSerdeTests.java index 8104efd..1ebc7ad 100644 --- a/src/test/java/wip/HighlightJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/HighlightJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.Highlight; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/InsertRowJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/InsertRowJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/InsertRowJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/InsertRowJsonSerdeTests.java index d38f748..20431d8 100644 --- a/src/test/java/wip/InsertRowJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/InsertRowJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/IsConnectedJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsConnectedJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/IsConnectedJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsConnectedJsonSerdeTests.java index e5dbb2e..cea67c1 100644 --- a/src/test/java/wip/IsConnectedJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsConnectedJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsSubscribedLevel2QuotesJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsSubscribedLevel2QuotesJsonSerdeTests.java index f6793f1..32d37fc 100644 --- a/src/test/java/wip/IsSubscribedLevel2QuotesJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsSubscribedLevel2QuotesJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/IsWindowClosedJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsWindowClosedJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/IsWindowClosedJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsWindowClosedJsonSerdeTests.java index 01b9b91..011d307 100644 --- a/src/test/java/wip/IsWindowClosedJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/IsWindowClosedJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/MessageJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/MessageJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/MessageJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/MessageJsonSerdeTests.java index c0c87d8..b28d4a9 100644 --- a/src/test/java/wip/MessageJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/MessageJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.Message; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/ParamRequestJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ParamRequestJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/ParamRequestJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ParamRequestJsonSerdeTests.java index ef89297..53e754b 100644 --- a/src/test/java/wip/ParamRequestJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/ParamRequestJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/PrintDbgStrJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/PrintDbgStrJsonSerdeTests.java similarity index 92% rename from src/test/java/wip/PrintDbgStrJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/PrintDbgStrJsonSerdeTests.java index 0cbf288..2191028 100644 --- a/src/test/java/wip/PrintDbgStrJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/PrintDbgStrJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/RGBJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/RGBJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/RGBJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/RGBJsonSerdeTests.java index d1c665d..120b5cb 100644 --- a/src/test/java/wip/RGBJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/RGBJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.RGB; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SearchItemsJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java similarity index 98% rename from src/test/java/wip/SearchItemsJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java index aacad13..24e9f85 100644 --- a/src/test/java/wip/SearchItemsJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SendTransactionJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SendTransactionJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/SendTransactionJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SendTransactionJsonSerdeTests.java index 38de084..a559f77 100644 --- a/src/test/java/wip/SendTransactionJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SendTransactionJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; import com.google.common.collect.ImmutableMap; diff --git a/src/test/java/wip/SetCellJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetCellJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetCellJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetCellJsonSerdeTests.java index 5b78494..d041145 100644 --- a/src/test/java/wip/SetCellJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetCellJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetCell; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SetColorJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetColorJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetColorJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetColorJsonSerdeTests.java index 26fb0a5..151f2c7 100644 --- a/src/test/java/wip/SetColorJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetColorJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetColor; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SetLabelParamsJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetLabelParamsJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetLabelParamsJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetLabelParamsJsonSerdeTests.java index 079deb0..5cd11bb 100644 --- a/src/test/java/wip/SetLabelParamsJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetLabelParamsJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; import com.google.common.collect.ImmutableMap; diff --git a/src/test/java/wip/SetSelectedRowJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetSelectedRowJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetSelectedRowJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetSelectedRowJsonSerdeTests.java index 7e6f881..1293a50 100644 --- a/src/test/java/wip/SetSelectedRowJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetSelectedRowJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetTableNotificationCallbackJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetTableNotificationCallbackJsonSerdeTests.java index d0ac0d9..367c4bb 100644 --- a/src/test/java/wip/SetTableNotificationCallbackJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetTableNotificationCallbackJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SetWindowCaptionJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowCaptionJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/SetWindowCaptionJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowCaptionJsonSerdeTests.java index 156edbc..0a93340 100644 --- a/src/test/java/wip/SetWindowCaptionJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowCaptionJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SetWindowPosJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowPosJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SetWindowPosJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowPosJsonSerdeTests.java index 7130b23..dce0017 100644 --- a/src/test/java/wip/SetWindowPosJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SetWindowPosJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SleepJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SleepJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/SleepJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SleepJsonSerdeTests.java index e11ede4..5ae48e0 100644 --- a/src/test/java/wip/SleepJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SleepJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.Sleep; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SubscribeLevel2QuotesJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SubscribeLevel2QuotesJsonSerdeTests.java index a6aa279..22f61f4 100644 --- a/src/test/java/wip/SubscribeLevel2QuotesJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SubscribeLevel2QuotesJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/SysdateJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SysdateJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/SysdateJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SysdateJsonSerdeTests.java index 4e081ed..6d248da 100644 --- a/src/test/java/wip/SysdateJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SysdateJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; diff --git a/src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/UnsubscribeLevel2QuotesJsonSerdeTests.java similarity index 97% rename from src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/UnsubscribeLevel2QuotesJsonSerdeTests.java index bc0e6b1..9446cef 100644 --- a/src/test/java/wip/UnsubscribeLevel2QuotesJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/UnsubscribeLevel2QuotesJsonSerdeTests.java @@ -1,4 +1,4 @@ -package wip; +package com.enfernuz.quik.lua.rpc.serde.json; import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; import org.junit.experimental.runners.Enclosed; diff --git a/src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountBalanceJsonSerdeTests.java similarity index 89% rename from src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountBalanceJsonSerdeTests.java index 86974c6..3166936 100644 --- a/src/test/java/wip/structures/AccountBalanceJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountBalanceJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class AccountBalanceJsonSerdeTests { diff --git a/src/test/java/wip/structures/AccountPositionJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountPositionJsonSerdeTests.java similarity index 90% rename from src/test/java/wip/structures/AccountPositionJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountPositionJsonSerdeTests.java index f5e2a7b..7e639e8 100644 --- a/src/test/java/wip/structures/AccountPositionJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AccountPositionJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class AccountPositionJsonSerdeTests { diff --git a/src/test/java/wip/structures/AllTradeJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AllTradeJsonSerdeTests.java similarity index 92% rename from src/test/java/wip/structures/AllTradeJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AllTradeJsonSerdeTests.java index 1162177..f2f4451 100644 --- a/src/test/java/wip/structures/AllTradeJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/AllTradeJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class AllTradeJsonSerdeTests { diff --git a/src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ConnectedEventInfoSerdeTests.java similarity index 88% rename from src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ConnectedEventInfoSerdeTests.java index 5664617..3cd7ef9 100644 --- a/src/test/java/wip/structures/ConnectedEventInfoSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ConnectedEventInfoSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class ConnectedEventInfoSerdeTests { diff --git a/src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitDeleteJsonSerdeTests.java similarity index 85% rename from src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitDeleteJsonSerdeTests.java index 80e5abf..522c416 100644 --- a/src/test/java/wip/structures/DepoLimitDeleteJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitDeleteJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class DepoLimitDeleteJsonSerdeTests { diff --git a/src/test/java/wip/structures/DepoLimitJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitJsonSerdeTests.java similarity index 89% rename from src/test/java/wip/structures/DepoLimitJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitJsonSerdeTests.java index 917d334..f7708d3 100644 --- a/src/test/java/wip/structures/DepoLimitJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/DepoLimitJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class DepoLimitJsonSerdeTests { diff --git a/src/test/java/wip/structures/FirmJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FirmJsonSerdeTests.java similarity index 83% rename from src/test/java/wip/structures/FirmJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FirmJsonSerdeTests.java index 96f9912..0bcca50 100644 --- a/src/test/java/wip/structures/FirmJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FirmJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.Firm; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class FirmJsonSerdeTests { diff --git a/src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesClientHoldingJsonSerdeTests.java similarity index 90% rename from src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesClientHoldingJsonSerdeTests.java index dab9d25..e7c6e34 100644 --- a/src/test/java/wip/structures/FuturesClientHoldingJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesClientHoldingJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class FuturesClientHoldingJsonSerdeTests { diff --git a/src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitDeleteJsonSerdeTests.java similarity index 83% rename from src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitDeleteJsonSerdeTests.java index 50d8407..ca20cfe 100644 --- a/src/test/java/wip/structures/FuturesLimitDeleteJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitDeleteJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class FuturesLimitDeleteJsonSerdeTests { diff --git a/src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitJsonSerdeTests.java similarity index 90% rename from src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitJsonSerdeTests.java index 66b5c05..c98cfea 100644 --- a/src/test/java/wip/structures/FuturesLimitJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/FuturesLimitJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class FuturesLimitJsonSerdeTests { diff --git a/src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitDeleteJsonSerdeTests.java similarity index 85% rename from src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitDeleteJsonSerdeTests.java index a4fe214..8ced720 100644 --- a/src/test/java/wip/structures/MoneyLimitDeleteJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitDeleteJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class MoneyLimitDeleteJsonSerdeTests { diff --git a/src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitJsonSerdeTests.java similarity index 89% rename from src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitJsonSerdeTests.java index ac3a3fa..3b9f358 100644 --- a/src/test/java/wip/structures/MoneyLimitJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/MoneyLimitJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class MoneyLimitJsonSerdeTests { diff --git a/src/test/java/wip/structures/NegDealJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegDealJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/structures/NegDealJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegDealJsonSerdeTests.java index 0ddb243..df28c65 100644 --- a/src/test/java/wip/structures/NegDealJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegDealJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class NegDealJsonSerdeTests { diff --git a/src/test/java/wip/structures/NegTradeJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegTradeJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/structures/NegTradeJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegTradeJsonSerdeTests.java index 9e7443b..8a71d82 100644 --- a/src/test/java/wip/structures/NegTradeJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/NegTradeJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class NegTradeJsonSerdeTests { diff --git a/src/test/java/wip/structures/OrderJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/OrderJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/structures/OrderJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/OrderJsonSerdeTests.java index c666c95..383984d 100644 --- a/src/test/java/wip/structures/OrderJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/OrderJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class OrderJsonSerdeTests { diff --git a/src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ParamEventInfoJsonSerdeTests.java similarity index 83% rename from src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ParamEventInfoJsonSerdeTests.java index d648d83..9b14934 100644 --- a/src/test/java/wip/structures/ParamEventInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/ParamEventInfoJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class ParamEventInfoJsonSerdeTests { diff --git a/src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/QuoteEventInfoJsonSerdeTests.java similarity index 83% rename from src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/QuoteEventInfoJsonSerdeTests.java index e307f00..e944ad6 100644 --- a/src/test/java/wip/structures/QuoteEventInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/QuoteEventInfoJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class QuoteEventInfoJsonSerdeTests { diff --git a/src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopEventInfoJsonSerdeTests.java similarity index 91% rename from src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopEventInfoJsonSerdeTests.java index 9dc6c29..7c8e6ab 100644 --- a/src/test/java/wip/structures/StopEventInfoJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopEventInfoJsonSerdeTests.java @@ -1,9 +1,9 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class StopEventInfoJsonSerdeTests { diff --git a/src/test/java/wip/structures/StopOrderJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopOrderJsonSerdeTests.java similarity index 95% rename from src/test/java/wip/structures/StopOrderJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopOrderJsonSerdeTests.java index 3d10c89..ba977cb 100644 --- a/src/test/java/wip/structures/StopOrderJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/StopOrderJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class StopOrderJsonSerdeTests { diff --git a/src/test/java/wip/structures/TradeJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TradeJsonSerdeTests.java similarity index 96% rename from src/test/java/wip/structures/TradeJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TradeJsonSerdeTests.java index 63a78cf..4eec045 100644 --- a/src/test/java/wip/structures/TradeJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TradeJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.Trade; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class TradeJsonSerdeTests { diff --git a/src/test/java/wip/structures/TransReplyJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TransReplyJsonSerdeTests.java similarity index 94% rename from src/test/java/wip/structures/TransReplyJsonSerdeTests.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TransReplyJsonSerdeTests.java index a23e3e7..7f9540f 100644 --- a/src/test/java/wip/structures/TransReplyJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/structures/TransReplyJsonSerdeTests.java @@ -1,10 +1,10 @@ -package wip.structures; +package com.enfernuz.quik.lua.rpc.serde.json.structures; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.TransReply; +import com.enfernuz.quik.lua.rpc.serde.json.AbstractJsonDeserializationTest; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; -import wip.AbstractJsonDeserializationTest; @RunWith(Enclosed.class) public class TransReplyJsonSerdeTests { From bab60f8ffed822fbc31448d4207537f856f287bd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 5 Nov 2018 23:05:20 +0300 Subject: [PATCH 350/549] Reimplementing protobuf serde tests. --- .../AbstractPbDeserializationTest.java | 33 +++ .../protobuf/AbstractPbSerializationTest.java | 33 +++ .../protobuf/AbstractResultPbSerdeTest.java | 8 - .../protobuf/AccountPositionPbSerdeTest.java | 107 ------- .../protobuf/AddColumnRequestPbSerdeTest.java | 99 ------- .../protobuf/AddColumnResultPbSerdeTest.java | 47 --- .../protobuf/AddLabelRequestPbSerdeTest.java | 67 ----- .../protobuf/AddLabelResultPbSerdeTest.java | 47 --- .../AllocTableRequestPbSerdeTest.java | 49 --- .../protobuf/AllocTableResultPbSerdeTest.java | 47 --- .../protobuf/BuySellInfoExPbSerdeTest.java | 142 --------- .../CalcBuySellResultPbSerdeTest.java | 48 --- .../CancelParamRequestResultPbSerdeTest.java | 47 --- .../serde/protobuf/ClassInfoPbSerdeTest.java | 81 ----- .../CreateWindowResultPbSerdeTest.java | 47 --- .../protobuf/DateTimeEntryPbSerdeTest.java | 89 ------ .../protobuf/DelLabelRequestPbSerdeTest.java | 56 ---- .../protobuf/DeleteRowRequestPbSerdeTest.java | 56 ---- .../protobuf/DeleteRowResultPbSerdeTest.java | 47 --- .../rpc/serde/protobuf/DepoPbSerdeTest.java | 86 ------ .../DestroyTableResultPbSerdeTest.java | 47 --- .../protobuf/FuturesLimitPbSerdeTest.java | 104 ------- .../GetBuySellInfoExRequestPbSerdeTest.java | 65 ---- .../GetBuySellInfoRequestPbSerdeTest.java | 65 ---- .../GetCandlesByIndexRequestPbSerdeTest.java | 63 ---- .../GetClassInfoResultPbSerdeTest.java | 86 ------ .../GetClassSecuritiesRequestPbSerdeTest.java | 52 ---- .../GetClassSecuritiesResultPbSerdeTest.java | 70 ----- .../GetClassesListRequestPbSerdeTest.java | 49 --- .../protobuf/GetDepoExRequestPbSerdeTest.java | 62 ---- .../protobuf/GetDepoExResultPbSerdeTest.java | 105 ------- .../GetInfoParamResultPbSerdeTest.java | 44 --- .../GetLabelParamsRequestPbSerdeTest.java | 53 ---- .../GetLabelParamsResultPbSerdeTest.java | 78 ----- .../GetLinesCountRequestPbSerdeTest.java | 52 ---- .../GetLinesCountResultPbSerdeTest.java | 44 --- .../GetMoneyExRequestPbSerdeTest.java | 49 --- .../protobuf/GetMoneyRequestPbSerdeTest.java | 48 --- .../GetNumCandlesResultPbSerdeTest.java | 28 -- .../GetNumberOfRequestPbSerdeTest.java | 35 --- .../GetNumberOfResultPbSerdeTest.java | 28 -- .../GetOrderByNumberRequestPbSerdeTest.java | 37 --- .../GetParamEx2RequestPbSerdeTest.java | 43 --- .../GetPortfolioInfoExResultPbSerdeTest.java | 279 ------------------ .../GetPortfolioInfoRequestPbSerdeTest.java | 40 --- .../GetPortfolioInfoResultPbSerdeTest.java | 185 ------------ .../GetQuoteLevel2ResultPbSerdeTest.java | 65 ---- .../GetScriptPathRequestPbSerdeTest.java | 31 -- .../GetScriptPathResultPbSerdeTest.java | 28 -- .../GetSecurityInfoRequestPbSerdeTest.java | 40 --- .../GetSecurityInfoResultPbSerdeTest.java | 101 ------- .../GetTableSizeRequestPbSerdeTest.java | 35 --- .../GetTableSizeResultPbSerdeTest.java | 69 ----- .../GetTradeDateRequestPbSerdeTest.java | 31 -- .../GetWindowRectRequestPbSerdeTest.java | 35 --- .../GetWindowRectResultPbSerdeTest.java | 75 ----- .../protobuf/HighlightRequestPbSerdeTest.java | 52 ---- .../protobuf/HighlightResultPbSerdeTest.java | 51 ---- .../protobuf/InsertRowResultPbSerdeTest.java | 28 -- .../IsConnectedResultPbSerdeTest.java | 51 ---- ...scribedLevel2QuotesRequestPbSerdeTest.java | 40 --- ...bscribedLevel2QuotesResultPbSerdeTest.java | 51 ---- .../IsWindowClosedRequestPbSerdeTest.java | 35 --- .../IsWindowClosedResultPbSerdeTest.java | 68 ----- .../protobuf/MoneyLimitDeletePbSerdeTest.java | 75 ----- .../serde/protobuf/MoneyLimitPbSerdeTest.java | 97 ------ .../rpc/serde/protobuf/MoneyPbSerdeTest.java | 84 ------ .../serde/protobuf/NegDealPbSerdeTest.java | 191 ------------ .../rpc/serde/protobuf/OrderPbSerdeTest.java | 179 ----------- .../protobuf/ParamEventInfoPbSerdeTest.java | 75 ----- ....java => ParamRequestArgsPbSerdeTest.java} | 22 +- .../ParamRequestResultPbSerdeTest.java | 51 ---- .../protobuf/PortfolioInfoPbSerdeTest.java | 148 ---------- .../protobuf/QuoteEventInfoPbSerdeTest.java | 75 ----- .../protobuf/ResponseEnvelopePbSerdeTest.java | 82 ----- .../serde/protobuf/SecurityPbSerdeTest.java | 89 ------ .../protobuf/ServiceErrorPbSerdeTest.java | 73 ----- .../serde/protobuf/StopOrderPbSerdeTest.java | 184 ------------ .../rpc/serde/protobuf/TradePbSerdeTest.java | 206 ------------- .../serde/protobuf/TransReplyPbSerdeTest.java | 140 --------- 80 files changed, 74 insertions(+), 5630 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerializationTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{ParamRequestRequestPbSerdeTest.java => ParamRequestArgsPbSerdeTest.java} (54%) delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java new file mode 100644 index 0000000..02954ff --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public abstract class AbstractPbDeserializationTest { + + @NotNull + public abstract Class getTargetObjectClass(); + + @NotNull + public abstract TARGET_OBJECT getTargetObject(); + + @NotNull + public abstract PB_OBJECT getTargetObjectAsPbMessage(); + + @NotNull + public abstract Deserializer getDeserializerUnderTest(); + + @Test + public void shouldDeserialize_ByteArrayOf_PbTargetObject_To_TargetObject() { + assertEquals(getTargetObject(), getDeserializerUnderTest().deserialize(getTargetObjectPbSerializedForm())); + } + + private byte[] getTargetObjectPbSerializedForm() { + return getTargetObjectAsPbMessage().toByteArray(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerializationTest.java new file mode 100644 index 0000000..4141a18 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbSerializationTest.java @@ -0,0 +1,33 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.protobuf.MessageLite; +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertTrue; + +abstract class AbstractPbSerializationTest { + + @NotNull + public abstract PB_OBJECT getTargetObjectAsPbMessage(); + + public abstract TARGET_OBJECT getTargetObject(); + + @NotNull + public abstract Serializer getSerializerUnderTest(); + + @Test + public void shouldSerialize_TargetObject_To_ByteArrayOf_PbTargetObject() { + + assertTrue( + Arrays.equals(getTargetObjectPbSerializedForm(), getSerializerUnderTest().serialize(getTargetObject())) + ); + } + + private byte[] getTargetObjectPbSerializedForm() { + return getTargetObjectAsPbMessage().toByteArray(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java deleted file mode 100644 index 8ceecbb..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractResultPbSerdeTest.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.google.protobuf.MessageLite; - -public abstract class AbstractResultPbSerdeTest extends AbstractPbSerdeTest { - - -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java deleted file mode 100644 index 5fd7e3e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AccountPositionPbSerdeTest { - - private static SerdeModule sut; - - private static AccountPosition expectedObject; - private static byte[] expectedPbInput; - - private static AccountPosition expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = AccountPosition.builder() - .firmId("1") - .currCode("2") - .tag("3") - .description("4") - .openBal("5") - .currentPos("6") - .plannedPos("7") - .limit1("8") - .limit2("9") - .orderBuy("10") - .orderSell("11") - .netto("12") - .plannedBal("13") - .debit("14") - .credit("15") - .bankAccId("16") - .marginCall("17") - .settleBal("18") - .build(); - expectedPbInput = QluaStructures.AccountPosition.newBuilder() - .setFirmid("1") - .setCurrcode("2") - .setTag("3") - .setDescription("4") - .setOpenbal("5") - .setCurrentpos("6") - .setPlannedpos("7") - .setLimit1("8") - .setLimit2("9") - .setOrderbuy("10") - .setOrdersell("11") - .setNetto("12") - .setPlannedbal("13") - .setDebit("14") - .setCredit("15") - .setBankAccId("16") - .setMargincall("17") - .setSettlebal("18") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = AccountPosition.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.AccountPosition.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(AccountPosition.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(AccountPosition.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java deleted file mode 100644 index 0096f5a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnRequestPbSerdeTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AddColumnRequestPbSerdeTest { - - private static SerdeModule sut; - - private static AddColumn.Request expectedObject; - private static byte[] expectedPbInput; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = AddColumn.Request.builder() - .tId(1) - .iCode(2) - .name("3") - .parType(AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) - .isDefault(true) - .width(6) - .build(); - final ByteString pbArgs = qlua.rpc.AddColumn.Request.newBuilder() - .setTId(1) - .setIcode(2) - .setName("3") - .setParType(qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE) // TODO: add tests for all the enum values - .setIsDefault(true) - .setWidth(6) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.ADD_COLUMN) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AddColumn.Request actualObject = sut.deserialize(AddColumn.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializeWithUndefinedColumnParameterType() { - - final ByteString pbArgs = qlua.rpc.AddColumn.Request.newBuilder() - .setTId(1) - .setIcode(2) - .setName("3") - .setParType(qlua.rpc.AddColumn.ColumnParameterType.UNDEFINED) - .setIsDefault(true) - .setWidth(6) - .build() - .toByteString(); - final byte[] pbRequestAsBytes = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.ADD_COLUMN) - .setArgs(pbArgs) - .build() - .toByteArray(); - - thrown.expect(SerdeException.class); - thrown.expectCause( instanceOf(IllegalArgumentException.class) ); - - sut.deserialize(AddColumn.Request.class, pbRequestAsBytes); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java deleted file mode 100644 index bb4a3ef..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AddColumnResultPbSerdeTest { - - private static SerdeModule sut; - - private static AddColumn.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new AddColumn.Result(1); - expectedPbInput = qlua.rpc.AddColumn.Result.newBuilder() - .setResult(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AddColumn.Result actualObject = sut.deserialize(AddColumn.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java deleted file mode 100644 index 517f708..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelRequestPbSerdeTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.common.collect.ImmutableMap; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AddLabelRequestPbSerdeTest { - - private static SerdeModule sut; - - private static AddLabel.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final Map labelParams = - ImmutableMap.of( - "key1", "value1", - "key2", "value2", - "key3", "value3" - ); - expectedObject = AddLabel.Request.builder() - .chartTag("1") - .labelParams(labelParams) - .build(); - final ByteString pbArgs = qlua.rpc.AddLabel.Request.newBuilder() - .setChartTag("1") - .putAllLabelParams(labelParams) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.ADD_LABEL) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AddLabel.Request actualObject = sut.deserialize(AddLabel.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java deleted file mode 100644 index 6d78dde..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AddLabelResultPbSerdeTest { - - private static SerdeModule sut; - - private static AddLabel.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new AddLabel.Result(1); - expectedPbInput = qlua.rpc.AddLabel.Result.newBuilder() - .setLabelId(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AddLabel.Result actualObject = sut.deserialize(AddLabel.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java deleted file mode 100644 index cc478a4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableRequestPbSerdeTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AllocTableRequestPbSerdeTest { - - private static SerdeModule sut; - - private static AllocTable.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = AllocTable.Request.INSTANCE; - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.ALLOC_TABLE) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AllocTable.Request actualObject = sut.deserialize(AllocTable.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java deleted file mode 100644 index 80572d8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AllocTableResultPbSerdeTest { - - private static SerdeModule sut; - - private static AllocTable.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new AllocTable.Result(1); - expectedPbInput = qlua.rpc.AllocTable.Result.newBuilder() - .setTId(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final AllocTable.Result actualObject = sut.deserialize(AllocTable.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java deleted file mode 100644 index 2e8dec1..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoExPbSerdeTest.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx.BuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class BuySellInfoExPbSerdeTest { - - private static SerdeModule sut; - - private static BuySellInfoEx expectedObject; - private static byte[] expectedPbInput; - - private static BuySellInfoEx expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() - .isMarginSec("1") - .isAssetSec("2") - .balance("3") - .canBuy("4") - .canSell("5") - .positionValuation("6") - .value("7") - .openValue("8") - .limLong("9") - .longCoef("10") - .limShort("11") - .shortCoef("12") - .valueCoef("13") - .openValueCoef("14") - .share("15") - .shortWaPrice("16") - .longWaPrice("17") - .profitLoss("18") - .spreadHc("19") - .canBuyOwn("20") - .canSellOwn("12") - .build(); - final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() - .setIsMarginSec("1") - .setIsAssetSec("2") - .setBalance("3") - .setCanBuy("4") - .setCanSell("5") - .setPositionValuation("6") - .setValue("7") - .setOpenValue("8") - .setLimLong("9") - .setLongCoef("10") - .setLimShort("11") - .setShortCoef("12") - .setValueCoef("13") - .setOpenValueCoef("14") - .setShare("15") - .setShortWaPrice("16") - .setLongWaPrice("17") - .setProfitLoss("18") - .setSpreadHc("19") - .setCanBuyOwn("20") - .setCanSellOwn("12") - .build(); - - expectedObject = BuySellInfoEx.builder() - .buySellInfo(buySellInfo) - .limitKind("2") - .dLong("3") - .dMinLong("4") - .dShort("5") - .dMinShort("6") - .clientType("7") - .isLongAllowed("8") - .isShortAllowed("9") - .build(); - - expectedPbInput = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() - .setBuySellInfo(pbBuySellInfo) - .setLimitKind("2") - .setDLong("3") - .setDMinLong("4") - .setDShort("5") - .setDMinShort("6") - .setClientType("7") - .setIsLongAllowed("8") - .setIsShortAllowed("9") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = BuySellInfoEx.builder() - .buySellInfo(buySellInfo) - .build(); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() - .setBuySellInfo(pbBuySellInfo) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(BuySellInfoEx.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(BuySellInfoEx.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java deleted file mode 100644 index f3af229..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CalcBuySellResultPbSerdeTest { - - private static SerdeModule sut; - - private static CalcBuySell.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new CalcBuySell.Result(1, "2"); - expectedPbInput = qlua.rpc.CalcBuySell.Result.newBuilder() - .setQty(1) - .setComission("2") - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CalcBuySell.Result actualObject = sut.deserialize(CalcBuySell.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java deleted file mode 100644 index db3f781..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CancelParamRequestResultPbSerdeTest { - - private static SerdeModule sut; - - private static CancelParamRequest.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new CancelParamRequest.Result(true); - expectedPbInput = qlua.rpc.CancelParamRequest.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CancelParamRequest.Result actualObject = sut.deserialize(CancelParamRequest.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java deleted file mode 100644 index 5a4d93d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClassInfoPbSerdeTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ClassInfoPbSerdeTest { - - private static SerdeModule sut; - - private static ClassInfo expectedObject; - private static byte[] expectedPbInput; - - private static ClassInfo expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = ClassInfo.builder() - .firmId("1") - .name("2") - .code("3") - .npars(4) - .nsecs(5) - .build(); - expectedPbInput = QluaStructures.Klass.newBuilder() - .setFirmid("1") - .setName("2") - .setCode("3") - .setNpars(4) - .setNsecs(5) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = ClassInfo.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Klass.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(ClassInfo.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(ClassInfo.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java deleted file mode 100644 index cdebc98..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CreateWindowResultPbSerdeTest { - - private static SerdeModule sut; - - private static CreateWindow.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new CreateWindow.Result(1); - expectedPbInput = qlua.rpc.CreateWindow.Result.newBuilder() - .setResult(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CreateWindow.Result actualObject = sut.deserialize(CreateWindow.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java deleted file mode 100644 index 50649a6..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DateTimeEntryPbSerdeTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DateTimeEntryPbSerdeTest { - - private static SerdeModule sut; - - private static DateTimeEntry expectedObject; - private static byte[] expectedPbInput; - - private static DateTimeEntry expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - expectedPbInput = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = DateTimeEntry.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.DateTimeEntry.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(DateTimeEntry.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(DateTimeEntry.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java deleted file mode 100644 index 8c166b3..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelRequestPbSerdeTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DelLabelRequestPbSerdeTest { - - private static SerdeModule sut; - - private static DelLabel.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new DelLabel.Request("1", 2); - final ByteString pbArgs = qlua.rpc.DelLabel.Request.newBuilder() - .setChartTag("1") - .setLabelId(2) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.DEL_LABEL) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DelLabel.Request actualObject = sut.deserialize(DelLabel.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java deleted file mode 100644 index d1e26e2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowRequestPbSerdeTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DeleteRowRequestPbSerdeTest { - - private static SerdeModule sut; - - private static DeleteRow.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new DeleteRow.Request(1, 2); - final ByteString pbArgs = qlua.rpc.DeleteRow.Request.newBuilder() - .setTId(1) - .setKey(2) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.DELETE_ROW) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DeleteRow.Request actualObject = sut.deserialize(DeleteRow.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java deleted file mode 100644 index f3bbf6e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DeleteRowResultPbSerdeTest { - - private static SerdeModule sut; - - private static DeleteRow.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DeleteRow.Result.getInstance(true); - expectedPbInput = qlua.rpc.Clear.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DeleteRow.Result actualObject = sut.deserialize(DeleteRow.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java deleted file mode 100644 index 0689062..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoPbSerdeTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Depo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DepoPbSerdeTest { - - private static SerdeModule sut; - - private static Depo expectedObject; - private static byte[] expectedPbInput; - - private static Depo expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = Depo.builder() - .depoLimitLockedBuyValue("1") - .depoCurrentBalance("2") - .depoLimitLockedBuy("3") - .depoLimitLocked("4") - .depoLimitAvailable("5") - .depoCurrentLimit("6") - .depoOpenBalance("7") - .depoOpenLimit("8") - .build(); - expectedPbInput = qlua.rpc.GetDepo.Depo.newBuilder() - .setDepoLimitLockedBuyValue("1") - .setDepoCurrentBalance("2") - .setDepoLimitLockedBuy("3") - .setDepoLimitLocked("4") - .setDepoLimitAvailable("5") - .setDepoCurrentLimit("6") - .setDepoOpenBalance("7") - .setDepoOpenLimit("8") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = Depo.builder().build(); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetDepo.Depo.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(Depo.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(Depo.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java deleted file mode 100644 index 74deb13..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableResultPbSerdeTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DestroyTableResultPbSerdeTest { - - private static SerdeModule sut; - - private static DestroyTable.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DestroyTable.Result.getInstance(true); - expectedPbInput = qlua.rpc.DestroyTable.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DestroyTable.Result actualObject = sut.deserialize(DestroyTable.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java deleted file mode 100644 index 97e887b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitPbSerdeTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class FuturesLimitPbSerdeTest { - - private static SerdeModule sut; - - private static FuturesLimit expectedObject; - private static byte[] expectedPbInput; - - private static FuturesLimit expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = FuturesLimit.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .liquidityCoef("4") - .cbpPrevLimit("5") - .cbpLimit("6") - .cbplUsed("7") - .cbplPlanned("8") - .varMargin("9") - .accruedInt("10") - .cbplUsedForOrders("11") - .cbplUsedForPositions("12") - .optionsPremium("13") - .tsComission("14") - .kgo("15") - .currCode("16") - .realVarMargin("17") - .build(); - expectedPbInput = QluaStructures.FuturesLimit.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setLimitType(3) - .setLiquidityCoef("4") - .setCbpPrevLimit("5") - .setCbplimit("6") - .setCbplused("7") - .setCbplplanned("8") - .setVarmargin("9") - .setAccruedint("10") - .setCbplusedForOrders("11") - .setCbplusedForPositions("12") - .setOptionsPremium("13") - .setTsComission("14") - .setKgo("15") - .setCurrcode("16") - .setRealVarmargin("17") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = FuturesLimit.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesLimit.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(FuturesLimit.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(FuturesLimit.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java deleted file mode 100644 index 156bb22..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExRequestPbSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetBuySellInfoExRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetBuySellInfoEx.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetBuySellInfoEx.Request.builder() - .firmId("1") - .clientCode("2") - .classCode("3") - .secCode("4") - .price("5") - .build(); - final ByteString pbArgs = qlua.rpc.GetBuySellInfoEx.Request.newBuilder() - .setFirmId("1") - .setClientCode("2") - .setClassCode("3") - .setSecCode("4") - .setPrice("5") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_BUY_SELL_INFO_EX) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetBuySellInfoEx.Request actualObject = sut.deserialize(GetBuySellInfoEx.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java deleted file mode 100644 index c940eee..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoRequestPbSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetBuySellInfoRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetBuySellInfo.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetBuySellInfo.Request.builder() - .firmId("1") - .clientCode("2") - .classCode("3") - .secCode("4") - .price("5") - .build(); - final ByteString pbArgs = qlua.rpc.GetBuySellInfo.Request.newBuilder() - .setFirmId("1") - .setClientCode("2") - .setClassCode("3") - .setSecCode("4") - .setPrice("5") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_BUY_SELL_INFO) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetBuySellInfo.Request actualObject = sut.deserialize(GetBuySellInfo.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java deleted file mode 100644 index 5258259..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexRequestPbSerdeTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetCandlesByIndexRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetCandlesByIndex.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetCandlesByIndex.Request.builder() - .tag("1") - .line(2) - .firstCandle(3) - .count(4) - .build(); - final ByteString pbArgs = qlua.rpc.GetCandlesByIndex.Request.newBuilder() - .setTag("1") - .setLine(2) - .setFirstCandle(3) - .setCount(4) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_CANDLES_BY_INDEX) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetCandlesByIndex.Request actualObject = sut.deserialize(GetCandlesByIndex.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java deleted file mode 100644 index 9d84a9d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoResultPbSerdeTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.enfernuz.quik.lua.rpc.api.structures.ClassInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetClassInfoResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassInfo.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetClassInfo.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final ClassInfo classInfo = ClassInfo.builder() - .firmId("1") - .name("2") - .code("3") - .npars(4) - .nsecs(5) - .build(); - final QluaStructures.Klass pbClassInfo = QluaStructures.Klass.newBuilder() - .setFirmid("1") - .setName("2") - .setCode("3") - .setNpars(4) - .setNsecs(5) - .build(); - - expectedObject = new GetClassInfo.Result(classInfo); - expectedPbInput = qlua.rpc.GetClassInfo.Result.newBuilder() - .setClassInfo(pbClassInfo) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = new GetClassInfo.Result(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassInfo.Result.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetClassInfo.Result actualObject = sut.deserialize(GetClassInfo.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testSerializeWithOnlyRequiredFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); - } - - @Test - public void testDeserializeWithOnlyRequiredFields() { - - final GetClassInfo.Result actualObject = sut.deserialize(GetClassInfo.Result.class, expectedPbInputWithOnlyRequiredFields); - - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java deleted file mode 100644 index b8322ed..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesRequestPbSerdeTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetClassSecuritiesRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassSecurities.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetClassSecurities.Request("1"); - final ByteString pbArgs = qlua.rpc.GetClassSecurities.Request.newBuilder() - .setClassCode("1") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_CLASS_SECURITIES) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetClassSecurities.Request.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java deleted file mode 100644 index bbdb0e4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesResultPbSerdeTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetClassSecuritiesResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassSecurities.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetClassSecurities.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetClassSecurities.Result("1"); - expectedPbInput = qlua.rpc.GetClassesList.Result.newBuilder() - .setClassesList("1") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = new GetClassSecurities.Result(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassesList.Result.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetClassSecurities.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetClassSecurities.Result.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java deleted file mode 100644 index bec5493..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListRequestPbSerdeTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetClassesListRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassesList.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetClassesList.Request.INSTANCE; - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_CLASSES_LIST) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetClassesList.Request actualObject = sut.deserialize(GetClassesList.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java deleted file mode 100644 index 3816369..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExRequestPbSerdeTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetDepoExRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetDepoEx.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetDepoEx.Request.builder() - .firmId("1") - .clientCode("2") - .secCode("3") - .trdAccId("4") - .limitKind(5) - .build(); - final ByteString pbArgs = qlua.rpc.GetDepoEx.Request.newBuilder() - .setFirmid("1") - .setClientCode("2") - .setSecCode("3") - .setTrdaccid("4") - .setLimitKind(5) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_DEPO_EX) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetDepoEx.Request.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java deleted file mode 100644 index a104523..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; -import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetDepoExResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetDepoEx.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetDepoEx.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DepoLimit depoLimit = DepoLimit.builder() - .secCode("1") - .trdAccId("2") - .firmId("3") - .clientCode("4") - .openBal(5) - .openLimit(6) - .currentBal(7) - .currentLimit(8) - .lockedSell(9) - .lockedBuy(10) - .lockedBuyValue("11") - .lockedSellValue("12") - .awgPositionPrice("13") - .limitKind(14) - .build(); - final QluaStructures.DepoLimit pbDepoLimit = QluaStructures.DepoLimit.newBuilder() - .setSecCode("1") - .setTrdaccid("2") - .setFirmid("3") - .setClientCode("4") - .setOpenbal(5) - .setOpenlimit(6) - .setCurrentbal(7) - .setCurrentlimit(8) - .setLockedSell(9) - .setLockedBuy(10) - .setLockedBuyValue("11") - .setLockedSellValue("12") - .setAwgPositionPrice("13") - .setLimitKind(14) - .build(); - - expectedObject = GetDepoEx.Result.getInstance(depoLimit); - expectedPbInput = qlua.rpc.GetDepoEx.Result.newBuilder() - .setDepoEx(pbDepoLimit) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = GetDepoEx.Result.getInstance(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetDepoEx.Result.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetDepoEx.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetDepoEx.Result.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java deleted file mode 100644 index 42f3572..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetInfoParamResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetInfoParam.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetInfoParam.Result("1"); - expectedPbInput = qlua.rpc.GetInfoParam.Result.newBuilder() - .setInfoParam("1") - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetInfoParam.Result.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java deleted file mode 100644 index 71e5103..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsRequestPbSerdeTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetLabelParamsRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetLabelParams.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetLabelParams.Request("1", 2); - final ByteString pbArgs = qlua.rpc.GetLabelParams.Request.newBuilder() - .setChartTag("1") - .setLabelId(2) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_LABEL_PARAMS) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetLabelParams.Request.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java deleted file mode 100644 index a4d9b14..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.common.collect.ImmutableMap; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetLabelParamsResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetLabelParams.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetLabelParams.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final Map labelParams = ImmutableMap.of( - "key1", "value1", - "key2", "value2", - "key3", "value3" - ); - - expectedObject = GetLabelParams.Result.getInstance(labelParams); - expectedPbInput = qlua.rpc.GetLabelParams.Result.newBuilder() - .putAllLabelParams(labelParams) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = GetLabelParams.Result.getInstance(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetLabelParams.Result.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetLabelParams.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetLabelParams.Result.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java deleted file mode 100644 index 5d45ba1..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountRequestPbSerdeTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetLinesCountRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetLinesCount.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetLinesCount.Request("1"); - final ByteString pbArgs = qlua.rpc.GetLinesCount.Request.newBuilder() - .setTag("1") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_LINES_COUNT) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetLinesCount.Request.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java deleted file mode 100644 index 0141883..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetLinesCountResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetLinesCount.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetLinesCount.Result(1); - expectedPbInput = qlua.rpc.GetLinesCount.Result.newBuilder() - .setLinesCount(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetLinesCount.Result.class, expectedPbInput)); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java deleted file mode 100644 index 160805a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetMoneyExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String FIRM_ID = "1"; - private static final String CLIENT_CODE = "2"; - private static final String TAG = "3"; - private static final String CURR_CODE = "4"; - private static final int LIMIT_KIND = 5; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_MONEY_EX; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetMoneyEx.Request.newBuilder() - .setFirmid(FIRM_ID) - .setClientCode(CLIENT_CODE) - .setTag(TAG) - .setCurrcode(CURR_CODE) - .setLimitKind(LIMIT_KIND) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetMoneyEx.Request.class; - } - - @NotNull - @Override - public GetMoneyEx.Request getTargetObject() { - return GetMoneyEx.Request.builder() - .firmId(FIRM_ID) - .clientCode(CLIENT_CODE) - .tag(TAG) - .currCode(CURR_CODE) - .limitKind(LIMIT_KIND) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java deleted file mode 100644 index 571156b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; - -public class GetMoneyRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String CLIENT_CODE = "1"; - private static final String FIRM_ID = "2"; - private static final String TAG = "3"; - private static final String CURR_CODE = "4"; - - @NotNull - @Override - public GetMoney.Request getTargetObject() { - return GetMoney.Request.builder() - .clientCode(CLIENT_CODE) - .firmId(FIRM_ID) - .tag(TAG) - .currCode(CURR_CODE) - .build(); - } - - @NotNull - @Override - public RPC.ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_MONEY; - } - - @NotNull - @Override - public MessageLite getPbRequestArgs() { - return qlua.rpc.GetMoney.Request.newBuilder() - .setClientCode(CLIENT_CODE) - .setFirmid(FIRM_ID) - .setTag(TAG) - .setCurrcode(CURR_CODE) - .build(); - } - - @NotNull - @Override - public Class getTargetObjectClass() { - return GetMoney.Request.class; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java deleted file mode 100644 index 3ef45e6..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; -import org.jetbrains.annotations.NotNull; - -public class GetNumCandlesResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final int NUM_CANDLES = 1; - - @Override - public @NotNull Class getTargetObjectClass() { - return GetNumCandles.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetNumCandles.Result getTargetObjectAsPbMessage() { - return qlua.rpc.GetNumCandles.Result.newBuilder() - .setNumCandles(NUM_CANDLES) - .build(); - } - - @NotNull - @Override - public GetNumCandles.Result getTargetObject() { - return new GetNumCandles.Result(NUM_CANDLES); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java deleted file mode 100644 index 35ea5f6..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetNumberOfRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String TABLE_NAME = "1"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_NUMBER_OF; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetNumberOf.Request.newBuilder() - .setTableName(TABLE_NAME) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetNumberOf.Request.class; - } - - @NotNull - @Override - public GetNumberOf.Request getTargetObject() { - return new GetNumberOf.Request(TABLE_NAME); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java deleted file mode 100644 index 0efdd0e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; -import org.jetbrains.annotations.NotNull; - -public class GetNumberOfResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final int RESULT = 1; - - @Override - public @NotNull Class getTargetObjectClass() { - return GetNumberOf.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetNumberOf.Result getTargetObjectAsPbMessage() { - return qlua.rpc.GetNumberOf.Result.newBuilder() - .setResult(RESULT) - .build(); - } - - @NotNull - @Override - public GetNumberOf.Result getTargetObject() { - return new GetNumberOf.Result(RESULT); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java deleted file mode 100644 index 7985180..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberRequestPbSerdeTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetOrderByNumberRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String CLASS_CODE = "1"; - private static final long ORDER_ID = 12345678910L; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_ORDER_BY_NUMBER; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetOrderByNumber.Request.newBuilder() - .setClassCode(CLASS_CODE) - .setOrderId(ORDER_ID) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetOrderByNumber.Request.class; - } - - @NotNull - @Override - public GetOrderByNumber.Request getTargetObject() { - return new GetOrderByNumber.Request(CLASS_CODE, ORDER_ID); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java deleted file mode 100644 index b0ee624..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2RequestPbSerdeTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetParamEx2RequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String CLASS_CODE = "1"; - private static final String SEC_CODE = "2"; - private static final String PARAM_NAME = "3"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_PARAM_EX_2; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetParamEx2.Request.newBuilder() - .setClassCode(CLASS_CODE) - .setSecCode(SEC_CODE) - .setParamName(PARAM_NAME) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetParamEx2.Request.class; - } - - @NotNull - @Override - public GetParamEx2.Request getTargetObject() { - return GetParamEx2.Request.builder() - .classCode(CLASS_CODE) - .secCode(SEC_CODE) - .paramName(PARAM_NAME) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java deleted file mode 100644 index 0131dd0..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java +++ /dev/null @@ -1,279 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import org.jetbrains.annotations.NotNull; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.instanceOf; - -public class GetPortfolioInfoExResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Override - public @NotNull Class getTargetObjectClass() { - return GetPortfolioInfoEx.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetPortfolioInfoEx.Result getTargetObjectAsPbMessage() { - - final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() - .setIsLeverage(PortfolioInfoParameters.IS_LEVERAGE) - .setInAssets(PortfolioInfoParameters.IN_ASSETS) - .setLeverage(PortfolioInfoParameters.LEVERAGE) - .setOpenLimit(PortfolioInfoParameters.OPEN_LIMIT) - .setValShort(PortfolioInfoParameters.VAL_SHORT) - .setValLong(PortfolioInfoParameters.VAL_LONG) - .setValLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) - .setValLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) - .setAssets(PortfolioInfoParameters.ASSETS) - .setCurLeverage(PortfolioInfoParameters.CUR_LEVERAGE) - .setMargin(PortfolioInfoParameters.MARGIN) - .setLimAll(PortfolioInfoParameters.LIM_ALL) - .setAvLimAll(PortfolioInfoParameters.AV_LIM_ALL) - .setLockedBuy(PortfolioInfoParameters.LOCKED_BUY) - .setLockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) - .setLockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) - .setLockedSell(PortfolioInfoParameters.LOCKED_SELL) - .setLockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) - .setInAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) - .setAllAssets(PortfolioInfoParameters.ALL_ASSETS) - .setProfitLoss(PortfolioInfoParameters.PROFIT_LOSS) - .setRateChange(PortfolioInfoParameters.RATE_CHANGE) - .setLimBuy(PortfolioInfoParameters.LIM_BUY) - .setLimSell(PortfolioInfoParameters.LIM_SELL) - .setLimNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) - .setLimBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) - .setValShortNet(PortfolioInfoParameters.VAL_SHORT_NET) - .setValLongNet(PortfolioInfoParameters.VAL_LONG_NET) - .setTotalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) - .setTotalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) - .setHaircuts(PortfolioInfoParameters.HAIRCUTS) - .setAssetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) - .setStatusCoef(PortfolioInfoParameters.STATUS_COEF) - .setVarmargin(PortfolioInfoParameters.VAR_MARGIN) - .setGoForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) - .setGoForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) - .setRateFutures(PortfolioInfoParameters.RATE_FUTURES) - .setIsQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) - .setIsFutures(PortfolioInfoParameters.IS_FUTURES) - .setCurrTag(PortfolioInfoParameters.CURR_TAG) - .build(); - final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder() - .setPortfolioInfo(portfolioInfo) - .setInitMargin(PortfolioInfoExParameters.INIT_MARGIN) - .setMinMargin(PortfolioInfoExParameters.MIN_MARGIN) - .setCorrectedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) - .setClientType(PortfolioInfoExParameters.CLIENT_TYPE) - .setPortfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) - .setStartLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) - .setTotalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) - .setLimitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) - .setUsedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) - .setAccVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) - .setClVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) - .setOptLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) - .setFutAsset(PortfolioInfoExParameters.FUT_ASSET) - .setFutTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) - .setFutDebt(PortfolioInfoExParameters.FUT_DEBT) - .setFutRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) - .setFutRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) - .setFutRateGo(PortfolioInfoExParameters.FUT_RATE_GO) - .setPlanedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) - .setCashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) - .setFutPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) - .setFutAccuredInt(PortfolioInfoExParameters.FUT_ACCURED_INT) - .build(); - - return qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() - .setPortfolioInfoEx(portfolioInfoEx) - .build(); - } - - @NotNull - @Override - public GetPortfolioInfoEx.Result getTargetObject() { - - final PortfolioInfo portfolioInfo = PortfolioInfo.builder() - .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) - .inAssets(PortfolioInfoParameters.IN_ASSETS) - .leverage(PortfolioInfoParameters.LEVERAGE) - .openLimit(PortfolioInfoParameters.OPEN_LIMIT) - .valShort(PortfolioInfoParameters.VAL_SHORT) - .valLong(PortfolioInfoParameters.VAL_LONG) - .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) - .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) - .assets(PortfolioInfoParameters.ASSETS) - .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) - .margin(PortfolioInfoParameters.MARGIN) - .limAll(PortfolioInfoParameters.LIM_ALL) - .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) - .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) - .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) - .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) - .lockedSell(PortfolioInfoParameters.LOCKED_SELL) - .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) - .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) - .allAssets(PortfolioInfoParameters.ALL_ASSETS) - .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) - .rateChange(PortfolioInfoParameters.RATE_CHANGE) - .limBuy(PortfolioInfoParameters.LIM_BUY) - .limSell(PortfolioInfoParameters.LIM_SELL) - .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) - .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) - .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) - .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) - .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) - .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) - .haircuts(PortfolioInfoParameters.HAIRCUTS) - .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) - .statusCoef(PortfolioInfoParameters.STATUS_COEF) - .varMargin(PortfolioInfoParameters.VAR_MARGIN) - .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) - .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) - .rateFutures(PortfolioInfoParameters.RATE_FUTURES) - .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) - .isFutures(PortfolioInfoParameters.IS_FUTURES) - .currTag(PortfolioInfoParameters.CURR_TAG) - .build(); - - return GetPortfolioInfoEx.Result.builder() - .portfolioInfo(portfolioInfo) - .initMargin(PortfolioInfoExParameters.INIT_MARGIN) - .minMargin(PortfolioInfoExParameters.MIN_MARGIN) - .correctedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) - .clientType(PortfolioInfoExParameters.CLIENT_TYPE) - .portfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) - .startLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) - .totalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) - .limitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) - .usedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) - .accVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) - .clVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) - .optLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) - .futAsset(PortfolioInfoExParameters.FUT_ASSET) - .futTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) - .futDebt(PortfolioInfoExParameters.FUT_DEBT) - .futRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) - .futRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) - .futRateGo(PortfolioInfoExParameters.FUT_RATE_GO) - .planedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) - .cashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) - .futPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) - .futAccruedInt(PortfolioInfoExParameters.FUT_ACCURED_INT) - .build(); - } - - @Test - public void shouldFailOnUninitializedPbPortfolioInfoEx() { - - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfoEx'.")) - ) - ); - - getSerdeModuleUnderTest().deserialize(GetPortfolioInfoEx.Result.class, qlua.rpc.GetPortfolioInfoEx.Result.newBuilder().build().toByteArray()); - } - - @Test - public void shouldFailOnUninitializedPbPortfolioInfo() { - - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfoEx.Result не содержит поля 'portfolioInfo' в поле 'portfolioInfoEx'.")) - ) - ); - - final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder().build(); - final qlua.rpc.GetPortfolioInfoEx.Result pbResult = qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() - .setPortfolioInfoEx(portfolioInfoEx) - .build(); - - getSerdeModuleUnderTest().deserialize(GetPortfolioInfoEx.Result.class, pbResult.toByteArray()); - } - - private static final class PortfolioInfoParameters { - - private static final String IS_LEVERAGE = "1"; - private static final String IN_ASSETS = "2"; - private static final String LEVERAGE = "3"; - private static final String OPEN_LIMIT = "4"; - private static final String VAL_SHORT = "5"; - private static final String VAL_LONG = "6"; - private static final String VAL_LONG_MARGIN = "7"; - private static final String VAL_LONG_ASSET = "8"; - private static final String ASSETS = "9"; - private static final String CUR_LEVERAGE = "10"; - private static final String MARGIN = "11"; - private static final String LIM_ALL = "12"; - private static final String AV_LIM_ALL = "13"; - private static final String LOCKED_BUY = "14"; - private static final String LOCKED_BUY_MARGIN = "15"; - private static final String LOCKED_BUY_ASSET = "16"; - private static final String LOCKED_SELL = "17"; - private static final String LOCKED_VALUE_COEF = "18"; - private static final String IN_ALL_ASSETS = "19"; - private static final String ALL_ASSETS = "20"; - private static final String PROFIT_LOSS = "21"; - private static final String RATE_CHANGE = "22"; - private static final String LIM_BUY = "23"; - private static final String LIM_SELL = "24"; - private static final String LIM_NON_MARGIN = "25"; - private static final String LIM_BUY_ASSET = "26"; - private static final String VAL_SHORT_NET = "27"; - private static final String VAL_LONG_NET = "28"; - private static final String TOTAL_MONEY_BAL = "29"; - private static final String TOTAL_LOCKED_MONEY = "30"; - private static final String HAIRCUTS = "31"; - private static final String ASSETS_WITHOUT_HC = "32"; - private static final String STATUS_COEF = "33"; - private static final String VAR_MARGIN = "34"; - private static final String GO_FOR_POSITIONS = "35"; - private static final String GO_FOR_ORDERS = "36"; - private static final String RATE_FUTURES = "37"; - private static final String IS_QUAL_CLIENT = "38"; - private static final String IS_FUTURES = "39"; - private static final String CURR_TAG = "40"; - } - - private static final class PortfolioInfoExParameters { - - private static final String INIT_MARGIN = "2"; - private static final String MIN_MARGIN = "3"; - private static final String CORRECTED_MARGIN = "4"; - private static final String CLIENT_TYPE = "5"; - private static final String PORTFOLIO_VALUE = "6"; - private static final String START_LIMIT_OPEN_POS = "7"; - private static final String TOTAL_LIMIT_OPEN_POS = "8"; - private static final String LIMIT_OPEN_POS = "9"; - private static final String USED_LIM_OPEN_POS = "10"; - private static final String ACC_VAR_MARGIN = "11"; - private static final String CL_VAR_MARGIN = "12"; - private static final String OPT_LIQUID_COST = "13"; - private static final String FUT_ASSET = "14"; - private static final String FUT_TOTAL_ASSET = "15"; - private static final String FUT_DEBT = "16"; - private static final String FUT_RATE_ASSET = "17"; - private static final String FUT_RATE_ASSET_OPEN = "18"; - private static final String FUT_RATE_GO = "19"; - private static final String PLANED_RATE_GO = "20"; - private static final String CASH_LEVERAGE = "21"; - private static final String FUT_POSITION_TYPE = "22"; - private static final String FUT_ACCURED_INT = "23"; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java deleted file mode 100644 index 2853105..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoRequestPbSerdeTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetPortfolioInfoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String FIRM_ID = "1"; - private static final String CLIENT_CODE = "2"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_PORTFOLIO_INFO; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetPortfolioInfo.Request.newBuilder() - .setFirmId(FIRM_ID) - .setClientCode(CLIENT_CODE) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetPortfolioInfo.Request.class; - } - - @NotNull - @Override - public GetPortfolioInfo.Request getTargetObject() { - return GetPortfolioInfo.Request.builder() - .firmId(FIRM_ID) - .clientCode(CLIENT_CODE) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java deleted file mode 100644 index b68325d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import org.jetbrains.annotations.NotNull; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.instanceOf; - -public class GetPortfolioInfoResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Override - public @NotNull Class getTargetObjectClass() { - return GetPortfolioInfo.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetPortfolioInfo.Result getTargetObjectAsPbMessage() { - - final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() - .setIsLeverage(PortfolioInfoParameters.IS_LEVERAGE) - .setInAssets(PortfolioInfoParameters.IN_ASSETS) - .setLeverage(PortfolioInfoParameters.LEVERAGE) - .setOpenLimit(PortfolioInfoParameters.OPEN_LIMIT) - .setValShort(PortfolioInfoParameters.VAL_SHORT) - .setValLong(PortfolioInfoParameters.VAL_LONG) - .setValLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) - .setValLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) - .setAssets(PortfolioInfoParameters.ASSETS) - .setCurLeverage(PortfolioInfoParameters.CUR_LEVERAGE) - .setMargin(PortfolioInfoParameters.MARGIN) - .setLimAll(PortfolioInfoParameters.LIM_ALL) - .setAvLimAll(PortfolioInfoParameters.AV_LIM_ALL) - .setLockedBuy(PortfolioInfoParameters.LOCKED_BUY) - .setLockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) - .setLockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) - .setLockedSell(PortfolioInfoParameters.LOCKED_SELL) - .setLockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) - .setInAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) - .setAllAssets(PortfolioInfoParameters.ALL_ASSETS) - .setProfitLoss(PortfolioInfoParameters.PROFIT_LOSS) - .setRateChange(PortfolioInfoParameters.RATE_CHANGE) - .setLimBuy(PortfolioInfoParameters.LIM_BUY) - .setLimSell(PortfolioInfoParameters.LIM_SELL) - .setLimNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) - .setLimBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) - .setValShortNet(PortfolioInfoParameters.VAL_SHORT_NET) - .setValLongNet(PortfolioInfoParameters.VAL_LONG_NET) - .setTotalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) - .setTotalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) - .setHaircuts(PortfolioInfoParameters.HAIRCUTS) - .setAssetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) - .setStatusCoef(PortfolioInfoParameters.STATUS_COEF) - .setVarmargin(PortfolioInfoParameters.VAR_MARGIN) - .setGoForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) - .setGoForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) - .setRateFutures(PortfolioInfoParameters.RATE_FUTURES) - .setIsQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) - .setIsFutures(PortfolioInfoParameters.IS_FUTURES) - .setCurrTag(PortfolioInfoParameters.CURR_TAG) - .build(); - - return qlua.rpc.GetPortfolioInfo.Result.newBuilder() - .setPortfolioInfo(portfolioInfo) - .build(); - } - - @NotNull - @Override - public GetPortfolioInfo.Result getTargetObject() { - - final PortfolioInfo portfolioInfo = PortfolioInfo.builder() - .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) - .inAssets(PortfolioInfoParameters.IN_ASSETS) - .leverage(PortfolioInfoParameters.LEVERAGE) - .openLimit(PortfolioInfoParameters.OPEN_LIMIT) - .valShort(PortfolioInfoParameters.VAL_SHORT) - .valLong(PortfolioInfoParameters.VAL_LONG) - .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) - .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) - .assets(PortfolioInfoParameters.ASSETS) - .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) - .margin(PortfolioInfoParameters.MARGIN) - .limAll(PortfolioInfoParameters.LIM_ALL) - .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) - .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) - .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) - .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) - .lockedSell(PortfolioInfoParameters.LOCKED_SELL) - .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) - .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) - .allAssets(PortfolioInfoParameters.ALL_ASSETS) - .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) - .rateChange(PortfolioInfoParameters.RATE_CHANGE) - .limBuy(PortfolioInfoParameters.LIM_BUY) - .limSell(PortfolioInfoParameters.LIM_SELL) - .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) - .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) - .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) - .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) - .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) - .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) - .haircuts(PortfolioInfoParameters.HAIRCUTS) - .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) - .statusCoef(PortfolioInfoParameters.STATUS_COEF) - .varMargin(PortfolioInfoParameters.VAR_MARGIN) - .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) - .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) - .rateFutures(PortfolioInfoParameters.RATE_FUTURES) - .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) - .isFutures(PortfolioInfoParameters.IS_FUTURES) - .currTag(PortfolioInfoParameters.CURR_TAG) - .build(); - - return new GetPortfolioInfo.Result(portfolioInfo); - } - - @Test - public void shouldFailOnUninitializedPbPortfolioInfo() { - - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Экземпляр protobuf-представления qlua.rpc.GetPortfolioInfo.Result не содержит поля 'portfolioInfo'.")) - ) - ); - - getSerdeModuleUnderTest().deserialize(GetPortfolioInfo.Result.class, qlua.rpc.GetPortfolioInfo.Result.newBuilder().build().toByteArray()); - } - - private static final class PortfolioInfoParameters { - - private static final String IS_LEVERAGE = "1"; - private static final String IN_ASSETS = "2"; - private static final String LEVERAGE = "3"; - private static final String OPEN_LIMIT = "4"; - private static final String VAL_SHORT = "5"; - private static final String VAL_LONG = "6"; - private static final String VAL_LONG_MARGIN = "7"; - private static final String VAL_LONG_ASSET = "8"; - private static final String ASSETS = "9"; - private static final String CUR_LEVERAGE = "10"; - private static final String MARGIN = "11"; - private static final String LIM_ALL = "12"; - private static final String AV_LIM_ALL = "13"; - private static final String LOCKED_BUY = "14"; - private static final String LOCKED_BUY_MARGIN = "15"; - private static final String LOCKED_BUY_ASSET = "16"; - private static final String LOCKED_SELL = "17"; - private static final String LOCKED_VALUE_COEF = "18"; - private static final String IN_ALL_ASSETS = "19"; - private static final String ALL_ASSETS = "20"; - private static final String PROFIT_LOSS = "21"; - private static final String RATE_CHANGE = "22"; - private static final String LIM_BUY = "23"; - private static final String LIM_SELL = "24"; - private static final String LIM_NON_MARGIN = "25"; - private static final String LIM_BUY_ASSET = "26"; - private static final String VAL_SHORT_NET = "27"; - private static final String VAL_LONG_NET = "28"; - private static final String TOTAL_MONEY_BAL = "29"; - private static final String TOTAL_LOCKED_MONEY = "30"; - private static final String HAIRCUTS = "31"; - private static final String ASSETS_WITHOUT_HC = "32"; - private static final String STATUS_COEF = "33"; - private static final String VAR_MARGIN = "34"; - private static final String GO_FOR_POSITIONS = "35"; - private static final String GO_FOR_ORDERS = "36"; - private static final String RATE_FUTURES = "37"; - private static final String IS_QUAL_CLIENT = "38"; - private static final String IS_FUTURES = "39"; - private static final String CURR_TAG = "40"; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java deleted file mode 100644 index e0bd3e4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; -import com.google.common.collect.ImmutableList; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class GetQuoteLevel2ResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Override - public @NotNull Class getTargetObjectClass() { - return GetQuoteLevel2.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetQuoteLevel2.Result getTargetObjectAsPbMessage() { - - final List bids = ImmutableList.of( - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("1").setQuantity("100").build(), - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("2").setQuantity("200").build(), - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("3").setQuantity("300").build(), - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("4").setQuantity("400").build() - ); - - final List offers = ImmutableList.of( - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("5").setQuantity("500").build(), - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("6").setQuantity("600").build(), - qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("7").setQuantity("700").build() - ); - - return qlua.rpc.GetQuoteLevel2.Result.newBuilder() - .addAllBids(bids) - .addAllOffers(offers) - .setBidCount("4") - .setOfferCount("3") - .build(); - } - - @NotNull - @Override - public GetQuoteLevel2.Result getTargetObject() { - - final List bids = ImmutableList.of( - GetQuoteLevel2.QuoteEntry.builder().price("1").quantity("100").build(), - GetQuoteLevel2.QuoteEntry.builder().price("2").quantity("200").build(), - GetQuoteLevel2.QuoteEntry.builder().price("3").quantity("300").build(), - GetQuoteLevel2.QuoteEntry.builder().price("4").quantity("400").build() - ); - - final List offers = ImmutableList.of( - GetQuoteLevel2.QuoteEntry.builder().price("5").quantity("500").build(), - GetQuoteLevel2.QuoteEntry.builder().price("6").quantity("600").build(), - GetQuoteLevel2.QuoteEntry.builder().price("7").quantity("700").build() - ); - - return GetQuoteLevel2.Result.builder() - .bids(bids) - .offers(offers) - .bidCount("4") - .offerCount("3") - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java deleted file mode 100644 index f1dac73..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathRequestPbSerdeTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetScriptPathRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_SCRIPT_PATH; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return null; - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetScriptPath.Request.class; - } - - @NotNull - @Override - public GetScriptPath.Request getTargetObject() { - return GetScriptPath.Request.INSTANCE; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java deleted file mode 100644 index 5298357..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; -import org.jetbrains.annotations.NotNull; - -public class GetScriptPathResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final String SCRIPT_PATH = "1"; - - @Override - public @NotNull Class getTargetObjectClass() { - return GetScriptPath.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetScriptPath.Result getTargetObjectAsPbMessage() { - return qlua.rpc.GetScriptPath.Result.newBuilder() - .setScriptPath(SCRIPT_PATH) - .build(); - } - - @NotNull - @Override - public GetScriptPath.Result getTargetObject() { - return new GetScriptPath.Result(SCRIPT_PATH); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java deleted file mode 100644 index 147c665..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoRequestPbSerdeTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetSecurityInfoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String CLASS_CODE = "1"; - private static final String SEC_CODE = "2"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_SECURITY_INFO; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetSecurityInfo.Request.newBuilder() - .setClassCode(CLASS_CODE) - .setSecCode(SEC_CODE) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetSecurityInfo.Request.class; - } - - @NotNull - @Override - public GetSecurityInfo.Request getTargetObject() { - return GetSecurityInfo.Request.builder() - .classCode(CLASS_CODE) - .secCode(SEC_CODE) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java deleted file mode 100644 index 74cf81b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; -import com.enfernuz.quik.lua.rpc.api.structures.Security; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; -import qlua.structs.QluaStructures; - -public class GetSecurityInfoResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Override - public @NotNull Class getTargetObjectClass() { - return GetSecurityInfo.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetSecurityInfo.Result getTargetObjectAsPbMessage() { - - final QluaStructures.Security security = QluaStructures.Security.newBuilder() - .setCode(SecurityParameters.CODE) - .setName(SecurityParameters.NAME) - .setShortName(SecurityParameters.SHORT_NAME) - .setClassCode(SecurityParameters.CLASS_CODE) - .setClassName(SecurityParameters.CLASS_NAME) - .setFaceValue(SecurityParameters.FACE_VALUE) - .setFaceUnit(SecurityParameters.FACE_UNIT) - .setScale(SecurityParameters.SCALE) - .setMatDate(SecurityParameters.MAT_DATE) - .setLotSize(SecurityParameters.LOT_SIZE) - .setIsinCode(SecurityParameters.ISIN_CODE) - .setMinPriceStep(SecurityParameters.MIN_PRICE_STEP) - .build(); - - return qlua.rpc.GetSecurityInfo.Result.newBuilder() - .setSecurityInfo(security) - .build(); - } - - @NotNull - @Override - public GetSecurityInfo.Result getTargetObject() { - - final Security security = Security.builder() - .code(SecurityParameters.CODE) - .name(SecurityParameters.NAME) - .shortName(SecurityParameters.SHORT_NAME) - .classCode(SecurityParameters.CLASS_CODE) - .className(SecurityParameters.CLASS_NAME) - .faceValue(SecurityParameters.FACE_VALUE) - .faceUnit(SecurityParameters.FACE_UNIT) - .scale(SecurityParameters.SCALE) - .matDate(SecurityParameters.MAT_DATE) - .lotSize(SecurityParameters.LOT_SIZE) - .isinCode(SecurityParameters.ISIN_CODE) - .minPriceStep(SecurityParameters.MIN_PRICE_STEP) - .build(); - - return GetSecurityInfo.Result.getInstance(security); - } - - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); - } - - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); - } - - @NotNull - @Override - public qlua.rpc.GetSecurityInfo.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetSecurityInfo.Result.newBuilder().build(); - } - - @NotNull - @Override - public GetSecurityInfo.Result getErrorObject() { - return GetSecurityInfo.Result.getErrorInstance(); - } - - private static final class SecurityParameters { - - private static final String CODE = "1"; - private static final String NAME = "2"; - private static final String SHORT_NAME = "3"; - private static final String CLASS_CODE = "4"; - private static final String CLASS_NAME = "5"; - private static final String FACE_VALUE = "6"; - private static final String FACE_UNIT = "7"; - private static final String SCALE = "8"; - private static final String MAT_DATE = "9"; - private static final String LOT_SIZE = "10"; - private static final String ISIN_CODE = "11"; - private static final String MIN_PRICE_STEP = "12"; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java deleted file mode 100644 index 2d60198..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetTableSizeRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_TABLE_SIZE; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetTableSize.Request.newBuilder() - .setTId(T_ID) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetTableSize.Request.class; - } - - @NotNull - @Override - public GetTableSize.Request getTargetObject() { - return new GetTableSize.Request(T_ID); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java deleted file mode 100644 index 328ee61..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -public class GetTableSizeResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Override - public @NotNull Class getTargetObjectClass() { - return GetTableSize.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetTableSize.Result getTargetObjectAsPbMessage() { - - final qlua.rpc.GetTableSize.TableSize tableSize = qlua.rpc.GetTableSize.TableSize.newBuilder() - .setRows(TableSizeParameters.ROWS) - .setCol(TableSizeParameters.COL) - .build(); - - return qlua.rpc.GetTableSize.Result.newBuilder() - .setTableSize(tableSize) - .build(); - } - - @NotNull - @Override - public GetTableSize.Result getTargetObject() { - - final GetTableSize.TableSize tableSize = GetTableSize.TableSize.builder() - .rows(TableSizeParameters.ROWS) - .col(TableSizeParameters.COL) - .build(); - - return GetTableSize.Result.getInstance(tableSize); - } - - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); - } - - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); - } - - @NotNull - @Override - public qlua.rpc.GetTableSize.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetTableSize.Result.newBuilder().build(); - } - - @NotNull - @Override - public GetTableSize.Result getErrorObject() { - return GetTableSize.Result.getErrorInstance(); - } - - private static final class TableSizeParameters { - - private static final int ROWS = 1; - private static final int COL = 2; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java deleted file mode 100644 index 6ce123e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateRequestPbSerdeTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetTradeDateRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_TRADE_DATE; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return null; - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetTradeDate.Request.class; - } - - @NotNull - @Override - public GetTradeDate.Request getTargetObject() { - return GetTradeDate.Request.INSTANCE; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java deleted file mode 100644 index 596c2d6..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetWindowRectRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_WINDOW_RECT; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetWindowRect.Request.newBuilder() - .setTId(T_ID) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetWindowRect.Request.class; - } - - @NotNull - @Override - public GetWindowRect.Request getTargetObject() { - return new GetWindowRect.Request(T_ID); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java deleted file mode 100644 index be14802..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -public class GetWindowRectResultPbSerdeTest extends AbstractResultPbSerdeTest { - - @Override - public @NotNull Class getTargetObjectClass() { - return GetWindowRect.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetWindowRect.Result getTargetObjectAsPbMessage() { - - final qlua.rpc.GetWindowRect.WindowRect windowRect = qlua.rpc.GetWindowRect.WindowRect.newBuilder() - .setTop(WindowRectParameters.TOP) - .setLeft(WindowRectParameters.LEFT) - .setBottom(WindowRectParameters.BOTTOM) - .setRight(WindowRectParameters.RIGHT) - .build(); - - return qlua.rpc.GetWindowRect.Result.newBuilder() - .setWindowRect(windowRect) - .build(); - } - - @NotNull - @Override - public GetWindowRect.Result getTargetObject() { - - final GetWindowRect.WindowRect windowRect = GetWindowRect.WindowRect.builder() - .top(WindowRectParameters.TOP) - .left(WindowRectParameters.LEFT) - .bottom(WindowRectParameters.BOTTOM) - .right(WindowRectParameters.RIGHT) - .build(); - - return GetWindowRect.Result.getInstance(windowRect); - } - - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); - } - - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); - } - - @NotNull - @Override - public qlua.rpc.GetWindowRect.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetWindowRect.Result.newBuilder().build(); - } - - @NotNull - @Override - public GetWindowRect.Result getErrorObject() { - return GetWindowRect.Result.getErrorInstance(); - } - - private static final class WindowRectParameters { - - private static final int TOP = 1; - private static final int LEFT = 2; - private static final int BOTTOM = 3; - private static final int RIGHT = 4; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java deleted file mode 100644 index 4955929..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightRequestPbSerdeTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Highlight; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class HighlightRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - private static final int ROW = 2; - private static final int COL = 3; - private static final int B_COLOR = 4; - private static final int F_COLOR = 5; - private static final int TIMEOUT = 6; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.HIGHLIGHT; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.Highlight.Request.newBuilder() - .setTId(T_ID) - .setRow(ROW) - .setCol(COL) - .setBColor(B_COLOR) - .setFColor(F_COLOR) - .setTimeout(TIMEOUT) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return Highlight.Request.class; - } - - @NotNull - @Override - public Highlight.Request getTargetObject() { - return Highlight.Request.builder() - .tId(T_ID) - .row(ROW) - .col(COL) - .bColor(B_COLOR) - .fColor(F_COLOR) - .timeout(TIMEOUT) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java deleted file mode 100644 index 2ba1950..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Highlight; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class HighlightResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final Highlight.Result TRUE_RESULT = Highlight.Result.getInstance(true); - private static final qlua.rpc.Highlight.Result TRUE_PB_RESUlT = - qlua.rpc.Highlight.Result.newBuilder().setResult(true).build(); - - private static final Highlight.Result FALSE_RESULT = Highlight.Result.getInstance(false); - private static final qlua.rpc.Highlight.Result FALSE_PB_RESUlT = - qlua.rpc.Highlight.Result.newBuilder().setResult(false).build(); - - @Override - public @NotNull Class getTargetObjectClass() { - return Highlight.Result.class; - } - - @NotNull - @Override - public qlua.rpc.Highlight.Result getTargetObjectAsPbMessage() { - return TRUE_PB_RESUlT; - } - - @NotNull - @Override - public Highlight.Result getTargetObject() { - return TRUE_RESULT; - } - - @Test - public void testSerialize_FalseResult() { - - assertTrue( - Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) - ); - } - - @Test - public void testDeserialize_FalseResult() { - assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java deleted file mode 100644 index 8081955..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; -import org.jetbrains.annotations.NotNull; - -public class InsertRowResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final int RESULT = 1; - - @Override - public @NotNull Class getTargetObjectClass() { - return InsertRow.Result.class; - } - - @NotNull - @Override - public qlua.rpc.InsertRow.Result getTargetObjectAsPbMessage() { - return qlua.rpc.InsertRow.Result.newBuilder() - .setResult(RESULT) - .build(); - } - - @NotNull - @Override - public InsertRow.Result getTargetObject() { - return new InsertRow.Result(RESULT); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java deleted file mode 100644 index f0699fa..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class IsConnectedResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final IsConnected.Result TRUE_RESULT = IsConnected.Result.getInstance(1); - private static final qlua.rpc.IsConnected.Result TRUE_PB_RESUlT = - qlua.rpc.IsConnected.Result.newBuilder().setIsConnected(1).build(); - - private static final IsConnected.Result FALSE_RESULT = IsConnected.Result.getInstance(0); - private static final qlua.rpc.IsConnected.Result FALSE_PB_RESUlT = - qlua.rpc.IsConnected.Result.newBuilder().setIsConnected(0).build(); - - @Override - public @NotNull Class getTargetObjectClass() { - return IsConnected.Result.class; - } - - @NotNull - @Override - public qlua.rpc.IsConnected.Result getTargetObjectAsPbMessage() { - return TRUE_PB_RESUlT; - } - - @NotNull - @Override - public IsConnected.Result getTargetObject() { - return TRUE_RESULT; - } - - @Test - public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { - - assertTrue( - Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) - ); - } - - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { - assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java deleted file mode 100644 index 6c55d51..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesRequestPbSerdeTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class IsSubscribedLevel2QuotesRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String CLASS_CODE = "1"; - private static final String SEC_CODE = "2"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.IS_SUBSCRIBED_LEVEL_II_QUOTES; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() - .setClassCode(CLASS_CODE) - .setSecCode(SEC_CODE) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return IsSubscribedLevel2Quotes.Request.class; - } - - @NotNull - @Override - public IsSubscribedLevel2Quotes.Request getTargetObject() { - return IsSubscribedLevel2Quotes.Request.builder() - .classCode(CLASS_CODE) - .secCode(SEC_CODE) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java deleted file mode 100644 index c72ad1a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class IsSubscribedLevel2QuotesResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final IsSubscribedLevel2Quotes.Result TRUE_RESULT = IsSubscribedLevel2Quotes.Result.getInstance(true); - private static final qlua.rpc.IsSubscribedLevelIIQuotes.Result TRUE_PB_RESUlT = - qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder().setResult(true).build(); - - private static final IsSubscribedLevel2Quotes.Result FALSE_RESULT = IsSubscribedLevel2Quotes.Result.getInstance(false); - private static final qlua.rpc.IsSubscribedLevelIIQuotes.Result FALSE_PB_RESUlT = - qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder().setResult(false).build(); - - @Override - public @NotNull Class getTargetObjectClass() { - return IsSubscribedLevel2Quotes.Result.class; - } - - @NotNull - @Override - public qlua.rpc.IsSubscribedLevelIIQuotes.Result getTargetObjectAsPbMessage() { - return TRUE_PB_RESUlT; - } - - @NotNull - @Override - public IsSubscribedLevel2Quotes.Result getTargetObject() { - return TRUE_RESULT; - } - - @Test - public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { - - assertTrue( - Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) - ); - } - - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { - assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java deleted file mode 100644 index 3f59fb4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class IsWindowClosedRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.IS_WINDOW_CLOSED; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.IsWindowClosed.Request.newBuilder() - .setTId(T_ID) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return IsWindowClosed.Request.class; - } - - @NotNull - @Override - public IsWindowClosed.Request getTargetObject() { - return new IsWindowClosed.Request(T_ID); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java deleted file mode 100644 index f1272b8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class IsWindowClosedResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final IsWindowClosed.Result TRUE_RESULT = getResult(true); - private static final qlua.rpc.IsWindowClosed.Result TRUE_PB_RESUlT = getPbResult(true); - - private static final IsWindowClosed.Result FALSE_RESULT = getResult(false); - private static final qlua.rpc.IsWindowClosed.Result FALSE_PB_RESUlT = getPbResult(false); - - private static final IsWindowClosed.Result ERROR_RESULT = IsWindowClosed.Result.getErrorInstance(); - private static final qlua.rpc.IsWindowClosed.Result ERROR_PB_RESULT = qlua.rpc.IsWindowClosed.Result.getDefaultInstance(); - - - @Override - public @NotNull Class getTargetObjectClass() { - return IsWindowClosed.Result.class; - } - - @NotNull - @Override - public qlua.rpc.IsWindowClosed.Result getTargetObjectAsPbMessage() { - return TRUE_PB_RESUlT; - } - - @NotNull - @Override - public IsWindowClosed.Result getTargetObject() { - return TRUE_RESULT; - } - - @Test - public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { - - assertTrue( - Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) - ); - } - - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { - assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); - } - - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_ErrorResult_To_ObjectOf_ErrorResult() { - assertEquals(ERROR_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), ERROR_PB_RESULT.toByteArray())); - } - - private static IsWindowClosed.Result getResult(final boolean result) { - return IsWindowClosed.Result.getInstance(IsWindowClosed.WindowClosed.getInstance(result)); - } - - private static qlua.rpc.IsWindowClosed.Result getPbResult(boolean result) { - return qlua.rpc.IsWindowClosed.Result.newBuilder() - .setWindowClosed(qlua.rpc.IsWindowClosed.WindowClosed.newBuilder().setResult(result).build()) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java deleted file mode 100644 index 6ecb396..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitDeletePbSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MoneyLimitDeletePbSerdeTest { - - private static SerdeModule sut; - - private static MoneyLimitDelete expectedObject; - private static byte[] expectedPbInput; - - private static MoneyLimitDelete expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = MoneyLimitDelete.builder() - .firmId("1") - .limitKind(2) - .build(); - expectedPbInput = QluaStructures.MoneyLimitDelete.newBuilder() - .setFirmid("1") - .setLimitKind(2) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = MoneyLimitDelete.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimitDelete.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(MoneyLimitDelete.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(MoneyLimitDelete.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java deleted file mode 100644 index 098ee7b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyLimitPbSerdeTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MoneyLimitPbSerdeTest { - - private static SerdeModule sut; - - private static MoneyLimit expectedObject; - private static byte[] expectedPbInput; - - private static MoneyLimit expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = MoneyLimit.builder() - .currCode("1") - .tag("2") - .firmId("3") - .clientCode("4") - .openBal("5") - .openLimit("6") - .currentBal("7") - .currentLimit("8") - .locked("9") - .lockedValueCoef("10") - .lockedMarginValue("11") - .leverage("12") - .limitKind(13) - .build(); - expectedPbInput = QluaStructures.MoneyLimit.newBuilder() - .setCurrcode("1") - .setTag("2") - .setFirmid("3") - .setClientCode("4") - .setOpenbal("5") - .setOpenlimit("6") - .setCurrentbal("7") - .setCurrentlimit("8") - .setLocked("9") - .setLockedValueCoef("10") - .setLockedMarginValue("11") - .setLeverage("12") - .setLimitKind(13) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = MoneyLimit.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.MoneyLimit.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(MoneyLimit.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(MoneyLimit.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java deleted file mode 100644 index ee549ff..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MoneyPbSerdeTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Money; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MoneyPbSerdeTest { - - private static SerdeModule sut; - - private static Money expectedObject; - private static byte[] expectedPbInput; - - private static Money expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = Money.builder() - .moneyOpenLimit("1") - .moneyLimitLockedNonMarginalValue("2") - .moneyLimitLocked("3") - .moneyOpenBalance("4") - .moneyCurrentLimit("5") - .moneyCurrentBalance("6") - .moneyLimitAvailable("7") - .build(); - expectedPbInput = qlua.rpc.GetMoney.Money.newBuilder() - .setMoneyOpenLimit("1") - .setMoneyLimitLockedNonmarginalValue("2") - .setMoneyLimitLocked("3") - .setMoneyOpenBalance("4") - .setMoneyCurrentLimit("5") - .setMoneyCurrentBalance("6") - .setMoneyLimitAvailable("7") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = Money.builder().build(); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetMoney.Money.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(Money.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(Money.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java deleted file mode 100644 index 25a3445..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegDealPbSerdeTest.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.NegDeal; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class NegDealPbSerdeTest { - - private static SerdeModule sut; - - private static NegDeal expectedObject; - private static byte[] expectedPbInput; - - private static NegDeal expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = NegDeal.builder() - .negDealNum(1L) - .negDealTime("2") - .flags(3) - .brokerRef("4") - .userId("5") - .firmId("6") - .cpUserId("7") - .cpFirmId("8") - .account("9") - .price("10") - .qty(11) - .matchRef("12") - .settleCode("13") - .yield("14") - .accruedInt("15") - .value("16") - .price2("17") - .repoRate("18") - .refundRate("19") - .transId("20") - .clientCode("21") - .repoEntry(22) - .repoValue("23") - .repo2Value("24") - .repoTerm("25") - .startDiscount("26") - .lowerDiscount("27") - .upperDiscount("28") - .blockSecurities("29") - .uid("30") - .withdrawTime("31") - .negDealDate("32") - .balance("33") - .originRepoValue("34") - .originQty("35") - .originDiscount("36") - .negDealActivationDate("37") - .negDealActivationTime("38") - .quoteNo("39") - .settleCurrency("40") - .secCode("41") - .classCode("42") - .bankAccId("43") - .withdrawDate("44") - .linkedOrder("45") - .activationDateTime(dateTimeEntry) - .withdrawDateTime(dateTimeEntry) - .dateTime(dateTimeEntry) - .build(); - expectedPbInput = QluaStructures.NegDeal.newBuilder() - .setNegDealNum(1L) - .setNegDealTime("2") - .setFlags(3) - .setBrokerref("4") - .setUserid("5") - .setFirmid("6") - .setCpuserid("7") - .setCpfirmid("8") - .setAccount("9") - .setPrice("10") - .setQty(11) - .setMatchref("12") - .setSettlecode("13") - .setYield("14") - .setAccruedint("15") - .setValue("16") - .setPrice2("17") - .setReporate("18") - .setRefundrate("19") - .setTransId("20") - .setClientCode("21") - .setRepoentry(22) - .setRepovalue("23") - .setRepo2Value("24") - .setRepoterm("25") - .setStartDiscount("26") - .setLowerDiscount("27") - .setUpperDiscount("28") - .setBlockSecurities("29") - .setUid("30") - .setWithdrawTime("31") - .setNegDealDate("32") - .setBalance("33") - .setOriginRepovalue("34") - .setOriginQty("35") - .setOriginDiscount("36") - .setNegDealActivationDate("37") - .setNegDealActivationTime("38") - .setQuoteno("39") - .setSettleCurrency("40") - .setSecCode("41") - .setClassCode("42") - .setBankAccId("43") - .setWithdrawDate("44") - .setLinkedorder("45") - .setActivationDateTime(pbDateTimeEntry) - .setWithdrawDateTime(pbDateTimeEntry) - .setDateTime(pbDateTimeEntry) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = NegDeal.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.NegDeal.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(NegDeal.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(NegDeal.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java deleted file mode 100644 index 6f96b74..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/OrderPbSerdeTest.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Order; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class OrderPbSerdeTest { - - private static SerdeModule sut; - - private static Order expectedObject; - private static byte[] expectedPbInput; - - private static Order expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = Order.builder() - .orderNum(1L) - .flags(2) - .brokerRef("3") - .userId("4") - .firmId("5") - .account("6") - .price("7") - .qty(8) - .balance("9") - .value("10") - .accruedInt("11") - .yield("12") - .transId("13") - .clientCode("14") - .price2("15") - .settleCode("16") - .uid("17") - .canceledUid("18") - .exchangeCode("19") - .activationTime("20") - .linkedOrder("21") - .expiry("22") - .secCode("23") - .classCode("24") - .datetime(dateTimeEntry) - .withdrawDatetime(dateTimeEntry) - .bankAccId("27") - .valueEntryType(28) - .repoTerm("29") - .repoValue("30") - .repo2Value("31") - .repoValueBalance("32") - .startDiscount("33") - .rejectReason("34") - .extOrderFlags("35") - .minQty(36) - .execType(37) - .sideQualifier(38) - .acntType(39) - .capacity(40) - .passiveOnlyOrder(41) - .visible(42) - .build(); - expectedPbInput = QluaStructures.Order.newBuilder() - .setOrderNum(1L) - .setFlags(2) - .setBrokerref("3") - .setUserid("4") - .setFirmid("5") - .setAccount("6") - .setPrice("7") - .setQty(8) - .setBalance("9") - .setValue("10") - .setAccruedint("11") - .setYield("12") - .setTransId("13") - .setClientCode("14") - .setPrice2("15") - .setSettlecode("16") - .setUid("17") - .setCanceledUid("18") - .setExchangeCode("19") - .setActivationTime("20") - .setLinkedorder("21") - .setExpiry("22") - .setSecCode("23") - .setClassCode("24") - .setDatetime(pbDateTimeEntry) - .setWithdrawDatetime(pbDateTimeEntry) - .setBankAccId("27") - .setValueEntryType(28) - .setRepoterm("29") - .setRepovalue("30") - .setRepo2Value("31") - .setRepoValueBalance("32") - .setStartDiscount("33") - .setRejectReason("34") - .setExtOrderFlags("35") - .setMinQty(36) - .setExecType(37) - .setSideQualifier(38) - .setAcntType(39) - .setCapacity(40) - .setPassiveOnlyOrder(41) - .setVisible(42) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = Order.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Order.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(Order.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(Order.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java deleted file mode 100644 index 0229b21..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamEventInfoPbSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.ParamEventInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ParamEventInfoPbSerdeTest { - - private static SerdeModule sut; - - private static ParamEventInfo expectedObject; - private static byte[] expectedPbInput; - - private static ParamEventInfo expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = ParamEventInfo.builder() - .classCode("1") - .secCode("2") - .build(); - expectedPbInput = QluaStructures.ParamEventInfo.newBuilder() - .setClassCode("1") - .setSecCode("2") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = ParamEventInfo.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.ParamEventInfo.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(ParamEventInfo.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(ParamEventInfo.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java similarity index 54% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java index 0853f5f..d6c8b9f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java @@ -1,24 +1,23 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; -import com.google.protobuf.MessageLite; +import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; -public class ParamRequestRequestPbSerdeTest extends AbstractRequestPbSerdeTest { +public class ParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; private static final String DB_NAME = "3"; @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.PARAM_REQUEST; + public @NotNull Serializer getSerializerUnderTest() { + return ParamRequestArgsPbSerializer.INSTANCE; } + @NotNull @Override - public @Nullable MessageLite getPbRequestArgs() { + public qlua.rpc.ParamRequest.Request getTargetObjectAsPbMessage() { return qlua.rpc.ParamRequest.Request.newBuilder() .setClassCode(CLASS_CODE) @@ -27,16 +26,11 @@ public class ParamRequestRequestPbSerdeTest extends AbstractRequestPbSerdeTest

getTargetObjectClass() { - return ParamRequest.Request.class; - } - @NotNull @Override - public ParamRequest.Request getTargetObject() { + public ParamRequest.Args getTargetObject() { - return ParamRequest.Request.builder() + return ParamRequest.Args.builder() .classCode(CLASS_CODE) .secCode(SEC_CODE) .dbName(DB_NAME) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java deleted file mode 100644 index dcfe261..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ParamRequestResultPbSerdeTest extends AbstractResultPbSerdeTest { - - private static final ParamRequest.Result TRUE_RESULT = ParamRequest.Result.getInstance(true); - private static final qlua.rpc.ParamRequest.Result TRUE_PB_RESUlT = - qlua.rpc.ParamRequest.Result.newBuilder().setResult(true).build(); - - private static final ParamRequest.Result FALSE_RESULT = ParamRequest.Result.getInstance(false); - private static final qlua.rpc.ParamRequest.Result FALSE_PB_RESUlT = - qlua.rpc.ParamRequest.Result.newBuilder().setResult(false).build(); - - @Override - public @NotNull Class getTargetObjectClass() { - return ParamRequest.Result.class; - } - - @NotNull - @Override - public qlua.rpc.ParamRequest.Result getTargetObjectAsPbMessage() { - return TRUE_PB_RESUlT; - } - - @NotNull - @Override - public ParamRequest.Result getTargetObject() { - return TRUE_RESULT; - } - - @Test - public void shouldSerialize_ObjectOf_FalseResult_To_ByteArrayOf_PbObjectOf_FalseResult() { - - assertTrue( - Arrays.equals(FALSE_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(FALSE_RESULT)) - ); - } - - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_FalseResult_To_ObjectOf_FalseResult() { - assertEquals(FALSE_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), FALSE_PB_RESUlT.toByteArray())); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java deleted file mode 100644 index b280d40..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PortfolioInfoPbSerdeTest.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; -import org.jetbrains.annotations.NotNull; -import qlua.rpc.GetPortfolioInfo; - -public class PortfolioInfoPbSerdeTest extends AbstractPbSerdeTest { - - private static final String IS_LEVERAGE = "1"; - private static final String IN_ASSETS = "2"; - private static final String LEVERAGE = "3"; - private static final String OPEN_LIMIT = "4"; - private static final String VAL_SHORT = "5"; - private static final String VAL_LONG = "6"; - private static final String VAL_LONG_MARGIN = "7"; - private static final String VAL_LONG_ASSET = "8"; - private static final String ASSETS = "9"; - private static final String CUR_LEVERAGE = "10"; - private static final String MARGIN = "11"; - private static final String LIM_ALL = "12"; - private static final String AV_LIM_ALL = "13"; - private static final String LOCKED_BUY = "14"; - private static final String LOCKED_BUY_MARGIN = "15"; - private static final String LOCKED_BUY_ASSET = "16"; - private static final String LOCKED_SELL = "17"; - private static final String LOCKED_VALUE_COEF = "18"; - private static final String IN_ALL_ASSETS = "19"; - private static final String ALL_ASSETS = "20"; - private static final String PROFIT_LOSS = "21"; - private static final String RATE_CHANGE = "22"; - private static final String LIM_BUY = "23"; - private static final String LIM_SELL = "24"; - private static final String LIM_NON_MARGIN = "25"; - private static final String LIM_BUY_ASSET = "26"; - private static final String VAL_SHORT_NET = "27"; - private static final String VAL_LONG_NET = "28"; - private static final String TOTAL_MONEY_BAL = "29"; - private static final String TOTAL_LOCKED_MONEY = "30"; - private static final String HAIRCUTS = "31"; - private static final String ASSETS_WITHOUT_HC = "32"; - private static final String STATUS_COEF = "33"; - private static final String VAR_MARGIN = "34"; - private static final String GO_FOR_POSITIONS = "35"; - private static final String GO_FOR_ORDERS = "36"; - private static final String RATE_FUTURES = "37"; - private static final String IS_QUAL_CLIENT = "38"; - private static final String IS_FUTURES = "39"; - private static final String CURR_TAG = "40"; - - @Override - public @NotNull Class getTargetObjectClass() { - return PortfolioInfo.class; - } - - @NotNull - @Override - public GetPortfolioInfo.PortfolioInfo getTargetObjectAsPbMessage() { - return GetPortfolioInfo.PortfolioInfo.newBuilder() - .setIsLeverage(IS_LEVERAGE) - .setInAssets(IN_ASSETS) - .setLeverage(LEVERAGE) - .setOpenLimit(OPEN_LIMIT) - .setValShort(VAL_SHORT) - .setValLong(VAL_LONG) - .setValLongMargin(VAL_LONG_MARGIN) - .setValLongAsset(VAL_LONG_ASSET) - .setAssets(ASSETS) - .setCurLeverage(CUR_LEVERAGE) - .setMargin(MARGIN) - .setLimAll(LIM_ALL) - .setAvLimAll(AV_LIM_ALL) - .setLockedBuy(LOCKED_BUY) - .setLockedBuyMargin(LOCKED_BUY_MARGIN) - .setLockedBuyAsset(LOCKED_BUY_ASSET) - .setLockedSell(LOCKED_SELL) - .setLockedValueCoef(LOCKED_VALUE_COEF) - .setInAllAssets(IN_ALL_ASSETS) - .setAllAssets(ALL_ASSETS) - .setProfitLoss(PROFIT_LOSS) - .setRateChange(RATE_CHANGE) - .setLimBuy(LIM_BUY) - .setLimSell(LIM_SELL) - .setLimNonMargin(LIM_NON_MARGIN) - .setLimBuyAsset(LIM_BUY_ASSET) - .setValShortNet(VAL_SHORT_NET) - .setValLongNet(VAL_LONG_NET) - .setTotalMoneyBal(TOTAL_MONEY_BAL) - .setTotalLockedMoney(TOTAL_LOCKED_MONEY) - .setHaircuts(HAIRCUTS) - .setAssetsWithoutHc(ASSETS_WITHOUT_HC) - .setStatusCoef(STATUS_COEF) - .setVarmargin(VAR_MARGIN) - .setGoForPositions(GO_FOR_POSITIONS) - .setGoForOrders(GO_FOR_ORDERS) - .setRateFutures(RATE_FUTURES) - .setIsQualClient(IS_QUAL_CLIENT) - .setIsFutures(IS_FUTURES) - .setCurrTag(CURR_TAG) - .build(); - } - - @NotNull - @Override - public PortfolioInfo getTargetObject() { - return PortfolioInfo.builder() - .isLeverage(IS_LEVERAGE) - .inAssets(IN_ASSETS) - .leverage(LEVERAGE) - .openLimit(OPEN_LIMIT) - .valShort(VAL_SHORT) - .valLong(VAL_LONG) - .valLongMargin(VAL_LONG_MARGIN) - .valLongAsset(VAL_LONG_ASSET) - .assets(ASSETS) - .curLeverage(CUR_LEVERAGE) - .margin(MARGIN) - .limAll(LIM_ALL) - .avLimAll(AV_LIM_ALL) - .lockedBuy(LOCKED_BUY) - .lockedBuyMargin(LOCKED_BUY_MARGIN) - .lockedBuyAsset(LOCKED_BUY_ASSET) - .lockedSell(LOCKED_SELL) - .lockedValueCoef(LOCKED_VALUE_COEF) - .inAllAssets(IN_ALL_ASSETS) - .allAssets(ALL_ASSETS) - .profitLoss(PROFIT_LOSS) - .rateChange(RATE_CHANGE) - .limBuy(LIM_BUY) - .limSell(LIM_SELL) - .limNonMargin(LIM_NON_MARGIN) - .limBuyAsset(LIM_BUY_ASSET) - .valShortNet(VAL_SHORT_NET) - .valLongNet(VAL_LONG_NET) - .totalMoneyBal(TOTAL_MONEY_BAL) - .totalLockedMoney(TOTAL_LOCKED_MONEY) - .haircuts(HAIRCUTS) - .assetsWithoutHc(ASSETS_WITHOUT_HC) - .statusCoef(STATUS_COEF) - .varMargin(VAR_MARGIN) - .goForPositions(GO_FOR_POSITIONS) - .goForOrders(GO_FOR_ORDERS) - .rateFutures(RATE_FUTURES) - .isQualClient(IS_QUAL_CLIENT) - .isFutures(IS_FUTURES) - .currTag(CURR_TAG) - .build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java deleted file mode 100644 index 0537b0d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEventInfoPbSerdeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.QuoteEventInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class QuoteEventInfoPbSerdeTest { - - private static SerdeModule sut; - - private static QuoteEventInfo expectedObject; - private static byte[] expectedPbInput; - - private static QuoteEventInfo expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = QuoteEventInfo.builder() - .classCode("1") - .secCode("2") - .build(); - expectedPbInput = QluaStructures.QuoteEventInfo.newBuilder() - .setClassCode("1") - .setSecCode("2") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = QuoteEventInfo.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.QuoteEventInfo.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(QuoteEventInfo.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(QuoteEventInfo.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java deleted file mode 100644 index 4e6c500..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ResponseEnvelopePbSerdeTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.api.structures.ResponseEnvelope; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.nio.charset.StandardCharsets; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ResponseEnvelopePbSerdeTest { - - private static SerdeModule sut; - - private static ResponseEnvelope expectedObjectWithError; - private static byte[] expectedPbInputForObjectWithError; - - private static ResponseEnvelope expectedObjectWithResult; - private static byte[] expectedPbInputForObjectWithResult; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObjectWithError = ResponseEnvelope.withError(new ServiceError(1, "2")); - final ByteString pbError = qlua.rpc.RPC.Error.newBuilder() - .setCode(1) - .setMessage("2") - .build() - .toByteString(); - expectedPbInputForObjectWithError = qlua.rpc.RPC.Response.newBuilder() - .setIsError(true) - .setResult(pbError) - .build() - .toByteArray(); - - final byte[] data = "some data".getBytes(StandardCharsets.UTF_8); - expectedObjectWithResult = ResponseEnvelope.withResult(data); - expectedPbInputForObjectWithResult = qlua.rpc.RPC.Response.newBuilder() - .setResult( ByteString.copyFrom(data) ) - .build() - .toByteArray(); - } - - @Test - public void testSerializeResponseEnvelopeWithError() { - - final byte[] actual = sut.serialize(expectedObjectWithError); - - assertTrue( Arrays.equals(expectedPbInputForObjectWithError, actual) ); - } - - @Test - public void testSerializeResponseEnvelopeWithResult() { - - final byte[] actual = sut.serialize(expectedObjectWithResult); - - assertTrue( Arrays.equals(expectedPbInputForObjectWithResult, actual) ); - } - - @Test - public void testDeserializePbResponseWithError() { - - final ResponseEnvelope actualObject = sut.deserialize(ResponseEnvelope.class, expectedPbInputForObjectWithError); - - assertEquals(actualObject, expectedObjectWithError); - } - - @Test - public void testDeserializePbResponseWithResult() { - - final ResponseEnvelope actualObject = sut.deserialize(ResponseEnvelope.class, expectedPbInputForObjectWithResult); - - assertEquals(actualObject, expectedObjectWithResult); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java deleted file mode 100644 index 5bef0d4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SecurityPbSerdeTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.Security; -import org.jetbrains.annotations.NotNull; -import org.junit.Test; -import qlua.structs.QluaStructures; - -public class SecurityPbSerdeTest extends AbstractPbSerdeTest { - - private static final String CODE = "1"; - private static final String NAME = "2"; - private static final String SHORT_NAME = "3"; - private static final String CLASS_CODE = "4"; - private static final String CLASS_NAME = "5"; - private static final String FACE_VALUE = "6"; - private static final String FACE_UNIT = "7"; - private static final String SCALE = "8"; - private static final String MAT_DATE = "9"; - private static final String LOT_SIZE = "10"; - private static final String ISIN_CODE = "11"; - private static final String MIN_PRICE_STEP = "12"; - - @Override - public @NotNull Class getTargetObjectClass() { - return Security.class; - } - - @NotNull - @Override - public QluaStructures.Security getTargetObjectAsPbMessage() { - return QluaStructures.Security.newBuilder() - .setCode(CODE) - .setName(NAME) - .setShortName(SHORT_NAME) - .setClassCode(CLASS_CODE) - .setClassName(CLASS_NAME) - .setFaceValue(FACE_VALUE) - .setFaceUnit(FACE_UNIT) - .setScale(SCALE) - .setMatDate(MAT_DATE) - .setLotSize(LOT_SIZE) - .setIsinCode(ISIN_CODE) - .setMinPriceStep(MIN_PRICE_STEP) - .build(); - } - - @NotNull - @Override - public Security getTargetObject() { - return Security.builder() - .code(CODE) - .name(NAME) - .shortName(SHORT_NAME) - .classCode(CLASS_CODE) - .className(CLASS_NAME) - .faceValue(FACE_VALUE) - .faceUnit(FACE_UNIT) - .scale(SCALE) - .matDate(MAT_DATE) - .lotSize(LOT_SIZE) - .isinCode(ISIN_CODE) - .minPriceStep(MIN_PRICE_STEP) - .build(); - } - - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); - } - - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); - } - - @NotNull - @Override - public QluaStructures.Security getErrorObject_AsPbMessage() { - return QluaStructures.Security.newBuilder().build(); - } - - @NotNull - @Override - public Security getErrorObject() { - return Security.builder().build(); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java deleted file mode 100644 index bce4d34..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ServiceErrorPbSerdeTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.ServiceError; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ServiceErrorPbSerdeTest { - - private static SerdeModule sut; - - private static ServiceError expectedObject; - private static byte[] expectedPbInput; - - private static ServiceError expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new ServiceError(500, "Ошибочка вышла."); - expectedPbInput = qlua.rpc.RPC.Error.newBuilder() - .setCode(500) - .setMessage("Ошибочка вышла.") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = new ServiceError(404, null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.RPC.Error.newBuilder() - .setCode(404) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); - } - - @Test - public void testDeserialize() { - - final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final ServiceError actualObject = sut.deserialize(ServiceError.class, expectedPbInputWithOnlyRequiredFields); - - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java deleted file mode 100644 index 775788b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopOrderPbSerdeTest.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.StopOrder; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class StopOrderPbSerdeTest { - - private static SerdeModule sut; - - private static StopOrder expectedObject; - private static byte[] expectedPbInput; - - private static StopOrder expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = StopOrder.builder() - .orderNum(1L) - .orderTime("2") - .flags(3) - .brokerRef("4") - .firmId("5") - .account("6") - .condition(7) - .conditionPrice("8") - .price("9") - .qty(10) - .linkedOrder("11") - .expiry("12") - .transId("13") - .clientCode("14") - .coOrderNum("15") - .coOrderPrice("16") - .stopOrderType(17) - .orderDate("18") - .allTradeNum("19") - .stopFlags(20) - .offset("21") - .spread("22") - .balance("23") - .uid("24") - .filledQty(25) - .withdrawTime("26") - .conditionPrice2("27") - .activeFromTime("28") - .activeToTime("29") - .secCode("30") - .classCode("31") - .conditionSecCode("32") - .conditionClassCode("33") - .canceledUid("34") - .orderDateTime(dateTimeEntry) - .withdrawDateTime(dateTimeEntry) - .build(); - expectedPbInput = QluaStructures.StopOrder.newBuilder() - .setOrderNum(1L) - .setOrdertime("2") - .setFlags(3) - .setBrokerref("4") - .setFirmid("5") - .setAccount("6") - .setCondition(7) - .setConditionPrice("8") - .setPrice("9") - .setQty(10) - .setLinkedorder("11") - .setExpiry("12") - .setTransId("13") - .setClientCode("14") - .setCoOrderNum("15") - .setCoOrderPrice("16") - .setStopOrderType(17) - .setOrderdate("18") - .setAlltradeNum("19") - .setStopflags(20) - .setOffset("21") - .setSpread("22") - .setBalance("23") - .setUid("24") - .setFilledQty(25) - .setWithdrawTime("26") - .setConditionPrice2("27") - .setActiveFromTime("28") - .setActiveToTime("29") - .setSecCode("30") - .setClassCode("31") - .setConditionSecCode("32") - .setConditionClassCode("33") - .setCanceledUid("34") - .setOrderDateTime(pbDateTimeEntry) - .setWithdrawDatetime(pbDateTimeEntry) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = StopOrder.builder() - .orderNum(1L) - .flags(2) - .condition(3) - .qty(4) - .stopOrderType(5) - .stopFlags(6) - .filledQty(7) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.StopOrder.newBuilder() - .setOrderNum(1L) - .setFlags(2) - .setCondition(3) - .setQty(4) - .setStopOrderType(5) - .setStopflags(6) - .setFilledQty(7) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(StopOrder.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(StopOrder.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java deleted file mode 100644 index 2a15cca..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TradePbSerdeTest.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.Trade; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class TradePbSerdeTest { - - private static SerdeModule sut; - - private static Trade expectedObject; - private static byte[] expectedPbInput; - - private static Trade expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = Trade.builder() - .tradeNum(1L) - .orderNum(2L) - .brokerRef("3") - .userId("4") - .firmId("5") - .canceledUid("6") - .account("7") - .price("8") - .qty(9) - .value("10") - .accruedInt("11") - .yield("12") - .settleCode("13") - .cpFirmId("14") - .flags(15) - .price2("16") - .repoRate("17") - .clientCode("18") - .accrued2("19") - .repoTerm("20") - .repoValue("21") - .repo2Value("22") - .startDiscount("23") - .lowerDiscount("24") - .upperDiscount("25") - .blockSecurities("26") - .clearingComission("27") - .exchangeComission("28") - .techCenterComission("29") - .settleDate("30") - .settleCurrency("31") - .tradeCurrency("32") - .exchangeCode("33") - .stationId("34") - .secCode("35") - .classCode("36") - .datetime(dateTimeEntry) - .bankAccId("38") - .brokerComission("39") - .linkedTrade("40") - .period(41) - .transId("42") - .kind(43) - .clearingBankAccId("44") - .canceledDatetime(dateTimeEntry) - .clearingFirmId("46") - .systemRef("47") - .uid("48") - .build(); - expectedPbInput = QluaStructures.Trade.newBuilder() - .setTradeNum(1L) - .setOrderNum(2L) - .setBrokerref("3") - .setUserid("4") - .setFirmid("5") - .setCanceledUid("6") - .setAccount("7") - .setPrice("8") - .setQty(9) - .setValue("10") - .setAccruedint("11") - .setYield("12") - .setSettlecode("13") - .setCpfirmid("14") - .setFlags(15) - .setPrice2("16") - .setReporate("17") - .setClientCode("18") - .setAccrued2("19") - .setRepoterm("20") - .setRepovalue("21") - .setRepo2Value("22") - .setStartDiscount("23") - .setLowerDiscount("24") - .setUpperDiscount("25") - .setBlockSecurities("26") - .setClearingComission("27") - .setExchangeComission("28") - .setTechCenterComission("29") - .setSettleDate("30") - .setSettleCurrency("31") - .setTradeCurrency("32") - .setExchangeCode("33") - .setStationId("34") - .setSecCode("35") - .setClassCode("36") - .setDatetime(pbDateTimeEntry) - .setBankAccId("38") - .setBrokerComission("39") - .setLinkedTrade("40") - .setPeriod(41) - .setTransId("42") - .setKind(43) - .setClearingBankAccid("44") - .setCanceledDatetime(pbDateTimeEntry) - .setClearingFirmid("46") - .setSystemRef("47") - .setUid("48") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = Trade.builder() - .tradeNum(1L) - .orderNum(2L) - .qty(3) - .flags(4) - .period(5) - .kind(6) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Trade.newBuilder() - .setTradeNum(1L) - .setOrderNum(2L) - .setQty(3) - .setFlags(4) - .setPeriod(5) - .setKind(6) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(Trade.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(Trade.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java deleted file mode 100644 index 9b9c220..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/TransReplyPbSerdeTest.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.api.structures.TransReply; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.structs.QluaStructures; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class TransReplyPbSerdeTest { - - private static SerdeModule sut; - - private static TransReply expectedObject; - private static byte[] expectedPbInput; - - private static TransReply expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = TransReply.builder() - .transId(1L) - .status(2) - .resultMsg("3") - .dateTime(dateTimeEntry) - .uid("5") - .flags(6) - .serverTransId("7") - .orderNum("8") - .price("9") - .quantity("10") - .balance("11") - .firmId("12") - .account("13") - .clientCode("14") - .brokerRef("15") - .classCode("16") - .secCode("17") - .exchangeCode("18") - .build(); - expectedPbInput = QluaStructures.Transaction.newBuilder() - .setTransId(1L) - .setStatus(2) - .setResultMsg("3") - .setDateTime(pbDateTimeEntry) - .setUid("5") - .setFlags(6) - .setServerTransId("7") - .setOrderNum("8") - .setPrice("9") - .setQuantity("10") - .setBalance("11") - .setFirmId("12") - .setAccount("13") - .setClientCode("14") - .setBrokerref("15") - .setClassCode("16") - .setSecCode("17") - .setExchangeCode("18") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = TransReply.builder() - .transId(1L) - .status(2) - .flags(3) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Transaction.newBuilder() - .setTransId(1L) - .setStatus(2) - .setFlags(3) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(TransReply.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(TransReply.class, expectedPbInputWithOnlyRequiredFields) - ); - } -} From dd0bd146762b6479c2e0485683a7abd4422bb96f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:02:31 +0300 Subject: [PATCH 351/549] Removed unused import. --- .../lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java index 02954ff..3f16b1a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java @@ -1,7 +1,6 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.serde.Deserializer; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; import com.google.protobuf.MessageLite; import org.jetbrains.annotations.NotNull; import org.junit.Test; From 514c4d25d34ce4252788d04331546997ee68ef9f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:03:48 +0300 Subject: [PATCH 352/549] Rewrote test for AddColumn.Args protobuf serialization. --- .../protobuf/AddColumnArgsPbSerdeTest.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java new file mode 100644 index 0000000..206b13a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java @@ -0,0 +1,49 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class AddColumnArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int I_CODE = 2; + private static final String NAME = "3"; + private static final AddColumn.ColumnParameterType PAR_TYPE = AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + private static final qlua.rpc.AddColumn.ColumnParameterType PB_PAR_TYPE = qlua.rpc.AddColumn.ColumnParameterType.QTABLE_INT64_TYPE; + private static final boolean IS_DEFAULT = true; + private static final int WIDTH = 6; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return AddColumnArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.AddColumn.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.AddColumn.Request.newBuilder() + .setTId(T_ID) + .setIcode(I_CODE) + .setName(NAME) + .setParType(PB_PAR_TYPE) // TODO: add tests for all the enum values + .setIsDefault(IS_DEFAULT) + .setWidth(WIDTH) + .build(); + } + + @NotNull + @Override + public AddColumn.Args getTargetObject() { + + return AddColumn.Args.builder() + .tId(T_ID) + .iCode(I_CODE) + .name(NAME) + .parType(PAR_TYPE) + .isDefault(IS_DEFAULT) + .width(WIDTH) + .build(); + } +} From 8dc1cb090d642aa1720351f755b553554f8d2332 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:04:07 +0300 Subject: [PATCH 353/549] Rewrote test for AddLabel.Args protobuf serialization. --- .../protobuf/AddLabelArgsPbSerdeTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerdeTest.java new file mode 100644 index 0000000..2dc007c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.common.collect.ImmutableMap; +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +public class AddLabelArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CHART_TAG = "1"; + private static final Map LABEL_PARAMS = + ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + ); + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return AddLabelArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.AddLabel.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.AddLabel.Request.newBuilder() + .setChartTag(CHART_TAG) + .putAllLabelParams(LABEL_PARAMS) + .build(); + } + + @NotNull + @Override + public AddLabel.Args getTargetObject() { + + return AddLabel.Args.builder() + .chartTag(CHART_TAG) + .labelParams(LABEL_PARAMS) + .build(); + } +} From ef8d30d76f95a92c1a7b647cd780996ce1b3458a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:04:32 +0300 Subject: [PATCH 354/549] Rewrote test for CalcBuySell.Args protobuf serialization. --- .../protobuf/CalcBuySellArgsPbSerdeTest.java | 51 ++++++++++++++ .../CalcBuySellRequestPbSerdeTest.java | 69 ------------------- 2 files changed, 51 insertions(+), 69 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java new file mode 100644 index 0000000..8359e8b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java @@ -0,0 +1,51 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class CalcBuySellArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String CLIENT_CODE = "3"; + private static final String ACCOUNT = "4"; + private static final String PRICE = "5"; + private static final boolean IS_BUY = true; + private static final boolean IS_MARKET = true; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return CalcBuySellArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.CalcBuySell.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.CalcBuySell.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setClientCode(CLIENT_CODE) + .setAccount(ACCOUNT) + .setPrice(PRICE) + .setIsBuy(IS_BUY) + .setIsMarket(IS_MARKET) + .build(); + } + + @NotNull + @Override + public CalcBuySell.Args getTargetObject() { + + return CalcBuySell.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .clientCode(CLIENT_CODE) + .account(ACCOUNT) + .price(PRICE) + .isBuy(IS_BUY) + .isMarket(IS_MARKET) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java deleted file mode 100644 index 1bf905a..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellRequestPbSerdeTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CalcBuySellRequestPbSerdeTest { - - private static SerdeModule sut; - - private static CalcBuySell.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = CalcBuySell.Request.builder() - .classCode("1") - .secCode("2") - .clientCode("3") - .account("4") - .price("5") - .isBuy(true) - .isMarket(true) - .build(); - final ByteString pbArgs = qlua.rpc.CalcBuySell.Request.newBuilder() - .setClassCode("1") - .setSecCode("2") - .setClientCode("3") - .setAccount("4") - .setPrice("5") - .setIsBuy(true) - .setIsMarket(true) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.CALC_BUY_SELL) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CalcBuySell.Request actualObject = sut.deserialize(CalcBuySell.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From 6a9e5b334bb67fef02d9585568b17ba289482f9f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:04:48 +0300 Subject: [PATCH 355/549] Rewrote test for CancelParamRequest.Args protobuf serialization. --- .../CancelParamRequestArgsPbSerdeTest.java | 39 ++++++++++++ .../CancelParamRequestRequestPbSerdeTest.java | 61 ------------------- 2 files changed, 39 insertions(+), 61 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerdeTest.java new file mode 100644 index 0000000..ae3f180 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerdeTest.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class CancelParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String DB_NAME = "3"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return CancelParamRequestArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.CancelParamRequest.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.CancelParamRequest.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setDbName(DB_NAME) + .build(); + } + + @NotNull + @Override + public CancelParamRequest.Args getTargetObject() { + + return CancelParamRequest.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .dbName(DB_NAME) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java deleted file mode 100644 index cb5058e..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestRequestPbSerdeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CancelParamRequestRequestPbSerdeTest { - - private static SerdeModule sut; - - private static CancelParamRequest.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = CancelParamRequest.Request.builder() - .classCode("1") - .secCode("2") - .dbName("3") - .build(); - final ByteString pbArgs = qlua.rpc.CancelParamRequest.Request.newBuilder() - .setClassCode("1") - .setSecCode("2") - .setDbName("3") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.CANCEL_PARAM_REQUEST) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CancelParamRequest.Request actualObject = sut.deserialize(CancelParamRequest.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From 37772a83a7837ceca50186405618d8678b171843 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:05:03 +0300 Subject: [PATCH 356/549] Rewrote test for Clear.Args protobuf serialization. --- .../serde/protobuf/ClearArgsPbSerdeTest.java | 30 ++++++++++ .../protobuf/ClearRequestPbSerdeTest.java | 55 ------------------- 2 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java new file mode 100644 index 0000000..85c29c5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Clear; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class ClearArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return ClearArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.Clear.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.Clear.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public Clear.Args getTargetObject() { + return new Clear.Args(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java deleted file mode 100644 index fc53d80..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class ClearRequestPbSerdeTest { - - private static SerdeModule sut; - - private static Clear.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new Clear.Request(1); - final ByteString pbArgs = qlua.rpc.Clear.Request.newBuilder() - .setTId(1) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.CLEAR) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final Clear.Request actualObject = sut.deserialize(Clear.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From aa97ffba484fbba11ffc95b9549614a01bc5843d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:05:21 +0300 Subject: [PATCH 357/549] Rewrote test for CreateWindow.Args protobuf serialization. --- .../protobuf/CreateWindowArgsPbSerdeTest.java | 30 ++++++++++ .../CreateWindowRequestPbSerdeTest.java | 55 ------------------- 2 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerdeTest.java new file mode 100644 index 0000000..38bb430 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class CreateWindowArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return CreateWindowArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.CreateWindow.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.CreateWindow.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public CreateWindow.Args getTargetObject() { + return new CreateWindow.Args(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java deleted file mode 100644 index 32835eb..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CreateWindowRequestPbSerdeTest { - - private static SerdeModule sut; - - private static CreateWindow.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new CreateWindow.Request(1); - final ByteString pbArgs = qlua.rpc.CreateWindow.Request.newBuilder() - .setTId(1) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.CREATE_WINDOW) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final CreateWindow.Request actualObject = sut.deserialize(CreateWindow.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From 94fd8bcd68153a907d92410c8d9038c5395310c1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:05:37 +0300 Subject: [PATCH 358/549] Rewrote test for DelAllLabels.Args protobuf serialization. --- .../protobuf/DelAllLabelsArgsPbSerdeTest.java | 30 ++++++++++ .../DelAllLabelsRequestPbSerdeTest.java | 55 ------------------- 2 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerdeTest.java new file mode 100644 index 0000000..e3c3cbb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DelAllLabelsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CHART_TAG = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DelAllLabelsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.DelAllLabels.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.DelAllLabels.Request.newBuilder() + .setChartTag(CHART_TAG) + .build(); + } + + @NotNull + @Override + public DelAllLabels.Args getTargetObject() { + return new DelAllLabels.Args(CHART_TAG); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java deleted file mode 100644 index d2cd32b..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DelAllLabelsRequestPbSerdeTest { - - private static SerdeModule sut; - - private static DelAllLabels.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new DelAllLabels.Request("1"); - final ByteString pbArgs = qlua.rpc.DelAllLabels.Request.newBuilder() - .setChartTag("1") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.DEL_ALL_LABELS) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DelAllLabels.Request actualObject = sut.deserialize(DelAllLabels.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From e6fbd65497aa178dc41890f42a7a4849373cd0c7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:06:08 +0300 Subject: [PATCH 359/549] Rewrote test for DeleteRow.Args protobuf serialization. --- .../protobuf/DeleteRowArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerdeTest.java new file mode 100644 index 0000000..71854ba --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DeleteRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DeleteRowArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int KEY = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DeleteRowArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.DeleteRow.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.DeleteRow.Request.newBuilder() + .setTId(T_ID) + .setKey(KEY) + .build(); + } + + @NotNull + @Override + public DeleteRow.Args getTargetObject() { + + return DeleteRow.Args.builder() + .tId(T_ID) + .key(KEY) + .build(); + } +} From 4064ae010d2eda2083163902c92b3ce23d3fbfa1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:06:23 +0300 Subject: [PATCH 360/549] Rewrote test for DelLabel.Args protobuf serialization. --- .../protobuf/DelLabelArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerdeTest.java new file mode 100644 index 0000000..2a61959 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DelLabelArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CHART_TAG = "1"; + private static final int LABEL_ID = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DelLabelArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.DelLabel.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.DelLabel.Request.newBuilder() + .setChartTag(CHART_TAG) + .setLabelId(LABEL_ID) + .build(); + } + + @NotNull + @Override + public DelLabel.Args getTargetObject() { + return new DelLabel.Args(CHART_TAG, LABEL_ID); + } +} From 00d49ad1c91a635f2200b4d1b4513f6cb6b0a6ff Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:06:39 +0300 Subject: [PATCH 361/549] Rewrote test for DestroyTable.Args protobuf serialization. --- .../protobuf/DestroyTableArgsPbSerdeTest.java | 30 ++++++++++ .../DestroyTableRequestPbSerdeTest.java | 55 ------------------- 2 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerdeTest.java new file mode 100644 index 0000000..f6d1863 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DestroyTableArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DestroyTableArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.DestroyTable.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.DestroyTable.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public DestroyTable.Args getTargetObject() { + return new DestroyTable.Args(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java deleted file mode 100644 index bf7cfa8..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.DestroyTable; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DestroyTableRequestPbSerdeTest { - - private static SerdeModule sut; - - private static DestroyTable.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new DestroyTable.Request(1); - final ByteString pbArgs = qlua.rpc.DestroyTable.Request.newBuilder() - .setTId(1) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.DESTROY_TABLE) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final DestroyTable.Request actualObject = sut.deserialize(DestroyTable.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From bdfd35392fc2412769278b791db16380c31e53ff Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:06:57 +0300 Subject: [PATCH 362/549] Rewrote test for GetBuySellInfo.Args protobuf serialization. --- .../GetBuySellInfoArgsPbSerdeTest.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerdeTest.java new file mode 100644 index 0000000..70daf77 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetBuySellInfoArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final String CLASS_CODE = "3"; + private static final String SEC_CODE = "4"; + private static final String PRICE = "5"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetBuySellInfoArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetBuySellInfo.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetBuySellInfo.Request.newBuilder() + .setFirmId(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setPrice(PRICE) + .build(); + } + + @NotNull + @Override + public GetBuySellInfo.Args getTargetObject() { + + return GetBuySellInfo.Args.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .price(PRICE) + .build(); + } +} From 55069c68cbd4dbdbbecd0af4c16d81bd79a2501c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 17:07:21 +0300 Subject: [PATCH 363/549] Rewrote test for GetBuySellInfoEx.Args protobuf serialization. --- .../GetBuySellInfoExArgsPbSerdeTest.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerdeTest.java new file mode 100644 index 0000000..811b581 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetBuySellInfoExArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final String CLASS_CODE = "3"; + private static final String SEC_CODE = "4"; + private static final String PRICE = "5"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetBuySellInfoExArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetBuySellInfoEx.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetBuySellInfoEx.Request.newBuilder() + .setFirmId(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setPrice(PRICE) + .build(); + } + + @NotNull + @Override + public GetBuySellInfoEx.Args getTargetObject() { + + return GetBuySellInfoEx.Args.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .price(PRICE) + .build(); + } +} From ba3c8a323da1e31a53e74223c94b29dc69a4d485 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:00:06 +0300 Subject: [PATCH 364/549] Rewrote test for GetCandlesByIndex.Args protobuf serialization. --- .../GetCandlesByIndexArgsPbSerdeTest.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java new file mode 100644 index 0000000..21962f5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetCandlesByIndexArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TAG = "1"; + private static final int LINE = 2; + private static final int FIRST_CANDLE = 3; + private static final int COUNT = 4; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetCandlesByIndexArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetCandlesByIndex.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetCandlesByIndex.Request.newBuilder() + .setTag(TAG) + .setLine(LINE) + .setFirstCandle(FIRST_CANDLE) + .setCount(COUNT) + .build(); + } + + @NotNull + @Override + public GetCandlesByIndex.Args getTargetObject() { + + return GetCandlesByIndex.Args.builder() + .tag(TAG) + .line(LINE) + .firstCandle(FIRST_CANDLE) + .count(COUNT) + .build(); + } +} From 8b8082e30773135d57e77bb61e92f3a98dd297df Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:02:26 +0300 Subject: [PATCH 365/549] Rewrote test for GetCell.Args protobuf serialization. --- .../protobuf/GetCellArgsPbSerdeTest.java | 39 ++++++++++++ .../protobuf/GetCellRequestPbSerdeTest.java | 61 ------------------- 2 files changed, 39 insertions(+), 61 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java new file mode 100644 index 0000000..7417447 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetCell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetCellArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int KEY = 2; + private static final int CODE = 3; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetCellArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetCell.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetCell.Request.newBuilder() + .setTId(T_ID) + .setKey(KEY) + .setCode(CODE) + .build(); + } + + @NotNull + @Override + public GetCell.Args getTargetObject() { + + return GetCell.Args.builder() + .tId(T_ID) + .key(KEY) + .code(CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java deleted file mode 100644 index efa2059..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellRequestPbSerdeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetCellRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetCell.Args expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetCell.Args.builder() - .tId(1) - .key(2) - .code(3) - .build(); - final ByteString pbArgs = qlua.rpc.GetCell.Request.newBuilder() - .setTId(1) - .setKey(2) - .setCode(3) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_CELL) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetCell.Args actualObject = sut.deserialize(GetCell.Args.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From 4ed4fe1795405d762c6c50620473e886bf75c3d7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:07:46 +0300 Subject: [PATCH 366/549] Rewrote test for GetClassInfo.Args protobuf serialization; fixed bug in GetClassInfo. --- .../lua/rpc/api/messages/GetClassInfo.java | 7 ++- .../protobuf/GetClassInfoArgsPbSerdeTest.java | 30 ++++++++++ .../GetClassInfoRequestPbSerdeTest.java | 55 ------------------- 3 files changed, 34 insertions(+), 58 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java index 0ed4ec6..5d36e22 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetClassInfo.java @@ -22,16 +22,17 @@ public static final class Args implements RpcArgs { private static final String CLASS_CODE = "class_code"; - @JsonProperty(CLASS_CODE) + @JsonProperty(value = CLASS_CODE, required = true) private final String classCode; public Args(@NonNull final String classCode) { this.classCode = classCode; } + @NotNull @JsonIgnore - public static String getClassCode() { - return CLASS_CODE; + public String getClassCode() { + return classCode; } @NotNull diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerdeTest.java new file mode 100644 index 0000000..eb1ac77 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetClassInfoArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetClassInfoArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetClassInfo.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetClassInfo.Request.newBuilder() + .setClassCode(CLASS_CODE) + .build(); + } + + @NotNull + @Override + public GetClassInfo.Args getTargetObject() { + return new GetClassInfo.Args(CLASS_CODE); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java deleted file mode 100644 index 6c5a018..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetClassInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetClassInfoRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassInfo.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetClassInfo.Request("1"); - final ByteString pbArgs = qlua.rpc.GetClassInfo.Request.newBuilder() - .setClassCode("1") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_CLASS_INFO) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetClassInfo.Request actualObject = sut.deserialize(GetClassInfo.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From abcd1c86169af33e8e881cba0edafe50f52f1e08 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:09:47 +0300 Subject: [PATCH 367/549] Rewrote test for GetClassSecurities.Args protobuf serialization. --- .../GetClassSecuritiesArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerdeTest.java new file mode 100644 index 0000000..b62ccc9 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetClassSecurities; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetClassSecuritiesArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetClassSecuritiesArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetClassSecurities.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetClassSecurities.Request.newBuilder() + .setClassCode(CLASS_CODE) + .build(); + } + + @NotNull + @Override + public GetClassSecurities.Args getTargetObject() { + return new GetClassSecurities.Args(CLASS_CODE); + } +} From f250ba74e7fb4d334f966621d5a4fd97c7182a50 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:12:45 +0300 Subject: [PATCH 368/549] Rewrote test for GetDepoEx.Args protobuf serialization. --- .../protobuf/GetDepoExArgsPbSerdeTest.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerdeTest.java new file mode 100644 index 0000000..ea05d3f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetDepoExArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final String SEC_CODE = "3"; + private static final String TRD_ACC_ID = "4"; + private static final int LIMIT_KIND = 5; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetDepoExArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetDepoEx.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetDepoEx.Request.newBuilder() + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .setLimitKind(LIMIT_KIND) + .build(); + } + + @NotNull + @Override + public GetDepoEx.Args getTargetObject() { + + return GetDepoEx.Args.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .secCode(SEC_CODE) + .trdAccId(TRD_ACC_ID) + .limitKind(LIMIT_KIND) + .build(); + } +} From 297e1c19bbdad98579c851c63874c668be68ec56 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:14:42 +0300 Subject: [PATCH 369/549] Rewrote test for GetDepo.Args protobuf serialization. --- ...eTest.java => GetDepoArgsPbSerdeTest.java} | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetDepoRequestPbSerdeTest.java => GetDepoArgsPbSerdeTest.java} (61%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java similarity index 61% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java index c593d76..f70214d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java @@ -1,48 +1,42 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; -import com.google.protobuf.MessageLite; +import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -import qlua.rpc.RPC; -public class GetDepoRequestPbSerdeTest extends AbstractRequestPbSerdeTest { +public class GetDepoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLIENT_CODE = "1"; private static final String FIRM_ID = "2"; private static final String SEC_CODE = "3"; private static final String TRD_ACC_ID = "4"; - @NotNull @Override - public RPC.ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_DEPO; + public @NotNull Serializer getSerializerUnderTest() { + return GetDepoArgsPbSerializer.INSTANCE; } @NotNull @Override - public Class getTargetObjectClass() { - return GetDepo.Request.class; + public qlua.rpc.GetDepo.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetDepo.Request.newBuilder() + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .build(); } @NotNull @Override - public GetDepo.Request getTargetObject() { - return GetDepo.Request.builder() - .clientCode(CLIENT_CODE) + public GetDepo.Args getTargetObject() { + + return GetDepo.Args.builder() .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) .secCode(SEC_CODE) .trdAccId(TRD_ACC_ID) .build(); } - - @NotNull - @Override - public MessageLite getPbRequestArgs() { - return qlua.rpc.GetDepo.Request.newBuilder() - .setClientCode(CLIENT_CODE) - .setFirmid(FIRM_ID) - .setSecCode(SEC_CODE) - .setTrdaccid(TRD_ACC_ID) - .build(); - } } From c5c97f65f1dae0c49e02d7d0f546eaa4fae23588 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:17:17 +0300 Subject: [PATCH 370/549] Rewrote test for GetFuturesHolding.Args protobuf serialization. --- .../GetFuturesHoldingArgsPbSerdeTest.java | 42 +++++++++++++ .../GetFuturesHoldingRequestPbSerdeTest.java | 60 ------------------- 2 files changed, 42 insertions(+), 60 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerdeTest.java new file mode 100644 index 0000000..2ecf375 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerdeTest.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetFuturesHoldingArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String TRD_ACC_ID = "2"; + private static final String SEC_CODE = "3"; + private static final int TYPE = 4; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetFuturesHoldingArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetFuturesHolding.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetFuturesHolding.Request.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRD_ACC_ID) + .setSecCode(SEC_CODE) + .setType(TYPE) + .build(); + } + + @NotNull + @Override + public GetFuturesHolding.Args getTargetObject() { + + return GetFuturesHolding.Args.builder() + .firmId(FIRM_ID) + .trdAccId(TRD_ACC_ID) + .secCode(SEC_CODE) + .type(TYPE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java deleted file mode 100644 index 4fdee63..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingRequestPbSerdeTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetFuturesHoldingRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetFuturesHolding.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetFuturesHolding.Request.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .build(); - final ByteString pbArgs = qlua.rpc.GetFuturesHolding.Request.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setSecCode("3") - .setType(4) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_FUTURES_HOLDING) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetFuturesHolding.Request.class, expectedPbInput)); - } -} From 92c068c929078777d018a5dd0e2c9ffa5d62a27a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:20:16 +0300 Subject: [PATCH 371/549] Rewrote test for GetFuturesLimit.Args protobuf serialization. --- .../GetFuturesLimitArgsPbSerdeTest.java | 42 +++++++++++++ .../GetFuturesLimitRequestPbSerdeTest.java | 60 ------------------- 2 files changed, 42 insertions(+), 60 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java new file mode 100644 index 0000000..5557f68 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetFuturesLimitArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String TRD_ACC_ID = "2"; + private static final int LIMIT_TYPE = 3; + private static final String CURR_CODE = "4"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetFuturesLimitArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetFuturesLimit.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetFuturesLimit.Request.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRD_ACC_ID) + .setLimitType(LIMIT_TYPE) + .setCurrcode(CURR_CODE) + .build(); + } + + @NotNull + @Override + public GetFuturesLimit.Args getTargetObject() { + + return GetFuturesLimit.Args.builder() + .firmId(FIRM_ID) + .trdAccId(TRD_ACC_ID) + .limitType(LIMIT_TYPE) + .currCode(CURR_CODE) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java deleted file mode 100644 index 31a51e4..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitRequestPbSerdeTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetFuturesLimitRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetFuturesLimit.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = GetFuturesLimit.Request.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .currCode("4") - .build(); - final ByteString pbArgs = qlua.rpc.GetFuturesLimit.Request.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setLimitType(3) - .setCurrcode("4") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_FUTURES_LIMIT) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetFuturesLimit.Request.class, expectedPbInput)); - } -} From 7d965c655e7ec846ec185831f134aa0f75a8365b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:22:35 +0300 Subject: [PATCH 372/549] Rewrote test for GetInfoParam.Args protobuf serialization. --- .../protobuf/GetInfoParamArgsPbSerdeTest.java | 30 ++++++++++ .../GetInfoParamRequestPbSerdeTest.java | 55 ------------------- 2 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java new file mode 100644 index 0000000..aa6955f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetInfoParamArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String PARAM_NAME = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetInfoParamArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetInfoParam.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetInfoParam.Request.newBuilder() + .setParamName(PARAM_NAME) + .build(); + } + + @NotNull + @Override + public GetInfoParam.Args getTargetObject() { + return new GetInfoParam.Args(PARAM_NAME); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java deleted file mode 100644 index f767dd5..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamRequestPbSerdeTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetInfoParamRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetInfoParam.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetInfoParam.Request("1"); - final ByteString pbArgs = qlua.rpc.GetInfoParam.Request.newBuilder() - .setParamName("1") - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_INFO_PARAM) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetInfoParam.Request actualObject = sut.deserialize(GetInfoParam.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } -} From 00063b9c28c4d06e1c7e74a89dc9c88f8a7ea5be Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 11 Nov 2018 21:24:41 +0300 Subject: [PATCH 373/549] Rewrote test for GetItem.Args protobuf serialization. --- .../protobuf/GetItemArgsPbSerdeTest.java | 32 +++++++++++ .../protobuf/GetItemRequestPbSerdeTest.java | 53 ------------------- 2 files changed, 32 insertions(+), 53 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerdeTest.java new file mode 100644 index 0000000..22eb0f8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetItem; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetItemArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TABLE_NAME = "1"; + private static final int INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetItemArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetItem.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetItem.Request.newBuilder() + .setTableName(TABLE_NAME) + .setIndex(INDEX) + .build(); + } + + @NotNull + @Override + public GetItem.Args getTargetObject() { + return new GetItem.Args(TABLE_NAME, INDEX); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java deleted file mode 100644 index a36359d..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemRequestPbSerdeTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetItemRequestPbSerdeTest { - - private static SerdeModule sut; - - private static GetItem.Request expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetItem.Request("1", 2); - final ByteString pbArgs = qlua.rpc.GetItem.Request.newBuilder() - .setTableName("1") - .setIndex(2) - .build() - .toByteString(); - expectedPbInput = - RPC.Request.newBuilder() - .setType(RPC.ProcedureType.GET_ITEM) - .setArgs(pbArgs) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetItem.Request.class, expectedPbInput)); - } -} From 1a9e513670fa0100fafcf50ed1f8073d725ddba8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:03:26 +0300 Subject: [PATCH 374/549] Rewrote test for GetLabelParams.Args protobuf serialization. --- .../GetLabelParamsArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerdeTest.java new file mode 100644 index 0000000..8527d7f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetLabelParamsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CHART_TAG = "1"; + private static final int LABEL_ID = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetLabelParamsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetLabelParams.Args getTargetObjectAsPbMessage() { + + return qlua.rpc.GetLabelParams.Args.newBuilder() + .setChartTag(CHART_TAG) + .setLabelId(LABEL_ID) + .build(); + } + + @NotNull + @Override + public GetLabelParams.Args getTargetObject() { + return new GetLabelParams.Args(CHART_TAG, LABEL_ID); + } +} From 87c6f5761d11e4d74068ddacc710bb4dde2b3968 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:05:23 +0300 Subject: [PATCH 375/549] Rewrote test for GetLinesCount.Args protobuf serialization. --- .../GetLinesCountArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerdeTest.java new file mode 100644 index 0000000..d4a4e43 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetLinesCountArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TAG = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetLinesCountArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetLinesCount.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetLinesCount.Request.newBuilder() + .setTag(TAG) + .build(); + } + + @NotNull + @Override + public GetLinesCount.Args getTargetObject() { + return new GetLinesCount.Args(TAG); + } +} From e82e537dd242a4c0b16dd012dc888d0ad2ed7b27 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:07:23 +0300 Subject: [PATCH 376/549] Rewrote test for GetMoneyEx.Args protobuf serialization. --- .../GetMoneyExRequestPbSerdeTest.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java new file mode 100644 index 0000000..a17df8f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java @@ -0,0 +1,45 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetMoneyExRequestPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + private static final String TAG = "3"; + private static final String CURR_CODE = "4"; + private static final int LIMIT_KIND = 5; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetMoneyExArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetMoneyEx.Request.newBuilder() + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setTag(TAG) + .setCurrcode(CURR_CODE) + .setLimitKind(LIMIT_KIND) + .build(); + } + + @NotNull + @Override + public GetMoneyEx.Args getTargetObject() { + + return GetMoneyEx.Args.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .tag(TAG) + .currCode(CURR_CODE) + .limitKind(LIMIT_KIND) + .build(); + } +} From 91ce7e30d7c57cc816c7e0b6e7eea5a0fdad7505 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:08:57 +0300 Subject: [PATCH 377/549] Rewrote test for GetMoney.Args protobuf serialization. --- .../protobuf/GetMoneyRequestPbSerdeTest.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java new file mode 100644 index 0000000..8e33aa8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java @@ -0,0 +1,42 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetMoneyRequestPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLIENT_CODE = "1"; + private static final String FIRM_ID = "2"; + private static final String TAG = "3"; + private static final String CURR_CODE = "4"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetMoneyArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetMoney.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetMoney.Request.newBuilder() + .setClientCode(CLIENT_CODE) + .setFirmid(FIRM_ID) + .setTag(TAG) + .setCurrcode(CURR_CODE) + .build(); + } + + @NotNull + @Override + public GetMoney.Args getTargetObject() { + + return GetMoney.Args.builder() + .clientCode(CLIENT_CODE) + .firmId(FIRM_ID) + .tag(TAG) + .currCode(CURR_CODE) + .build(); + } +} From a0510d3e0f90e17486e01f9cd0ba5254cb0c447d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:10:35 +0300 Subject: [PATCH 378/549] Renamed some protobuf serialization test classes. --- ...oneyRequestPbSerdeTest.java => GetMoneyArgsPbSerdeTest.java} | 2 +- ...ExRequestPbSerdeTest.java => GetMoneyExArgsPbSerdeTest.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetMoneyRequestPbSerdeTest.java => GetMoneyArgsPbSerdeTest.java} (90%) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetMoneyExRequestPbSerdeTest.java => GetMoneyExArgsPbSerdeTest.java} (91%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerdeTest.java similarity index 90% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerdeTest.java index 8e33aa8..72a4cf6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetMoneyRequestPbSerdeTest extends AbstractPbSerializationTest { +public class GetMoneyArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLIENT_CODE = "1"; private static final String FIRM_ID = "2"; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerdeTest.java similarity index 91% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerdeTest.java index a17df8f..57db938 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetMoneyExRequestPbSerdeTest extends AbstractPbSerializationTest { +public class GetMoneyExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; From 3e8724cbea3950dd7fad9885da0be4b3beb15c05 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:11:58 +0300 Subject: [PATCH 379/549] Rewrote test for GetNumberOf.Args protobuf serialization. --- .../protobuf/GetNumberOfArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerdeTest.java new file mode 100644 index 0000000..5c8362e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetNumberOfArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TABLE_NAME = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetNumberOfArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetNumberOf.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetNumberOf.Request.newBuilder() + .setTableName(TABLE_NAME) + .build(); + } + + @NotNull + @Override + public GetNumberOf.Args getTargetObject() { + return new GetNumberOf.Args(TABLE_NAME); + } +} From 9f7b3a007a31aa836f45f66af5a37cd61d1e2274 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:28:28 +0300 Subject: [PATCH 380/549] Rewrote test for GetNumCandles.Args protobuf serialization. --- .../GetNumCandlesArgsPbSerdeTest.java | 30 ++++++++++++++++ .../GetNumCandlesRequestPbSerdeTest.java | 35 ------------------- 2 files changed, 30 insertions(+), 35 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerdeTest.java new file mode 100644 index 0000000..cab79c4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetNumCandlesArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TAG = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetNumCandlesArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetNumCandles.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetNumCandles.Request.newBuilder() + .setTag(TAG) + .build(); + } + + @NotNull + @Override + public GetNumCandles.Args getTargetObject() { + return new GetNumCandles.Args(TAG); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java deleted file mode 100644 index e2c54f5..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetNumCandlesRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final String TAG = "1"; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_NUM_CANDLES; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetNumCandles.Request.newBuilder() - .setTag(TAG) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetNumCandles.Request.class; - } - - @NotNull - @Override - public GetNumCandles.Request getTargetObject() { - return new GetNumCandles.Request(TAG); - } -} From 5b4b33170b2d470cd5d28b8b29bda79b539820ce Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:30:19 +0300 Subject: [PATCH 381/549] Rewrote test for GetOrderByNumber.Args protobuf serialization. --- .../GetOrderByNumberArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerdeTest.java new file mode 100644 index 0000000..67c8a03 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetOrderByNumberArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final long ORDER_ID = 12345678910L; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetOrderByNumberArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetOrderByNumber.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setOrderId(ORDER_ID) + .build(); + } + + @NotNull + @Override + public GetOrderByNumber.Args getTargetObject() { + return new GetOrderByNumber.Args(CLASS_CODE, ORDER_ID); + } +} From dfbf6d5dce8c206109eacc8a4215c2bcd935a9c4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:32:14 +0300 Subject: [PATCH 382/549] Rewrote test for GetParamEx2.Args protobuf serialization. --- .../protobuf/GetParamEx2ArgsPbSerdeTest.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java new file mode 100644 index 0000000..11c2577 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java @@ -0,0 +1,39 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetParamEx2ArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final String PARAM_NAME = "3"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetParamEx2ArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetParamEx2.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetParamEx2.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setParamName(PARAM_NAME) + .build(); + } + + @NotNull + @Override + public GetParamEx2.Args getTargetObject() { + + return GetParamEx2.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .paramName(PARAM_NAME) + .build(); + } +} From af51012cca8cbd7af2a5eac17ea9223f61ae25f8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:33:31 +0300 Subject: [PATCH 383/549] Rewrote test for GetParamEx.Args protobuf serialization. --- ...st.java => GetParamExArgsPbSerdeTest.java} | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetParamExRequestPbSerdeTest.java => GetParamExArgsPbSerdeTest.java} (55%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerdeTest.java similarity index 55% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerdeTest.java index 81b430e..48fb0c3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerdeTest.java @@ -1,24 +1,24 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; -import com.google.protobuf.MessageLite; +import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; -public class GetParamExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { +public class GetParamExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; private static final String PARAM_NAME = "3"; @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_PARAM_EX; + public @NotNull Serializer getSerializerUnderTest() { + return GetParamExArgsPbSerializer.INSTANCE; } + @NotNull @Override - public @Nullable MessageLite getPbRequestArgs() { + public qlua.rpc.GetParamEx.Request getTargetObjectAsPbMessage() { + return qlua.rpc.GetParamEx.Request.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) @@ -26,15 +26,11 @@ public class GetParamExRequestPbSerdeTest extends AbstractRequestPbSerdeTest getTargetObjectClass() { - return GetParamEx.Request.class; - } - @NotNull @Override - public GetParamEx.Request getTargetObject() { - return GetParamEx.Request.builder() + public GetParamEx.Args getTargetObject() { + + return GetParamEx.Args.builder() .classCode(CLASS_CODE) .secCode(SEC_CODE) .paramName(PARAM_NAME) From ec3d09b21a94dd542ab2ce755b840af21112c039 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:35:26 +0300 Subject: [PATCH 384/549] Rewrote test for GetPortfolioInfoEx.Args protobuf serialization. --- ...=> GetPortfolioInfoExArgsPbSerdeTest.java} | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetPortfolioInfoExRequestPbSerdeTest.java => GetPortfolioInfoExArgsPbSerdeTest.java} (53%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java similarity index 53% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java index f9cf3d6..f8ab2dd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExRequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java @@ -1,24 +1,24 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; -import com.google.protobuf.MessageLite; +import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; -public class GetPortfolioInfoExRequestPbSerdeTest extends AbstractRequestPbSerdeTest { +public class GetPortfolioInfoExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; private static final int LIMIT_KIND = 3; @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_PORTFOLIO_INFO_EX; + public @NotNull Serializer getSerializerUnderTest() { + return GetPortfolioInfoExArgsPbSerializer.INSTANCE; } + @NotNull @Override - public @Nullable MessageLite getPbRequestArgs() { + public qlua.rpc.GetPortfolioInfoEx.Request getTargetObjectAsPbMessage() { + return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() .setFirmId(FIRM_ID) .setClientCode(CLIENT_CODE) @@ -26,15 +26,11 @@ public class GetPortfolioInfoExRequestPbSerdeTest extends AbstractRequestPbSerde .build(); } - @Override - public @NotNull Class getTargetObjectClass() { - return GetPortfolioInfoEx.Request.class; - } - @NotNull @Override - public GetPortfolioInfoEx.Request getTargetObject() { - return GetPortfolioInfoEx.Request.builder() + public GetPortfolioInfoEx.Args getTargetObject() { + + return GetPortfolioInfoEx.Args.builder() .firmId(FIRM_ID) .clientCode(CLIENT_CODE) .limitKind(LIMIT_KIND) From ac0ddcb812b0dd66cbf7b5a7bfbeea38be4ebbae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 01:36:42 +0300 Subject: [PATCH 385/549] Rewrote test for GetPortfolioInfo.Args protobuf serialization. --- .../GetPortfolioInfoArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerdeTest.java new file mode 100644 index 0000000..e4877b1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetPortfolioInfoArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String FIRM_ID = "1"; + private static final String CLIENT_CODE = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetPortfolioInfoArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfo.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetPortfolioInfo.Request.newBuilder() + .setFirmId(FIRM_ID) + .setClientCode(CLIENT_CODE) + .build(); + } + + @NotNull + @Override + public GetPortfolioInfo.Args getTargetObject() { + + return GetPortfolioInfo.Args.builder() + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .build(); + } +} From 15e9ceab48d595470fac460bb37776e5ebfbc2a4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 23:55:55 +0300 Subject: [PATCH 386/549] Rewrote test for GetQuoteLevel2.Args protobuf serialization. --- .../GetQuoteLevel2RequestPbSerdeTest.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java index 9750dd6..cabb3a7 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java @@ -1,38 +1,34 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; -import com.google.protobuf.MessageLite; +import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; -public class GetQuoteLevel2RequestPbSerdeTest extends AbstractRequestPbSerdeTest { +public class GetQuoteLevel2RequestPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_QUOTE_LEVEL2; + public @NotNull Serializer getSerializerUnderTest() { + return GetQuoteLevel2ArgsPbSerializer.INSTANCE; } + @NotNull @Override - public @Nullable MessageLite getPbRequestArgs() { + public qlua.rpc.GetQuoteLevel2.Request getTargetObjectAsPbMessage() { + return qlua.rpc.GetQuoteLevel2.Request.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .build(); } - @Override - public @NotNull Class getTargetObjectClass() { - return GetQuoteLevel2.Request.class; - } - @NotNull @Override - public GetQuoteLevel2.Request getTargetObject() { - return GetQuoteLevel2.Request.builder() + public GetQuoteLevel2.Args getTargetObject() { + + return GetQuoteLevel2.Args.builder() .classCode(CLASS_CODE) .secCode(SEC_CODE) .build(); From 3e8871817724f7b4ffeb09ad78045d322e7f05db Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 23:57:10 +0300 Subject: [PATCH 387/549] Renamed protobuf serialization test class. --- ...questPbSerdeTest.java => GetQuoteLevel2ArgsPbSerdeTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetQuoteLevel2RequestPbSerdeTest.java => GetQuoteLevel2ArgsPbSerdeTest.java} (87%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java similarity index 87% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java index cabb3a7..6766dfe 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2RequestPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetQuoteLevel2RequestPbSerdeTest extends AbstractPbSerializationTest { +public class GetQuoteLevel2ArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; From 470b462b9aa7b6f2912cc3ed08a430ee210750fd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Mon, 12 Nov 2018 23:59:34 +0300 Subject: [PATCH 388/549] Rewrote test for GetSecurityInfo.Args protobuf serialization. --- .../GetSecurityInfoArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerdeTest.java new file mode 100644 index 0000000..7861bbd --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetSecurityInfoArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetSecurityInfoArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetSecurityInfo.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetSecurityInfo.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @NotNull + @Override + public GetSecurityInfo.Args getTargetObject() { + + return GetSecurityInfo.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} From 667dedc93336861f50bc1688f265cf623dc304dd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:01:21 +0300 Subject: [PATCH 389/549] Rewrote test for GetTableSize.Args protobuf serialization. --- .../protobuf/GetTableSizeArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java new file mode 100644 index 0000000..4ea8cdd --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetTableSizeArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetTableSizeArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetTableSize.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetTableSize.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public GetTableSize.Args getTargetObject() { + return new GetTableSize.Args(T_ID); + } +} From 0cae0881f5cbf2ec5a88ca09ef32add648254330 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:03:04 +0300 Subject: [PATCH 390/549] Rewrote test for GetWindowCaption.Args protobuf serialization. --- .../GetWindowCaptionArgsPbSerdeTest.java | 30 ++++++++++++++++ .../GetWindowCaptionRequestPbSerdeTest.java | 35 ------------------- 2 files changed, 30 insertions(+), 35 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerdeTest.java new file mode 100644 index 0000000..d13c44c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetWindowCaptionArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetWindowCaption.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetWindowCaption.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public GetWindowCaption.Args getTargetObject() { + return new GetWindowCaption.Args(T_ID); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java deleted file mode 100644 index be0c8a5..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionRequestPbSerdeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetWindowCaptionRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_WINDOW_CAPTION; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.GetWindowCaption.Request.newBuilder() - .setTId(T_ID) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetWindowCaption.Request.class; - } - - @NotNull - @Override - public GetWindowCaption.Request getTargetObject() { - return new GetWindowCaption.Request(T_ID); - } -} From bf0786d1f3bdd2d533d4fa766c1c3d019bdc3dd2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:04:42 +0300 Subject: [PATCH 391/549] Rewrote test for GetWindowRect.Args protobuf serialization. --- .../GetWindowRectArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java new file mode 100644 index 0000000..fc82ded --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class GetWindowRectArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return GetWindowRectArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.GetWindowRect.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.GetWindowRect.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public GetWindowRect.Args getTargetObject() { + return new GetWindowRect.Args(T_ID); + } +} From 3191e1d5bb425ce985fc14412aa425c70d268123 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:06:35 +0300 Subject: [PATCH 392/549] Removed deprecated test. --- .../GetWorkingFolderRequestPbSerdeTest.java | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java deleted file mode 100644 index 4347882..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderRequestPbSerdeTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class GetWorkingFolderRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.GET_WORKING_FOLDER; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return null; - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetWorkingFolder.Request.class; - } - - @NotNull - @Override - public GetWorkingFolder.Request getTargetObject() { - return GetWorkingFolder.Request.INSTANCE; - } -} From 9f577a14f46e76f1caf06158052ff6754da3174f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:06:51 +0300 Subject: [PATCH 393/549] Rewrote test for Highlight.Args protobuf serialization. --- .../protobuf/HighlightArgsPbSerdeTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerdeTest.java new file mode 100644 index 0000000..ad58edd --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerdeTest.java @@ -0,0 +1,48 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class HighlightArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int ROW = 2; + private static final int COL = 3; + private static final int B_COLOR = 4; + private static final int F_COLOR = 5; + private static final int TIMEOUT = 6; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return HighlightArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.Highlight.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.Highlight.Request.newBuilder() + .setTId(T_ID) + .setRow(ROW) + .setCol(COL) + .setBColor(B_COLOR) + .setFColor(F_COLOR) + .setTimeout(TIMEOUT) + .build(); + } + + @NotNull + @Override + public Highlight.Args getTargetObject() { + + return Highlight.Args.builder() + .tId(T_ID) + .row(ROW) + .col(COL) + .bColor(B_COLOR) + .fColor(F_COLOR) + .timeout(TIMEOUT) + .build(); + } +} From e3cfd6ba7505b3768488a575c737c98028dc1e01 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:08:17 +0300 Subject: [PATCH 394/549] Rewrote test for InsertRow.Args protobuf serialization. --- .../protobuf/InsertRowArgsPbSerdeTest.java | 36 +++++++++++++++++ .../protobuf/InsertRowRequestPbSerdeTest.java | 40 ------------------- 2 files changed, 36 insertions(+), 40 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerdeTest.java new file mode 100644 index 0000000..aede164 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class InsertRowArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int KEY = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return InsertRowArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.InsertRow.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.InsertRow.Request.newBuilder() + .setTId(T_ID) + .setKey(KEY) + .build(); + } + + @NotNull + @Override + public InsertRow.Args getTargetObject() { + + return InsertRow.Args.builder() + .tId(T_ID) + .key(KEY) + .build(); + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java deleted file mode 100644 index c4b96a2..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowRequestPbSerdeTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class InsertRowRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - private static final int T_ID = 1; - private static final int KEY = 2; - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.INSERT_ROW; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return qlua.rpc.InsertRow.Request.newBuilder() - .setTId(T_ID) - .setKey(KEY) - .build(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return InsertRow.Request.class; - } - - @NotNull - @Override - public InsertRow.Request getTargetObject() { - return InsertRow.Request.builder() - .tId(T_ID) - .key(KEY) - .build(); - } -} From 8d1e71d349ad3a7a6c4246a1fb96641201db9240 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:10:19 +0300 Subject: [PATCH 395/549] Rewrote test for IsSubscribedLevel2Quotes.Args protobuf serialization. --- .../IsConnectedRequestPbSerdeTest.java | 31 ---------------- ...SubscribedLevel2QuotesArgsPbSerdeTest.java | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+), 31 deletions(-) delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerdeTest.java create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerdeTest.java deleted file mode 100644 index e86c869..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedRequestPbSerdeTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; -import com.google.protobuf.MessageLite; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import qlua.rpc.RPC; - -public class IsConnectedRequestPbSerdeTest extends AbstractRequestPbSerdeTest { - - @Override - public RPC.@NotNull ProcedureType getProcedureType() { - return RPC.ProcedureType.IS_CONNECTED; - } - - @Override - public @Nullable MessageLite getPbRequestArgs() { - return null; - } - - @Override - public @NotNull Class getTargetObjectClass() { - return IsConnected.Request.class; - } - - @NotNull - @Override - public IsConnected.Request getTargetObject() { - return IsConnected.Request.INSTANCE; - } -} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerdeTest.java new file mode 100644 index 0000000..e57432e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class IsSubscribedLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return IsSubscribedLevel2QuotesArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @NotNull + @Override + public IsSubscribedLevel2Quotes.Args getTargetObject() { + + return IsSubscribedLevel2Quotes.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} From ad3866e67a58a13dcd5c31ceb62ca2606bab6316 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:11:50 +0300 Subject: [PATCH 396/549] Rewrote test for IsWindowClosed.Args protobuf serialization. --- .../IsWindowClosedArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java new file mode 100644 index 0000000..4fa030a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class IsWindowClosedArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return IsWindowClosedArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.IsWindowClosed.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.IsWindowClosed.Request.newBuilder() + .setTId(T_ID) + .build(); + } + + @NotNull + @Override + public IsWindowClosed.Args getTargetObject() { + return new IsWindowClosed.Args(T_ID); + } +} From f4d049d46ea76f3200e02b6de0f24d61896402d0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:16:29 +0300 Subject: [PATCH 397/549] Rewrote test for Message.Args protobuf serialization. --- .../protobuf/MessageArgsPbSerdeTest.java | 64 ++++++++++++++ .../protobuf/MessageRequestPbSerdeTest.java | 88 ------------------- 2 files changed, 64 insertions(+), 88 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerdeTest.java delete mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerdeTest.java new file mode 100644 index 0000000..65b3473 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerdeTest.java @@ -0,0 +1,64 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class MessageArgsPbSerdeTest { + + public static class FullMessageArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String MESSAGE = "1"; + private static final Message.IconType ICON_TYPE = Message.IconType.WARNING; + private static final qlua.rpc.Message.IconType PB_ICON_TYPE = qlua.rpc.Message.IconType.WARNING; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return MessageArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.Message.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.Message.Request.newBuilder() + .setMessage(MESSAGE) + .setIconType(PB_ICON_TYPE) + .build(); + } + + @NotNull + @Override + public Message.Args getTargetObject() { + return new Message.Args(MESSAGE, ICON_TYPE); + } + } + + public static class WithoutIconTypeMessageArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String MESSAGE = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return MessageArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.Message.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.Message.Request.newBuilder() + .setMessage(MESSAGE) + .build(); + } + + @NotNull + @Override + public Message.Args getTargetObject() { + return new Message.Args(MESSAGE); + } + } +} diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java deleted file mode 100644 index b7a6dae..0000000 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageRequestPbSerdeTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.enfernuz.quik.lua.rpc.serde.protobuf; - -import com.enfernuz.quik.lua.rpc.api.messages.Message; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import com.google.protobuf.ByteString; -import org.junit.BeforeClass; -import org.junit.Test; -import qlua.rpc.RPC; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class MessageRequestPbSerdeTest { - - private static SerdeModule sut; - - private static Message.Request expectedObject; - private static byte[] expectedPbInput; - - private static Message.Request expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbBytesWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new Message.Request("1", Message.IconType.WARNING); - final ByteString pbArgs = qlua.rpc.Message.Request.newBuilder() - .setMessage("1") - .setIconType(qlua.rpc.Message.IconType.WARNING) - .build() - .toByteString(); - expectedPbInput = - qlua.rpc.RPC.Request.newBuilder() - .setType(RPC.ProcedureType.MESSAGE) - .setArgs(pbArgs) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = new Message.Request("1"); - final ByteString pbArgsWithOnlyRequiredFields = qlua.rpc.Message.Request.newBuilder() - .setMessage("1") - .build() - .toByteString(); - expectedPbBytesWithOnlyRequiredFields = - qlua.rpc.RPC.Request.newBuilder() - .setType(RPC.ProcedureType.MESSAGE) - .setArgs(pbArgsWithOnlyRequiredFields) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbBytesWithOnlyRequiredFields, actual) ); - } - - @Test - public void testDeserialize() { - - final Message.Request actualObject = sut.deserialize(Message.Request.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); - } - - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { - - final Message.Request actualObject = - sut.deserialize(Message.Request.class, expectedPbBytesWithOnlyRequiredFields); - - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); - } -} From 1b3b1aa75ec82c1b40f3b68f582a026bf27cc129 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:29:38 +0300 Subject: [PATCH 398/549] Rewrote test for ParamRequest.Result protobuf deserialization. --- .../AbstractPbDeserializationTest.java | 11 +-- .../ParamRequestResultPbSerdeTest.java | 67 +++++++++++++++++++ 2 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java index 3f16b1a..58fe507 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AbstractPbDeserializationTest.java @@ -9,9 +9,6 @@ public abstract class AbstractPbDeserializationTest { - @NotNull - public abstract Class getTargetObjectClass(); - @NotNull public abstract TARGET_OBJECT getTargetObject(); @@ -19,11 +16,15 @@ public abstract class AbstractPbDeserializationTest getDeserializerUnderTest(); + public abstract Deserializer getDeserializerUnderTest(); @Test public void shouldDeserialize_ByteArrayOf_PbTargetObject_To_TargetObject() { - assertEquals(getTargetObject(), getDeserializerUnderTest().deserialize(getTargetObjectPbSerializedForm())); + + assertEquals( + getTargetObject(), + getDeserializerUnderTest().deserialize( getTargetObjectPbSerializedForm() ) + ); } private byte[] getTargetObjectPbSerializedForm() { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java new file mode 100644 index 0000000..6b571d4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.ParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class ParamRequestResultPbSerdeTest { + + public static class TrueParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ParamRequestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public ParamRequest.Result getTargetObject() { + return ParamRequest.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.ParamRequest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.ParamRequest.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ParamRequestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public ParamRequest.Result getTargetObject() { + return ParamRequest.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.ParamRequest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.ParamRequest.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From b94a8462468f619bcabc5a275399c956bacae7b0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:33:07 +0300 Subject: [PATCH 399/549] Rewrote test for AddColumn.Result protobuf deserialization. --- .../protobuf/AddColumnResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java new file mode 100644 index 0000000..5d9d067 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddColumn; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class AddColumnResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AddColumnResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AddColumn.Result getTargetObject() { + return new AddColumn.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.AddColumn.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.AddColumn.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From d37201c0d79b008f0dd6e2e36b023fc91cb55c67 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 13 Nov 2018 00:35:27 +0300 Subject: [PATCH 400/549] Rewrote test for AddLabel.Result protobuf deserialization. --- .../protobuf/AddLabelResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java new file mode 100644 index 0000000..11e1bfb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AddLabel; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class AddLabelResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int LABEL_ID = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AddLabelResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AddLabel.Result getTargetObject() { + return new AddLabel.Result(LABEL_ID); + } + + @NotNull + @Override + public qlua.rpc.AddLabel.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.AddLabel.Result.newBuilder() + .setLabelId(LABEL_ID) + .build(); + } +} From 12c568d16232e96c578484119de4d566667b7b1d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 14 Nov 2018 09:51:33 +0300 Subject: [PATCH 401/549] Rewrote test for AllocTable.Result protobuf deserialization. --- .../protobuf/AllocTableResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java new file mode 100644 index 0000000..1e68981 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllocTableResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.AllocTable; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class AllocTableResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int T_ID = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AllocTableResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AllocTable.Result getTargetObject() { + return new AllocTable.Result(T_ID); + } + + @NotNull + @Override + public qlua.rpc.AllocTable.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.AllocTable.Result.newBuilder() + .setTId(T_ID) + .build(); + } +} From 59282cc55eafdc3940f97814e6f63dcb8ff8574f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 14 Nov 2018 09:53:51 +0300 Subject: [PATCH 402/549] Rewrote test for CalcBuySell.Result protobuf deserialization. --- .../CalcBuySellResultPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java new file mode 100644 index 0000000..a217be7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellResultPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CalcBuySell; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class CalcBuySellResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int QTY = 1; + private static final String COMISSION = "2"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return CalcBuySellResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public CalcBuySell.Result getTargetObject() { + return new CalcBuySell.Result(QTY, COMISSION); + } + + @NotNull + @Override + public qlua.rpc.CalcBuySell.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.CalcBuySell.Result.newBuilder() + .setQty(QTY) + .setComission(COMISSION) + .build(); + } +} From 6409a75a0e9f9b256eed195dac6a0cd69e475b9f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 14 Nov 2018 09:56:19 +0300 Subject: [PATCH 403/549] Rewrote test for CancelParamRequest.Result protobuf deserialization. --- .../CancelParamRequestResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java new file mode 100644 index 0000000..66da033 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CancelParamRequest; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class CancelParamRequestResultPbSerdeTest { + + public static class TrueCancelParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return CancelParamRequestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public CancelParamRequest.Result getTargetObject() { + return new CancelParamRequest.Result(TRUE); + } + + @NotNull + @Override + public qlua.rpc.CancelParamRequest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.CancelParamRequest.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseCancelParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return CancelParamRequestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public CancelParamRequest.Result getTargetObject() { + return new CancelParamRequest.Result(FALSE); + } + + @NotNull + @Override + public qlua.rpc.CancelParamRequest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.CancelParamRequest.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 2f350b151e04e8c297e0c973fd0765258f8dd984 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Wed, 14 Nov 2018 09:58:33 +0300 Subject: [PATCH 404/549] Rewrote test for CreateWindow.Result protobuf deserialization. --- .../CreateWindowResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java new file mode 100644 index 0000000..0380931 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CreateWindowResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.CreateWindow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class CreateWindowResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return CreateWindowResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public CreateWindow.Result getTargetObject() { + return new CreateWindow.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.CreateWindow.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.CreateWindow.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 09e20116e9d67d232272844b378889b9ff7ec7bb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:25:36 +0300 Subject: [PATCH 405/549] Rewrote test for DelAllLabels.Result protobuf deserialization. --- .../DelAllLabelsResultPbSerdeTest.java | 76 ++++++++++++------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java index d745c50..e0a9eee 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsResultPbSerdeTest.java @@ -1,47 +1,67 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.DelAllLabels; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; -import java.util.Arrays; +@RunWith(Enclosed.class) +public class DelAllLabelsResultPbSerdeTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + public static class TrueDelAllLabelsResultPbDeserializationTest + extends AbstractPbDeserializationTest { -public class DelAllLabelsResultPbSerdeTest { + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } - private static SerdeModule sut; + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DelAllLabelsResultPbDeserializer.INSTANCE; + } - private static DelAllLabels.Result expectedObject; - private static byte[] expectedPbInput; + @NotNull + @Override + public DelAllLabels.Result getTargetObject() { + return DelAllLabels.Result.getInstance(TRUE); + } - @BeforeClass - public static void globalSetup() { + @NotNull + @Override + public qlua.rpc.DelAllLabels.Result getTargetObjectAsPbMessage() { - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DelAllLabels.Result.getInstance(true); - expectedPbInput = qlua.rpc.DelAllLabels.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); + return qlua.rpc.DelAllLabels.Result.newBuilder() + .setResult(TRUE) + .build(); + } } - @Test - public void testSerialize() { + public static class FalseDelAllLabelsResultPbDeserializationTest + extends AbstractPbDeserializationTest { - final byte[] actual = sut.serialize(expectedObject); + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DelAllLabelsResultPbDeserializer.INSTANCE; + } - @Test - public void testDeserialize() { + @NotNull + @Override + public DelAllLabels.Result getTargetObject() { + return DelAllLabels.Result.getInstance(FALSE); + } - final DelAllLabels.Result actualObject = sut.deserialize(DelAllLabels.Result.class, expectedPbInput); + @NotNull + @Override + public qlua.rpc.DelAllLabels.Result getTargetObjectAsPbMessage() { - assertEquals(actualObject, expectedObject); + return qlua.rpc.DelAllLabels.Result.newBuilder() + .setResult(FALSE) + .build(); + } } } From c0adbc4dce9f1709b405aebf454413d5a91133e5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:25:55 +0300 Subject: [PATCH 406/549] Rewrote test for DelLabel.Result protobuf deserialization. --- .../protobuf/DelLabelResultPbSerdeTest.java | 76 ++++++++++++------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java index 79560b0..4edb8f5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelResultPbSerdeTest.java @@ -1,47 +1,67 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.DelLabel; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +@RunWith(Enclosed.class) public class DelLabelResultPbSerdeTest { - private static SerdeModule sut; + public static class TrueDelLabelResultPbDeserializationTest + extends AbstractPbDeserializationTest { - private static DelLabel.Result expectedObject; - private static byte[] expectedPbInput; + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } - @BeforeClass - public static void globalSetup() { + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DelLabelResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public DelLabel.Result getTargetObject() { + return DelLabel.Result.getInstance(TRUE); + } - expectedObject = DelLabel.Result.getInstance(true); - expectedPbInput = qlua.rpc.DelLabel.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); + @NotNull + @Override + public qlua.rpc.DelLabel.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.DelLabel.Result.newBuilder() + .setResult(TRUE) + .build(); + } } - @Test - public void testSerialize() { + public static class FalseDelLabelResultPbDeserializationTest + extends AbstractPbDeserializationTest { - final byte[] actual = sut.serialize(expectedObject); + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DelLabelResultPbDeserializer.INSTANCE; + } - @Test - public void testDeserialize() { + @NotNull + @Override + public DelLabel.Result getTargetObject() { + return DelLabel.Result.getInstance(FALSE); + } - final DelLabel.Result actualObject = sut.deserialize(DelLabel.Result.class, expectedPbInput); + @NotNull + @Override + public qlua.rpc.DelLabel.Result getTargetObjectAsPbMessage() { - assertEquals(actualObject, expectedObject); + return qlua.rpc.DelLabel.Result.newBuilder() + .setResult(FALSE) + .build(); + } } } From c2c70f201cee6b2bf35bc6a197ef9ea134ebe685 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:26:14 +0300 Subject: [PATCH 407/549] Rewrote test for GetBuySellInfoEx.Result protobuf deserialization. --- .../GetBuySellnfoExResultPbSerdeTest.java | 212 ++++++++++-------- 1 file changed, 113 insertions(+), 99 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java index c19e900..5e576d6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoExResultPbSerdeTest.java @@ -2,118 +2,132 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfoEx; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetBuySellnfoExResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetBuySellInfoEx.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetBuySellnfoExResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String IS_MARGIN_SEC = "1"; + private static final String IS_ASSET_SEC = "2"; + private static final String BALANCE = "3"; + private static final String CAN_BUY = "4"; + private static final String CAN_SELL = "5"; + private static final String POSITION_VALUATION = "6"; + private static final String VALUE = "7"; + private static final String OPEN_VALUE = "8"; + private static final String LIM_LONG = "9"; + private static final String LONG_COEF = "10"; + private static final String LIM_SHORT = "11"; + private static final String SHORT_COEF = "12"; + private static final String VALUE_COEF = "13"; + private static final String OPEN_VALUE_COEF = "14"; + private static final String SHARE = "15"; + private static final String SHORT_WA_PRICE = "16"; + private static final String LONG_WA_PRICE = "17"; + private static final String PROFIT_LOSS = "18"; + private static final String SPREAD_HC = "19"; + private static final String CAN_BUY_OWN = "20"; + private static final String CAN_SELL_OWN = "21"; + + private static final String LIMIT_KIND = "22"; + private static final String D_LONG = "23"; + private static final String D_MIN_LONG = "24"; + private static final String D_SHORT = "25"; + private static final String D_MIN_SHORT = "26"; + private static final String CLIENT_TYPE = "27"; + private static final String IS_LONG_ALLOWED = "28"; + private static final String IS_SHORT_ALLOWED = "29"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetBuySellInfoExResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetBuySellInfoEx.Result getTargetObject() { final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() - .isMarginSec("1") - .isAssetSec("2") - .balance("3") - .canBuy("4") - .canSell("5") - .positionValuation("6") - .value("7") - .openValue("8") - .limLong("9") - .longCoef("10") - .limShort("11") - .shortCoef("12") - .valueCoef("13") - .openValueCoef("14") - .share("15") - .shortWaPrice("16") - .longWaPrice("17") - .profitLoss("18") - .spreadHc("19") - .canBuyOwn("20") - .canSellOwn("12") - .build(); - final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() - .setIsMarginSec("1") - .setIsAssetSec("2") - .setBalance("3") - .setCanBuy("4") - .setCanSell("5") - .setPositionValuation("6") - .setValue("7") - .setOpenValue("8") - .setLimLong("9") - .setLongCoef("10") - .setLimShort("11") - .setShortCoef("12") - .setValueCoef("13") - .setOpenValueCoef("14") - .setShare("15") - .setShortWaPrice("16") - .setLongWaPrice("17") - .setProfitLoss("18") - .setSpreadHc("19") - .setCanBuyOwn("20") - .setCanSellOwn("12") + .isMarginSec(IS_MARGIN_SEC) + .isAssetSec(IS_ASSET_SEC) + .balance(BALANCE) + .canBuy(CAN_BUY) + .canSell(CAN_SELL) + .positionValuation(POSITION_VALUATION) + .value(VALUE) + .openValue(OPEN_VALUE) + .limLong(LIM_LONG) + .longCoef(LONG_COEF) + .limShort(LIM_SHORT) + .shortCoef(SHORT_COEF) + .valueCoef(VALUE_COEF) + .openValueCoef(OPEN_VALUE_COEF) + .share(SHARE) + .shortWaPrice(SHORT_WA_PRICE) + .longWaPrice(LONG_WA_PRICE) + .profitLoss(PROFIT_LOSS) + .spreadHc(SPREAD_HC) + .canBuyOwn(CAN_BUY_OWN) + .canSellOwn(CAN_SELL_OWN) .build(); final GetBuySellInfoEx.BuySellInfoEx buySellInfoEx = GetBuySellInfoEx.BuySellInfoEx.builder() .buySellInfo(buySellInfo) - .limitKind("2") - .dLong("3") - .dMinLong("4") - .dShort("5") - .dMinShort("6") - .clientType("7") - .isLongAllowed("8") - .isShortAllowed("9") - .build(); - final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx pbBuySellInfoEx = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() - .setBuySellInfo(pbBuySellInfo) - .setLimitKind("2") - .setDLong("3") - .setDMinLong("4") - .setDShort("5") - .setDMinShort("6") - .setClientType("7") - .setIsLongAllowed("8") - .setIsShortAllowed("9") + .limitKind(LIMIT_KIND) + .dLong(D_LONG) + .dMinLong(D_MIN_LONG) + .dShort(D_SHORT) + .dMinShort(D_MIN_SHORT) + .clientType(CLIENT_TYPE) + .isLongAllowed(IS_LONG_ALLOWED) + .isShortAllowed(IS_SHORT_ALLOWED) .build(); - expectedObject = new GetBuySellInfoEx.Result(buySellInfoEx); - - expectedPbInput = qlua.rpc.GetBuySellInfoEx.Result.newBuilder() - .setBuySellInfoEx(pbBuySellInfoEx) - .build() - .toByteArray(); + return new GetBuySellInfoEx.Result(buySellInfoEx); } - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); + @NotNull + @Override + public qlua.rpc.GetBuySellInfoEx.Result getTargetObjectAsPbMessage() { - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { + final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec(IS_MARGIN_SEC) + .setIsAssetSec(IS_ASSET_SEC) + .setBalance(BALANCE) + .setCanBuy(CAN_BUY) + .setCanSell(CAN_SELL) + .setPositionValuation(POSITION_VALUATION) + .setValue(VALUE) + .setOpenValue(OPEN_VALUE) + .setLimLong(LIM_LONG) + .setLongCoef(LONG_COEF) + .setLimShort(LIM_SHORT) + .setShortCoef(SHORT_COEF) + .setValueCoef(VALUE_COEF) + .setOpenValueCoef(OPEN_VALUE_COEF) + .setShare(SHARE) + .setShortWaPrice(SHORT_WA_PRICE) + .setLongWaPrice(LONG_WA_PRICE) + .setProfitLoss(PROFIT_LOSS) + .setSpreadHc(SPREAD_HC) + .setCanBuyOwn(CAN_BUY_OWN) + .setCanSellOwn(CAN_SELL_OWN) + .build(); - final GetBuySellInfoEx.Result actualObject = sut.deserialize(GetBuySellInfoEx.Result.class, expectedPbInput); + final qlua.rpc.GetBuySellInfoEx.BuySellInfoEx pbBuySellInfoEx = qlua.rpc.GetBuySellInfoEx.BuySellInfoEx.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .setLimitKind(LIMIT_KIND) + .setDLong(D_LONG) + .setDMinLong(D_MIN_LONG) + .setDShort(D_SHORT) + .setDMinShort(D_MIN_SHORT) + .setClientType(CLIENT_TYPE) + .setIsLongAllowed(IS_LONG_ALLOWED) + .setIsShortAllowed(IS_SHORT_ALLOWED) + .build(); - assertEquals(actualObject, expectedObject); + return qlua.rpc.GetBuySellInfoEx.Result.newBuilder() + .setBuySellInfoEx(pbBuySellInfoEx) + .build(); } } From 97679b0fe3a92f57a120d01a324e836174636d33 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:26:29 +0300 Subject: [PATCH 408/549] Rewrote test for GetBuySellInfo.Result protobuf deserialization. --- .../GetBuySellnfoResultPbSerdeTest.java | 166 +++++++++--------- 1 file changed, 85 insertions(+), 81 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java index 4b115be..7ca7b25 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellnfoResultPbSerdeTest.java @@ -1,95 +1,99 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetBuySellnfoResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetBuySellInfo.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetBuySellnfoResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String IS_MARGIN_SEC = "1"; + private static final String IS_ASSET_SEC = "2"; + private static final String BALANCE = "3"; + private static final String CAN_BUY = "4"; + private static final String CAN_SELL = "5"; + private static final String POSITION_VALUATION = "6"; + private static final String VALUE = "7"; + private static final String OPEN_VALUE = "8"; + private static final String LIM_LONG = "9"; + private static final String LONG_COEF = "10"; + private static final String LIM_SHORT = "11"; + private static final String SHORT_COEF = "12"; + private static final String VALUE_COEF = "13"; + private static final String OPEN_VALUE_COEF = "14"; + private static final String SHARE = "15"; + private static final String SHORT_WA_PRICE = "16"; + private static final String LONG_WA_PRICE = "17"; + private static final String PROFIT_LOSS = "18"; + private static final String SPREAD_HC = "19"; + private static final String CAN_BUY_OWN = "20"; + private static final String CAN_SELL_OWN = "21"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetBuySellInfoResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetBuySellInfo.Result getTargetObject() { final GetBuySellInfo.BuySellInfo buySellInfo = GetBuySellInfo.BuySellInfo.builder() - .isMarginSec("1") - .isAssetSec("2") - .balance("3") - .canBuy("4") - .canSell("5") - .positionValuation("6") - .value("7") - .openValue("8") - .limLong("9") - .longCoef("10") - .limShort("11") - .shortCoef("12") - .valueCoef("13") - .openValueCoef("14") - .share("15") - .shortWaPrice("16") - .longWaPrice("17") - .profitLoss("18") - .spreadHc("19") - .canBuyOwn("20") - .canSellOwn("12") + .isMarginSec(IS_MARGIN_SEC) + .isAssetSec(IS_ASSET_SEC) + .balance(BALANCE) + .canBuy(CAN_BUY) + .canSell(CAN_SELL) + .positionValuation(POSITION_VALUATION) + .value(VALUE) + .openValue(OPEN_VALUE) + .limLong(LIM_LONG) + .longCoef(LONG_COEF) + .limShort(LIM_SHORT) + .shortCoef(SHORT_COEF) + .valueCoef(VALUE_COEF) + .openValueCoef(OPEN_VALUE_COEF) + .share(SHARE) + .shortWaPrice(SHORT_WA_PRICE) + .longWaPrice(LONG_WA_PRICE) + .profitLoss(PROFIT_LOSS) + .spreadHc(SPREAD_HC) + .canBuyOwn(CAN_BUY_OWN) + .canSellOwn(CAN_SELL_OWN) .build(); - final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() - .setIsMarginSec("1") - .setIsAssetSec("2") - .setBalance("3") - .setCanBuy("4") - .setCanSell("5") - .setPositionValuation("6") - .setValue("7") - .setOpenValue("8") - .setLimLong("9") - .setLongCoef("10") - .setLimShort("11") - .setShortCoef("12") - .setValueCoef("13") - .setOpenValueCoef("14") - .setShare("15") - .setShortWaPrice("16") - .setLongWaPrice("17") - .setProfitLoss("18") - .setSpreadHc("19") - .setCanBuyOwn("20") - .setCanSellOwn("12") - .build(); - - expectedObject = new GetBuySellInfo.Result(buySellInfo); - expectedPbInput = qlua.rpc.GetBuySellInfo.Result.newBuilder() - .setBuySellInfo(pbBuySellInfo) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + return new GetBuySellInfo.Result(buySellInfo); } - @Test - public void testDeserialize() { + @NotNull + @Override + public qlua.rpc.GetBuySellInfo.Result getTargetObjectAsPbMessage() { - final GetBuySellInfo.Result actualObject = sut.deserialize(GetBuySellInfo.Result.class, expectedPbInput); + final qlua.rpc.GetBuySellInfo.BuySellInfo pbBuySellInfo = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec(IS_MARGIN_SEC) + .setIsAssetSec(IS_ASSET_SEC) + .setBalance(BALANCE) + .setCanBuy(CAN_BUY) + .setCanSell(CAN_SELL) + .setPositionValuation(POSITION_VALUATION) + .setValue(VALUE) + .setOpenValue(OPEN_VALUE) + .setLimLong(LIM_LONG) + .setLongCoef(LONG_COEF) + .setLimShort(LIM_SHORT) + .setShortCoef(SHORT_COEF) + .setValueCoef(VALUE_COEF) + .setOpenValueCoef(OPEN_VALUE_COEF) + .setShare(SHARE) + .setShortWaPrice(SHORT_WA_PRICE) + .setLongWaPrice(LONG_WA_PRICE) + .setProfitLoss(PROFIT_LOSS) + .setSpreadHc(SPREAD_HC) + .setCanBuyOwn(CAN_BUY_OWN) + .setCanSellOwn(CAN_SELL_OWN) + .build(); - assertEquals(actualObject, expectedObject); + return qlua.rpc.GetBuySellInfo.Result.newBuilder() + .setBuySellInfo(pbBuySellInfo) + .build(); } } From 7d5c7fe9564b717a5152637ab4e0fdd738166b27 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:26:46 +0300 Subject: [PATCH 409/549] Rewrote test for GetCandlesByIndex.Result protobuf deserialization. --- .../GetCandlesByIndexResultPbSerdeTest.java | 102 ++++++++---------- 1 file changed, 44 insertions(+), 58 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java index 1a6e1f1..ae6bec5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexResultPbSerdeTest.java @@ -3,52 +3,49 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetCandlesByIndex; import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.google.common.collect.ImmutableList; -import org.junit.BeforeClass; -import org.junit.Test; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +public class GetCandlesByIndexResultPbSerdeTest extends AbstractPbDeserializationTest { -public class GetCandlesByIndexResultPbSerdeTest { + private static final int N = 2; + private static final String L = "3"; - private static SerdeModule sut; - - private static GetCandlesByIndex.Result expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetCandlesByIndexResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetCandlesByIndex.Result getTargetObject() { final List candles = ImmutableList.of( CandleEntry.builder() - .open("50") - .close("100") - .high("150") - .low("1") - .volume("555") - .dateTimeEntry( - DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(3) - .month(8) - .year(9) - .build() - ) - .doesExist(1) - .build(), + .open("50") + .close("100") + .high("150") + .low("1") + .volume("555") + .dateTimeEntry( + DateTimeEntry.builder() + .mcs(1) + .ms(2) + .sec(3) + .min(4) + .hour(5) + .day(6) + .weekDay(3) + .month(8) + .year(9) + .build() + ) + .doesExist(1) + .build(), CandleEntry.builder() .open("51") .close("102") @@ -72,6 +69,14 @@ public static void globalSetup() { .build() ); + + return new GetCandlesByIndex.Result(candles, N, L); + } + + @NotNull + @Override + public qlua.rpc.GetCandlesByIndex.Result getTargetObjectAsPbMessage() { + final List pbCandles = ImmutableList.of( QluaStructures.CandleEntry.newBuilder() .setOpen("50") @@ -117,29 +122,10 @@ public static void globalSetup() { .build() ); - expectedObject = new GetCandlesByIndex.Result(candles, 2, "3"); - - expectedPbInput = qlua.rpc.GetCandlesByIndex.Result.newBuilder() + return qlua.rpc.GetCandlesByIndex.Result.newBuilder() .addAllT(pbCandles) - .setN(2) - .setL("3") - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testDeserialize() { - - final GetCandlesByIndex.Result actualObject = sut.deserialize(GetCandlesByIndex.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + .setN(N) + .setL(L) + .build(); } } From 1a21e35e1a7161e87db7d0eb6c1fad3e89dc41ae Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:26:59 +0300 Subject: [PATCH 410/549] Rewrote test for GetClassesList.Result protobuf deserialization. --- .../GetClassesListResultPbSerdeTest.java | 73 +++++-------------- 1 file changed, 17 insertions(+), 56 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java index fefccd6..14456dd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassesListResultPbSerdeTest.java @@ -1,69 +1,30 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetClassesList; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; -import java.util.Arrays; +public class GetClassesListResultPbSerdeTest extends AbstractPbDeserializationTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final String CLASSES_LIST = "1"; -public class GetClassesListResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetClassesList.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetClassesList.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new GetClassesList.Result("1"); - expectedPbInput = qlua.rpc.GetClassesList.Result.newBuilder() - .setClassesList("1") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = new GetClassesList.Result(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetClassesList.Result.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetClassesListResultPbDeserializer.INSTANCE; } - @Test - public void testDeserialize() { - - final GetClassesList.Result actualObject = sut.deserialize(GetClassesList.Result.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + @NotNull + @Override + public GetClassesList.Result getTargetObject() { + return new GetClassesList.Result(CLASSES_LIST); } - @Test - public void testSerializeWithOnlyRequiredFields() { - - final byte[] actual = sut.serialize(expectedObjectWithOnlyRequiredFields); - - assertTrue( Arrays.equals(expectedPbInputWithOnlyRequiredFields, actual) ); - } - - @Test - public void testDeserializeWithOnlyRequiredFields() { - - final GetClassesList.Result actualObject = sut.deserialize(GetClassesList.Result.class, expectedPbInputWithOnlyRequiredFields); + @NotNull + @Override + public qlua.rpc.GetClassesList.Result getTargetObjectAsPbMessage() { - assertEquals(actualObject, expectedObjectWithOnlyRequiredFields); + return qlua.rpc.GetClassesList.Result.newBuilder() + .setClassesList(CLASSES_LIST) + .build(); } } From 3748ba82353acbc8040ec80491662b6950e24418 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:27:12 +0300 Subject: [PATCH 411/549] Rewrote test for GetDepo.Result protobuf deserialization. --- .../protobuf/GetDepoResultPbSerdeTest.java | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java index 2d8fa5d..2b7abcd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoResultPbSerdeTest.java @@ -2,9 +2,10 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetDepo; import com.enfernuz.quik.lua.rpc.api.structures.Depo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -public class GetDepoResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetDepoResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String DEPO_LIMIT_LOCKED_BUY_VALUE = "1"; private static final String DEPO_CURRENT_BALANCE = "2"; @@ -16,8 +17,26 @@ public class GetDepoResultPbSerdeTest extends AbstractResultPbSerdeTest getTargetObjectClass() { - return GetDepo.Result.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return GetDepoResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetDepo.Result getTargetObject() { + + final Depo depo = Depo.builder() + .depoLimitLockedBuyValue(DEPO_LIMIT_LOCKED_BUY_VALUE) + .depoCurrentBalance(DEPO_CURRENT_BALANCE) + .depoLimitLockedBuy(DEPO_LIMIT_LOCKED_BUY) + .depoLimitLocked(DEPO_LIMIT_LOCKED) + .depoLimitAvailable(DEPO_LIMIT_AVAILABLE) + .depoCurrentLimit(DEPO_CURRENT_LIMIT) + .depoOpenBalance(DEPO_OPEN_BALANCE) + .depoOpenLimit(DEPO_OPEN_LIMIT) + .build(); + + return new GetDepo.Result(depo); } @NotNull @@ -39,22 +58,4 @@ public qlua.rpc.GetDepo.Result getTargetObjectAsPbMessage() { .setDepo(depo) .build(); } - - @NotNull - @Override - public GetDepo.Result getTargetObject() { - - final Depo depo = Depo.builder() - .depoLimitLockedBuyValue(DEPO_LIMIT_LOCKED_BUY_VALUE) - .depoCurrentBalance(DEPO_CURRENT_BALANCE) - .depoLimitLockedBuy(DEPO_LIMIT_LOCKED_BUY) - .depoLimitLocked(DEPO_LIMIT_LOCKED) - .depoLimitAvailable(DEPO_LIMIT_AVAILABLE) - .depoCurrentLimit(DEPO_CURRENT_LIMIT) - .depoOpenBalance(DEPO_OPEN_BALANCE) - .depoOpenLimit(DEPO_OPEN_LIMIT) - .build(); - - return new GetDepo.Result(depo); - } } From dbf1a3b01158eec6e0a366677e83fb0c95c36ec6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:27:27 +0300 Subject: [PATCH 412/549] Rewrote test for GetFuturesHolding.Result protobuf deserialization. --- .../GetFuturesHoldingResultPbSerdeTest.java | 177 ++++++++---------- 1 file changed, 79 insertions(+), 98 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java index d5c963d..49a491d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingResultPbSerdeTest.java @@ -2,114 +2,95 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesHolding; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetFuturesHoldingResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetFuturesHolding.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetFuturesHolding.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { +public class GetFuturesHoldingResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String FIRM_ID = "1"; + private static final String TRD_ACC_ID = "2"; + private static final String SEC_CODE = "3"; + private static final int TYPE = 4; + private static final String START_BUY = "5"; + private static final String START_SELL = "6"; + private static final String TODAY_BUY = "7"; + private static final String TODAY_SELL = "8"; + private static final String TOTAL_NET = "9"; + private static final int OPEN_BUYS = 10; + private static final int OPEN_SELLS = 11; + private static final String CBPL_USED = "12"; + private static final String CBPL_PLANNED = "13"; + private static final String VAR_MARGIN = "14"; + private static final String AVR_POSN_PRICE = "15"; + private static final String POSITION_VALUE = "16"; + private static final String REAL_VAR_MARGIN = "17"; + private static final String TOTAL_VAR_MARGIN = "18"; + private static final int SESSION_STATUS = 19; + + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetFuturesHoldingResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetFuturesHolding.Result getTargetObject() { final FuturesClientHolding futuresClientHolding = FuturesClientHolding.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .startBuy("5") - .startSell("6") - .todayBuy("7") - .todaySell("8") - .totalNet("9") - .openBuys(10) - .openSells(11) - .cbplUsed("12") - .cbplPlanned("13") - .varMargin("14") - .avrPosnPrice("15") - .positionValue("16") - .realVarMargin("17") - .totalVarMargin("18") - .sessionStatus(19) - .build(); - final QluaStructures.FuturesClientHolding pbFuturesClientHolding = QluaStructures.FuturesClientHolding.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setSecCode("3") - .setType(4) - .setStartbuy("5") - .setStartsell("6") - .setTodaybuy("7") - .setTodaysell("8") - .setTotalnet("9") - .setOpenbuys(10) - .setOpensells(11) - .setCbplused("12") - .setCbplplanned("13") - .setVarmargin("14") - .setAvrposnprice("15") - .setPositionvalue("16") - .setRealVarmargin("17") - .setTotalVarmargin("18") - .setSessionStatus(19) + .firmId(FIRM_ID) + .trdAccId(TRD_ACC_ID) + .secCode(SEC_CODE) + .type(TYPE) + .startBuy(START_BUY) + .startSell(START_SELL) + .todayBuy(TODAY_BUY) + .todaySell(TODAY_SELL) + .totalNet(TOTAL_NET) + .openBuys(OPEN_BUYS) + .openSells(OPEN_SELLS) + .cbplUsed(CBPL_USED) + .cbplPlanned(CBPL_PLANNED) + .varMargin(VAR_MARGIN) + .avrPosnPrice(AVR_POSN_PRICE) + .positionValue(POSITION_VALUE) + .realVarMargin(REAL_VAR_MARGIN) + .totalVarMargin(TOTAL_VAR_MARGIN) + .sessionStatus(SESSION_STATUS) .build(); - expectedObject = GetFuturesHolding.Result.getInstance(futuresClientHolding); - expectedPbInput = qlua.rpc.GetFuturesHolding.Result.newBuilder() - .setFuturesHolding(pbFuturesClientHolding) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = GetFuturesHolding.Result.getInstance(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesHolding.Result.newBuilder().build().toByteArray(); + return GetFuturesHolding.Result.getInstance(futuresClientHolding); } - @Test - public void testSerialize() { + @NotNull + @Override + public qlua.rpc.GetFuturesHolding.Result getTargetObjectAsPbMessage() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetFuturesHolding.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { + final QluaStructures.FuturesClientHolding pbFuturesClientHolding = QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRD_ACC_ID) + .setSecCode(SEC_CODE) + .setType(TYPE) + .setStartbuy(START_BUY) + .setStartsell(START_SELL) + .setTodaybuy(TODAY_BUY) + .setTodaysell(TODAY_SELL) + .setTotalnet(TOTAL_NET) + .setOpenbuys(OPEN_BUYS) + .setOpensells(OPEN_SELLS) + .setCbplused(CBPL_USED) + .setCbplplanned(CBPL_PLANNED) + .setVarmargin(VAR_MARGIN) + .setAvrposnprice(AVR_POSN_PRICE) + .setPositionvalue(POSITION_VALUE) + .setRealVarmargin(REAL_VAR_MARGIN) + .setTotalVarmargin(TOTAL_VAR_MARGIN) + .setSessionStatus(SESSION_STATUS) + .build(); - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetFuturesHolding.Result.class, expectedPbInputWithOnlyRequiredFields) - ); + return qlua.rpc.GetFuturesHolding.Result.newBuilder() + .setFuturesHolding(pbFuturesClientHolding) + .build(); } } From bade7a804f76739bf9842bc2cc2290396653d9ec Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:27:42 +0300 Subject: [PATCH 413/549] Rewrote test for GetFuturesLimit.Result protobuf deserialization. --- .../GetFuturesLimitResultPbSerdeTest.java | 166 ++++++++---------- 1 file changed, 72 insertions(+), 94 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java index 48e8502..3b73837 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitResultPbSerdeTest.java @@ -2,110 +2,88 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetFuturesLimit; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class GetFuturesLimitResultPbSerdeTest { - - private static SerdeModule sut; - - private static GetFuturesLimit.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetFuturesLimit.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { +public class GetFuturesLimitResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String FIRM_ID = "1"; + private static final String TRD_ACC_ID = "2"; + private static final int LIMIT_TYPE = 3; + private static final String LIQUIDITY_COEF = "4"; + private static final String CBP_PREV_LIMIT = "5"; + private static final String CBP_LIMIT = "6"; + private static final String CBPL_USED = "7"; + private static final String CBPL_PLANNED = "8"; + private static final String VAR_MARGIN = "9"; + private static final String ACCRUED_INT = "10"; + private static final String CBPL_USED_FOR_ORDERS = "11"; + private static final String CBPL_USED_FOR_POSITIONS = "12"; + private static final String OPTIONS_PREMIUM = "13"; + private static final String TS_COMISSION = "14"; + private static final String KGO = "15"; + private static final String CURR_CODE = "16"; + private static final String REAL_VAR_MARGIN = "17"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetFuturesLimitResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetFuturesLimit.Result getTargetObject() { final FuturesLimit futuresLimit = FuturesLimit.builder() - .firmId("1") - .trdAccId("2") - .limitType(3) - .liquidityCoef("4") - .cbpPrevLimit("5") - .cbpLimit("6") - .cbplUsed("7") - .cbplPlanned("8") - .varMargin("9") - .accruedInt("10") - .cbplUsedForOrders("11") - .cbplUsedForPositions("12") - .optionsPremium("13") - .tsComission("14") - .kgo("15") - .currCode("16") - .realVarMargin("17") - .build(); - final QluaStructures.FuturesLimit pbFuturesLimit = QluaStructures.FuturesLimit.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setLimitType(3) - .setLiquidityCoef("4") - .setCbpPrevLimit("5") - .setCbplimit("6") - .setCbplused("7") - .setCbplplanned("8") - .setVarmargin("9") - .setAccruedint("10") - .setCbplusedForOrders("11") - .setCbplusedForPositions("12") - .setOptionsPremium("13") - .setTsComission("14") - .setKgo("15") - .setCurrcode("16") - .setRealVarmargin("17") + .firmId(FIRM_ID) + .trdAccId(TRD_ACC_ID) + .limitType(LIMIT_TYPE) + .liquidityCoef(LIQUIDITY_COEF) + .cbpPrevLimit(CBP_PREV_LIMIT) + .cbpLimit(CBP_LIMIT) + .cbplUsed(CBPL_USED) + .cbplPlanned(CBPL_PLANNED) + .varMargin(VAR_MARGIN) + .accruedInt(ACCRUED_INT) + .cbplUsedForOrders(CBPL_USED_FOR_ORDERS) + .cbplUsedForPositions(CBPL_USED_FOR_POSITIONS) + .optionsPremium(OPTIONS_PREMIUM) + .tsComission(TS_COMISSION) + .kgo(KGO) + .currCode(CURR_CODE) + .realVarMargin(REAL_VAR_MARGIN) .build(); - expectedObject = GetFuturesLimit.Result.getInstance(futuresLimit); - expectedPbInput = qlua.rpc.GetFuturesLimit.Result.newBuilder() - .setFuturesLimit(pbFuturesLimit) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = GetFuturesLimit.Result.getInstance(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetFuturesLimit.Result.newBuilder().build().toByteArray(); + return GetFuturesLimit.Result.getInstance(futuresLimit); } - @Test - public void testSerialize() { + @NotNull + @Override + public qlua.rpc.GetFuturesLimit.Result getTargetObjectAsPbMessage() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetFuturesLimit.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { + final QluaStructures.FuturesLimit pbFuturesLimit = QluaStructures.FuturesLimit.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRD_ACC_ID) + .setLimitType(LIMIT_TYPE) + .setLiquidityCoef(LIQUIDITY_COEF) + .setCbpPrevLimit(CBP_PREV_LIMIT) + .setCbplimit(CBP_LIMIT) + .setCbplused(CBPL_USED) + .setCbplplanned(CBPL_PLANNED) + .setVarmargin(VAR_MARGIN) + .setAccruedint(ACCRUED_INT) + .setCbplusedForOrders(CBPL_USED_FOR_ORDERS) + .setCbplusedForPositions(CBPL_USED_FOR_POSITIONS) + .setOptionsPremium(OPTIONS_PREMIUM) + .setTsComission(TS_COMISSION) + .setKgo(KGO) + .setCurrcode(CURR_CODE) + .setRealVarmargin(REAL_VAR_MARGIN) + .build(); - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetFuturesLimit.Result.class, expectedPbInputWithOnlyRequiredFields) - ); + return qlua.rpc.GetFuturesLimit.Result.newBuilder() + .setFuturesLimit(pbFuturesLimit) + .build(); } } From 563ef70e50c5414aaed00425973dae3f088c1441 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:27:57 +0300 Subject: [PATCH 414/549] Rewrote test for GetItem.Result protobuf deserialization. --- .../protobuf/GetItemResultPbSerdeTest.java | 99 ++++++++----------- 1 file changed, 42 insertions(+), 57 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java index 719656d..d472dd6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java @@ -1,78 +1,63 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetItem; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import com.google.common.collect.ImmutableMap; -import org.junit.BeforeClass; -import org.junit.Test; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; -import java.util.Arrays; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +@RunWith(Enclosed.class) +public class GetItemResultPbSerdeTest { -public class GetItemResultPbSerdeTest { + public static class NormalGetItemResultPbSerdeTest extends AbstractPbDeserializationTest { - private static SerdeModule sut; - - private static GetItem.Result expectedObject; - private static byte[] expectedPbInput; - - private static GetItem.Result expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final Map tableRow = ImmutableMap.of( + private static final Map TABLE_ROW = ImmutableMap.of( "key1", "value1", "key2", "value2", "key3", "value3" ); - expectedObject = GetItem.Result.getInstance(tableRow); - expectedPbInput = qlua.rpc.GetItem.Result.newBuilder() - .putAllTableRow(tableRow) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = GetItem.Result.getInstance(null); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetItem.Result.newBuilder().build().toByteArray(); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetItemResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetItem.Result getTargetObject() { + return GetItem.Result.getInstance(TABLE_ROW); + } + + @NotNull + @Override + public qlua.rpc.GetItem.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetItem.Result.newBuilder() + .putAllTableRow(TABLE_ROW) + .build(); + } } - @Test - public void testSerialize() { + public static class ErrorGetItemResultPbSerdeTest extends AbstractPbDeserializationTest { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetItemResultPbDeserializer.INSTANCE; + } - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(GetItem.Result.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { + @NotNull + @Override + public GetItem.Result getTargetObject() { + return GetItem.Result.getInstance(null); + } - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(GetItem.Result.class, expectedPbInputWithOnlyRequiredFields) - ); + @NotNull + @Override + public qlua.rpc.GetItem.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetItem.Result.newBuilder().build(); + } } } From eb265255688b6e0f4f42840447f0fd260f1b4f22 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:28:12 +0300 Subject: [PATCH 415/549] Rewrote test for GetMoneyEx.Result protobuf deserialization. --- .../protobuf/GetMoneyExResultPbSerdeTest.java | 136 +++++++++--------- 1 file changed, 69 insertions(+), 67 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java index 231d9a9..f00dc59 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExResultPbSerdeTest.java @@ -2,11 +2,14 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetMoneyEx; import com.enfernuz.quik.lua.rpc.api.structures.MoneyLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -public class GetMoneyExResultPbSerdeTest extends AbstractResultPbSerdeTest { +@RunWith(Enclosed.class) +public class GetMoneyExResultPbSerdeTest { private static final String CURR_CODE = "1"; private static final String TAG = "2"; @@ -22,80 +25,79 @@ public class GetMoneyExResultPbSerdeTest extends AbstractResultPbSerdeTest { - @Override - public @NotNull Class getTargetObjectClass() { - return GetMoneyEx.Result.class; - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetMoneyExResultPbDeserializer.INSTANCE; + } - @NotNull - @Override - public qlua.rpc.GetMoneyEx.Result getTargetObjectAsPbMessage() { + @NotNull + @Override + public GetMoneyEx.Result getTargetObject() { - final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.newBuilder() - .setCurrcode(CURR_CODE) - .setTag(TAG) - .setFirmid(FIRM_ID) - .setClientCode(CLIENT_CODE) - .setOpenbal(OPEN_BAL) - .setOpenlimit(OPEN_LIMIT) - .setCurrentbal(CURRENT_BAL) - .setCurrentlimit(CURRENT_LIMIT) - .setLocked(LOCKED) - .setLockedValueCoef(LOCKED_VALUE_COEF) - .setLockedMarginValue(LOCKED_MARGIN_VALUE) - .setLeverage(LEVERAGE) - .setLimitKind(LIMIT_KIND) - .build(); + final MoneyLimit moneyLimit = MoneyLimit.builder() + .currCode(CURR_CODE) + .tag(TAG) + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .openBal(OPEN_BAL) + .openLimit(OPEN_LIMIT) + .currentBal(CURRENT_BAL) + .currentLimit(CURRENT_LIMIT) + .locked(LOCKED) + .lockedValueCoef(LOCKED_VALUE_COEF) + .lockedMarginValue(LOCKED_MARGIN_VALUE) + .leverage(LEVERAGE) + .limitKind(LIMIT_KIND) + .build(); - return qlua.rpc.GetMoneyEx.Result.newBuilder() - .setMoneyEx(moneyLimit) - .build(); - } + return GetMoneyEx.Result.getInstance(moneyLimit); + } - @NotNull - @Override - public GetMoneyEx.Result getTargetObject() { + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Result getTargetObjectAsPbMessage() { - final MoneyLimit moneyLimit = MoneyLimit.builder() - .currCode(CURR_CODE) - .tag(TAG) - .firmId(FIRM_ID) - .clientCode(CLIENT_CODE) - .openBal(OPEN_BAL) - .openLimit(OPEN_LIMIT) - .currentBal(CURRENT_BAL) - .currentLimit(CURRENT_LIMIT) - .locked(LOCKED) - .lockedValueCoef(LOCKED_VALUE_COEF) - .lockedMarginValue(LOCKED_MARGIN_VALUE) - .leverage(LEVERAGE) - .limitKind(LIMIT_KIND) - .build(); + final QluaStructures.MoneyLimit moneyLimit = QluaStructures.MoneyLimit.newBuilder() + .setCurrcode(CURR_CODE) + .setTag(TAG) + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setOpenbal(OPEN_BAL) + .setOpenlimit(OPEN_LIMIT) + .setCurrentbal(CURRENT_BAL) + .setCurrentlimit(CURRENT_LIMIT) + .setLocked(LOCKED) + .setLockedValueCoef(LOCKED_VALUE_COEF) + .setLockedMarginValue(LOCKED_MARGIN_VALUE) + .setLeverage(LEVERAGE) + .setLimitKind(LIMIT_KIND) + .build(); - return GetMoneyEx.Result.getInstance(moneyLimit); + return qlua.rpc.GetMoneyEx.Result.newBuilder() + .setMoneyEx(moneyLimit) + .build(); + } } - @NotNull - @Override - public qlua.rpc.GetMoneyEx.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetMoneyEx.Result.newBuilder().build(); - } + public static class ErrorGetMoneyExResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetMoneyExResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetMoneyEx.Result getTargetObject() { + return GetMoneyEx.Result.getInstance(null); + } - @NotNull - @Override - public GetMoneyEx.Result getErrorObject() { - return GetMoneyEx.Result.getInstance(null); + @NotNull + @Override + public qlua.rpc.GetMoneyEx.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetMoneyEx.Result.newBuilder().build(); + } } } From ac3af4074ac89c73f2b0d95511610381f3a53a08 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:28:29 +0300 Subject: [PATCH 416/549] Rewrote test for GetMoney.Result protobuf deserialization. --- .../protobuf/GetMoneyResultPbSerdeTest.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java index 5eb9714..05f2949 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyResultPbSerdeTest.java @@ -2,9 +2,10 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetMoney; import com.enfernuz.quik.lua.rpc.api.structures.Money; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -public class GetMoneyResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetMoneyResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String MONEY_OPEN_LIMIT = "1"; private static final String MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE = "2"; @@ -14,10 +15,26 @@ public class GetMoneyResultPbSerdeTest extends AbstractResultPbSerdeTest getDeserializerUnderTest() { + return GetMoneyResultPbDeserializer.INSTANCE; + } + @NotNull @Override - public Class getTargetObjectClass() { - return GetMoney.Result.class; + public GetMoney.Result getTargetObject() { + + final Money money = Money.builder() + .moneyOpenLimit(MONEY_OPEN_LIMIT) + .moneyLimitLockedNonMarginalValue(MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE) + .moneyLimitLocked(MONEY_LIMIT_LOCKED) + .moneyOpenBalance(MONEY_OPEN_BALANCE) + .moneyCurrentLimit(MONEY_CURRENT_LIMIT) + .moneyCurrentBalance(MONEY_CURRENT_BALANCE) + .moneyLimitAvailable(MONEY_LIMIT_AVAILABLE) + .build(); + + return new GetMoney.Result(money); } @NotNull @@ -38,21 +55,4 @@ public qlua.rpc.GetMoney.Result getTargetObjectAsPbMessage() { .setMoney(money) .build(); } - - @NotNull - @Override - public GetMoney.Result getTargetObject() { - - final Money money = Money.builder() - .moneyOpenLimit(MONEY_OPEN_LIMIT) - .moneyLimitLockedNonMarginalValue(MONEY_LIMIT_LOCKED_NON_MARGINAL_VALUE) - .moneyLimitLocked(MONEY_LIMIT_LOCKED) - .moneyOpenBalance(MONEY_OPEN_BALANCE) - .moneyCurrentLimit(MONEY_CURRENT_LIMIT) - .moneyCurrentBalance(MONEY_CURRENT_BALANCE) - .moneyLimitAvailable(MONEY_LIMIT_AVAILABLE) - .build(); - - return new GetMoney.Result(money); - } } From 8c52313ba4a4c65bebf36d9c7851dc2d4f401855 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:28:45 +0300 Subject: [PATCH 417/549] Rewrote test for GetOrderByNumber.Result protobuf deserialization. --- .../GetOrderByNumberResultPbSerdeTest.java | 320 +++++++++--------- 1 file changed, 162 insertions(+), 158 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java index 7cc3f12..36b1e1e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberResultPbSerdeTest.java @@ -3,11 +3,14 @@ import com.enfernuz.quik.lua.rpc.api.messages.GetOrderByNumber; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; import com.enfernuz.quik.lua.rpc.api.structures.Order; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -public class GetOrderByNumberResultPbSerdeTest extends AbstractResultPbSerdeTest { +@RunWith(Enclosed.class) +public class GetOrderByNumberResultPbSerdeTest { private static final int DATETIME_MCS = 1; private static final int DATETIME_MS = 2; @@ -62,163 +65,164 @@ public class GetOrderByNumberResultPbSerdeTest extends AbstractResultPbSerdeTest private static final int INDX = 2; - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); + public static class NormalGetOrderByNumberResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetOrderByNumberResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetOrderByNumber.Result getTargetObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .mcs(DATETIME_MCS) + .ms(DATETIME_MS) + .sec(DATETIME_SEC) + .min(DATETIME_MIN) + .hour(DATETIME_HOUR) + .day(DATETIME_DAY) + .weekDay(DATETIME_WEEK_DAY) + .month(DATETIME_MONTH) + .year(DATETIME_YEAR) + .build(); + + final Order order = Order.builder() + .orderNum(ORDER_NUM) + .flags(FLAGS) + .brokerRef(BROKER_REF) + .userId(USER_ID) + .firmId(FIRM_ID) + .account(ACCOUNT) + .price(PRICE) + .qty(QTY) + .balance(BALANCE) + .value(VALUE) + .accruedInt(ACCRUED_INT) + .yield(YIELD) + .transId(TRANS_ID) + .clientCode(CLIENT_CODE) + .price2(PRICE2) + .settleCode(SETTLE_CODE) + .uid(UID) + .canceledUid(CANCELED_UID) + .exchangeCode(EXCHANGE_CODE) + .activationTime(ACTIVATION_TIME) + .linkedOrder(LINKED_ORDER) + .expiry(EXPIRY) + .secCode(SEC_CODE) + .classCode(CLASS_CODE) + .datetime(dateTimeEntry) + .withdrawDatetime(dateTimeEntry) + .bankAccId(BANK_ACC_ID) + .valueEntryType(VALUE_ENTRY_TYPE) + .repoTerm(REPO_TERM) + .repoValue(REPO_VALUE) + .repo2Value(REPO2_VALUE) + .repoValueBalance(REPO_VALUE_BALANCE) + .startDiscount(START_DISCOUNT) + .rejectReason(REJECT_REASON) + .extOrderFlags(EXT_ORDER_FLAGS) + .minQty(MIN_QTY) + .execType(EXEC_TYPE) + .sideQualifier(SIDE_QUALIFIER) + .acntType(ACNT_TYPE) + .capacity(CAPACITY) + .passiveOnlyOrder(PASSIVE_ONLY_ORDER) + .visible(VISIBLE) + .build(); + + return GetOrderByNumber.Result.getInstance(order, INDX); + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Result getTargetObjectAsPbMessage() { + + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(DATETIME_MCS) + .setMs(DATETIME_MS) + .setSec(DATETIME_SEC) + .setMin(DATETIME_MIN) + .setHour(DATETIME_HOUR) + .setDay(DATETIME_DAY) + .setWeekDay(DATETIME_WEEK_DAY) + .setMonth(DATETIME_MONTH) + .setYear(DATETIME_YEAR) + .build(); + + final QluaStructures.Order order = QluaStructures.Order.newBuilder() + .setOrderNum(ORDER_NUM) + .setFlags(FLAGS) + .setBrokerref(BROKER_REF) + .setUserid(USER_ID) + .setFirmid(FIRM_ID) + .setAccount(ACCOUNT) + .setPrice(PRICE) + .setQty(QTY) + .setBalance(BALANCE) + .setValue(VALUE) + .setAccruedint(ACCRUED_INT) + .setYield(YIELD) + .setTransId(TRANS_ID) + .setClientCode(CLIENT_CODE) + .setPrice2(PRICE2) + .setSettlecode(SETTLE_CODE) + .setUid(UID) + .setCanceledUid(CANCELED_UID) + .setExchangeCode(EXCHANGE_CODE) + .setActivationTime(ACTIVATION_TIME) + .setLinkedorder(LINKED_ORDER) + .setExpiry(EXPIRY) + .setSecCode(SEC_CODE) + .setClassCode(CLASS_CODE) + .setDatetime(pbDateTimeEntry) + .setWithdrawDatetime(pbDateTimeEntry) + .setBankAccId(BANK_ACC_ID) + .setValueEntryType(VALUE_ENTRY_TYPE) + .setRepoterm(REPO_TERM) + .setRepovalue(REPO_VALUE) + .setRepo2Value(REPO2_VALUE) + .setRepoValueBalance(REPO_VALUE_BALANCE) + .setStartDiscount(START_DISCOUNT) + .setRejectReason(REJECT_REASON) + .setExtOrderFlags(EXT_ORDER_FLAGS) + .setMinQty(MIN_QTY) + .setExecType(EXEC_TYPE) + .setSideQualifier(SIDE_QUALIFIER) + .setAcntType(ACNT_TYPE) + .setCapacity(CAPACITY) + .setPassiveOnlyOrder(PASSIVE_ONLY_ORDER) + .setVisible(VISIBLE) + .build(); + + return qlua.rpc.GetOrderByNumber.Result.newBuilder() + .setOrder(order) + .setValueIndx(INDX) + .build(); + } } - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); - } - - @Override - public @NotNull Class getTargetObjectClass() { - return GetOrderByNumber.Result.class; - } - - @NotNull - @Override - public qlua.rpc.GetOrderByNumber.Result getTargetObjectAsPbMessage() { - - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(DATETIME_MCS) - .setMs(DATETIME_MS) - .setSec(DATETIME_SEC) - .setMin(DATETIME_MIN) - .setHour(DATETIME_HOUR) - .setDay(DATETIME_DAY) - .setWeekDay(DATETIME_WEEK_DAY) - .setMonth(DATETIME_MONTH) - .setYear(DATETIME_YEAR) - .build(); - - final QluaStructures.Order order = QluaStructures.Order.newBuilder() - .setOrderNum(ORDER_NUM) - .setFlags(FLAGS) - .setBrokerref(BROKER_REF) - .setUserid(USER_ID) - .setFirmid(FIRM_ID) - .setAccount(ACCOUNT) - .setPrice(PRICE) - .setQty(QTY) - .setBalance(BALANCE) - .setValue(VALUE) - .setAccruedint(ACCRUED_INT) - .setYield(YIELD) - .setTransId(TRANS_ID) - .setClientCode(CLIENT_CODE) - .setPrice2(PRICE2) - .setSettlecode(SETTLE_CODE) - .setUid(UID) - .setCanceledUid(CANCELED_UID) - .setExchangeCode(EXCHANGE_CODE) - .setActivationTime(ACTIVATION_TIME) - .setLinkedorder(LINKED_ORDER) - .setExpiry(EXPIRY) - .setSecCode(SEC_CODE) - .setClassCode(CLASS_CODE) - .setDatetime(pbDateTimeEntry) - .setWithdrawDatetime(pbDateTimeEntry) - .setBankAccId(BANK_ACC_ID) - .setValueEntryType(VALUE_ENTRY_TYPE) - .setRepoterm(REPO_TERM) - .setRepovalue(REPO_VALUE) - .setRepo2Value(REPO2_VALUE) - .setRepoValueBalance(REPO_VALUE_BALANCE) - .setStartDiscount(START_DISCOUNT) - .setRejectReason(REJECT_REASON) - .setExtOrderFlags(EXT_ORDER_FLAGS) - .setMinQty(MIN_QTY) - .setExecType(EXEC_TYPE) - .setSideQualifier(SIDE_QUALIFIER) - .setAcntType(ACNT_TYPE) - .setCapacity(CAPACITY) - .setPassiveOnlyOrder(PASSIVE_ONLY_ORDER) - .setVisible(VISIBLE) - .build(); - - return qlua.rpc.GetOrderByNumber.Result.newBuilder() - .setOrder(order) - .setIndx(INDX) - .build(); - } - - @NotNull - @Override - public GetOrderByNumber.Result getTargetObject() { - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(DATETIME_MCS) - .ms(DATETIME_MS) - .sec(DATETIME_SEC) - .min(DATETIME_MIN) - .hour(DATETIME_HOUR) - .day(DATETIME_DAY) - .weekDay(DATETIME_WEEK_DAY) - .month(DATETIME_MONTH) - .year(DATETIME_YEAR) - .build(); - - final Order order = Order.builder() - .orderNum(ORDER_NUM) - .flags(FLAGS) - .brokerRef(BROKER_REF) - .userId(USER_ID) - .firmId(FIRM_ID) - .account(ACCOUNT) - .price(PRICE) - .qty(QTY) - .balance(BALANCE) - .value(VALUE) - .accruedInt(ACCRUED_INT) - .yield(YIELD) - .transId(TRANS_ID) - .clientCode(CLIENT_CODE) - .price2(PRICE2) - .settleCode(SETTLE_CODE) - .uid(UID) - .canceledUid(CANCELED_UID) - .exchangeCode(EXCHANGE_CODE) - .activationTime(ACTIVATION_TIME) - .linkedOrder(LINKED_ORDER) - .expiry(EXPIRY) - .secCode(SEC_CODE) - .classCode(CLASS_CODE) - .datetime(dateTimeEntry) - .withdrawDatetime(dateTimeEntry) - .bankAccId(BANK_ACC_ID) - .valueEntryType(VALUE_ENTRY_TYPE) - .repoTerm(REPO_TERM) - .repoValue(REPO_VALUE) - .repo2Value(REPO2_VALUE) - .repoValueBalance(REPO_VALUE_BALANCE) - .startDiscount(START_DISCOUNT) - .rejectReason(REJECT_REASON) - .extOrderFlags(EXT_ORDER_FLAGS) - .minQty(MIN_QTY) - .execType(EXEC_TYPE) - .sideQualifier(SIDE_QUALIFIER) - .acntType(ACNT_TYPE) - .capacity(CAPACITY) - .passiveOnlyOrder(PASSIVE_ONLY_ORDER) - .visible(VISIBLE) - .build(); - - return GetOrderByNumber.Result.getInstance(order, INDX); - } - - @NotNull - @Override - public qlua.rpc.GetOrderByNumber.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetOrderByNumber.Result.newBuilder().build(); - } - - @NotNull - @Override - public GetOrderByNumber.Result getErrorObject() { - return GetOrderByNumber.Result.getInstance(null, 0); + public static class ErrorGetOrderByNumberResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetOrderByNumberResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetOrderByNumber.Result getTargetObject() { + return GetOrderByNumber.Result.getInstance(null, null); + } + + @NotNull + @Override + public qlua.rpc.GetOrderByNumber.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetOrderByNumber.Result.newBuilder() + .setNullIndx(true) + .build(); + } } } From 3e0c1c0463a18b52cd3eb5d3afc72caf8c5181cb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:29:00 +0300 Subject: [PATCH 418/549] Rewrote test for GetParamEx2.Result protobuf deserialization. --- .../GetParamEx2ResultPbSerdeTest.java | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java index 7fa216f..29f26fd 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ResultPbSerdeTest.java @@ -1,18 +1,15 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx2; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.instanceOf; -public class GetParamEx2ResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetParamEx2ResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String PARAM_TYPE = "1"; private static final String PARAM_VALUE = "2"; @@ -23,8 +20,22 @@ public class GetParamEx2ResultPbSerdeTest extends AbstractResultPbSerdeTest getTargetObjectClass() { - return GetParamEx2.Result.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return GetParamEx2ResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetParamEx2.Result getTargetObject() { + + final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() + .paramType(PARAM_TYPE) + .paramValue(PARAM_VALUE) + .paramImage(PARAM_IMAGE) + .result(RESULT) + .build(); + + return new GetParamEx2.Result(paramEx); } @NotNull @@ -43,31 +54,15 @@ public qlua.rpc.GetParamEx2.Result getTargetObjectAsPbMessage() { .build(); } - @NotNull - @Override - public GetParamEx2.Result getTargetObject() { - - final GetParamEx2.ParamEx2 paramEx = GetParamEx2.ParamEx2.builder() - .paramType(PARAM_TYPE) - .paramValue(PARAM_VALUE) - .paramImage(PARAM_IMAGE) - .result(RESULT) - .build(); - - return new GetParamEx2.Result(paramEx); - } - + // TODO: really shouldn't be a responsibility of the deserializer @Test public void shouldFailOnUninitializedPbParamEx() { - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано.")) - ) + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage( + equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx2.Result не инициализировано.") ); - getSerdeModuleUnderTest().deserialize(GetParamEx2.Result.class, qlua.rpc.GetParamEx2.Result.newBuilder().build().toByteArray()); + getDeserializerUnderTest().deserialize(qlua.rpc.GetParamEx2.Result.newBuilder().build().toByteArray()); } } From ca91b0a7af5043cd29f59f355800528289b5d893 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:29:12 +0300 Subject: [PATCH 419/549] Rewrote test for GetParamEx.Result protobuf deserialization. --- .../protobuf/GetParamExResultPbSerdeTest.java | 52 ++++++++----------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java index e5ac0b2..fd6d912 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExResultPbSerdeTest.java @@ -1,19 +1,15 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetParamEx; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; -import com.enfernuz.quik.lua.rpc.serde.protobuf.AbstractResultPbSerdeTest; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.instanceOf; -public class GetParamExResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetParamExResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String PARAM_TYPE = "1"; private static final String PARAM_VALUE = "2"; @@ -24,8 +20,22 @@ public class GetParamExResultPbSerdeTest extends AbstractResultPbSerdeTest getTargetObjectClass() { - return GetParamEx.Result.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return GetParamExResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetParamEx.Result getTargetObject() { + + final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() + .paramType(PARAM_TYPE) + .paramValue(PARAM_VALUE) + .paramImage(PARAM_IMAGE) + .result(RESULT) + .build(); + + return new GetParamEx.Result(paramEx); } @NotNull @@ -44,31 +54,15 @@ public qlua.rpc.GetParamEx.Result getTargetObjectAsPbMessage() { .build(); } - @NotNull - @Override - public GetParamEx.Result getTargetObject() { - - final GetParamEx.ParamEx paramEx = GetParamEx.ParamEx.builder() - .paramType(PARAM_TYPE) - .paramValue(PARAM_VALUE) - .paramImage(PARAM_IMAGE) - .result(RESULT) - .build(); - - return new GetParamEx.Result(paramEx); - } - + // TODO: really shouldn't be a responsibility of the deserializer @Test public void shouldFailOnUninitializedPbParamEx() { - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано.")) - ) + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage( + equalTo("Поле 'param_ex' экземпляра protobuf-представления qlua.rpc.GetParamEx.Result не инициализировано.") ); - getSerdeModuleUnderTest().deserialize(GetParamEx.Result.class, qlua.rpc.GetParamEx.Result.newBuilder().build().toByteArray()); + getDeserializerUnderTest().deserialize(qlua.rpc.GetParamEx.Result.newBuilder().build().toByteArray()); } } From 82472b6778ef8d88895c818b8e7f69d06c7f7462 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:29:26 +0300 Subject: [PATCH 420/549] Rewrote test for GetTradeDate.Result protobuf deserialization. --- .../GetTradeDateResultPbSerdeTest.java | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java index e2443b1..205e3b1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTradeDateResultPbSerdeTest.java @@ -1,18 +1,15 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetTradeDate; -import com.enfernuz.quik.lua.rpc.serde.SerdeException; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.instanceOf; -public class GetTradeDateResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetTradeDateResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String DATE = "1"; private static final int YEAR = 2; @@ -23,8 +20,22 @@ public class GetTradeDateResultPbSerdeTest extends AbstractResultPbSerdeTest getTargetObjectClass() { - return GetTradeDate.Result.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return GetTradeDateResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetTradeDate.Result getTargetObject() { + + final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() + .date(DATE) + .year(YEAR) + .month(MONTH) + .day(DAY) + .build(); + + return new GetTradeDate.Result(tradeDate); } @NotNull @@ -43,31 +54,15 @@ public qlua.rpc.GetTradeDate.Result getTargetObjectAsPbMessage() { .build(); } - @NotNull - @Override - public GetTradeDate.Result getTargetObject() { - - final GetTradeDate.TradeDate tradeDate = GetTradeDate.TradeDate.builder() - .date(DATE) - .year(YEAR) - .month(MONTH) - .day(DAY) - .build(); - - return new GetTradeDate.Result(tradeDate); - } - + // TODO: really shouldn't be a responsibility of the deserializer @Test public void shouldFailOnUninitializedPbTradeDate() { - thrown.expect(SerdeException.class); - thrown.expectCause( - allOf( - instanceOf(IllegalArgumentException.class), - hasProperty("message", equalTo("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано.")) - ) + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage( + equalTo("Поле 'trade_date' экземпляра protobuf-представления qlua.rpc.GetTradeDate.Result не инициализировано.") ); - getSerdeModuleUnderTest().deserialize(GetTradeDate.Result.class, qlua.rpc.GetTradeDate.Result.newBuilder().build().toByteArray()); + getDeserializerUnderTest().deserialize( qlua.rpc.GetTradeDate.Result.newBuilder().build().toByteArray() ); } } From a8eeed11ce50c38c6e170aa298a8efbc3c48becd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:29:43 +0300 Subject: [PATCH 421/549] Rewrote test for GetWindowCaption.Result protobuf deserialization. --- .../GetWindowCaptionResultPbSerdeTest.java | 77 +++++++++---------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java index d42f8fa..e702c13 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionResultPbSerdeTest.java @@ -1,57 +1,56 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; -public class GetWindowCaptionResultPbSerdeTest extends AbstractResultPbSerdeTest { +@RunWith(Enclosed.class) +public class GetWindowCaptionResultPbSerdeTest { - @Override - public @NotNull Class getTargetObjectClass() { - return GetWindowCaption.Result.class; - } + private static final String CAPTION = "1"; - @NotNull - @Override - public qlua.rpc.GetWindowCaption.Result getTargetObjectAsPbMessage() { + public static class NormalGetWindowCaptionResultPbSerdeTest extends AbstractPbDeserializationTest { - return qlua.rpc.GetWindowCaption.Result.newBuilder() - .setCaption(WindowCaptionParameters.CAPTION) - .build(); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetWindowCaptionResultPbDeserializer.INSTANCE; + } - @NotNull - @Override - public GetWindowCaption.Result getTargetObject() { - return GetWindowCaption.Result.getInstance(WindowCaptionParameters.CAPTION); - } + @NotNull + @Override + public GetWindowCaption.Result getTargetObject() { + return GetWindowCaption.Result.getInstance(CAPTION); + } - @Test - @Override - public void shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject() { - super.shouldSerialize_ErrorObject_To_ByteArrayOf_PbErrorObject(); - } + @NotNull + @Override + public qlua.rpc.GetWindowCaption.Result getTargetObjectAsPbMessage() { - @Test - @Override - public void shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject() { - super.shouldDeserialize_ByteArrayOf_PbErrorObject_To_ErrorObject(); + return qlua.rpc.GetWindowCaption.Result.newBuilder() + .setCaption(CAPTION) + .build(); + } } - @NotNull - @Override - public qlua.rpc.GetWindowCaption.Result getErrorObject_AsPbMessage() { - return qlua.rpc.GetWindowCaption.Result.newBuilder().build(); - } + public static class ErrorGetWindowCaptionResultPbSerdeTest extends AbstractPbDeserializationTest { - @NotNull - @Override - public GetWindowCaption.Result getErrorObject() { - return GetWindowCaption.Result.getErrorInstance(); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetWindowCaptionResultPbDeserializer.INSTANCE; + } - private static final class WindowCaptionParameters { + @NotNull + @Override + public GetWindowCaption.Result getTargetObject() { + return GetWindowCaption.Result.getErrorInstance(); + } - private static final String CAPTION = "1"; + @NotNull + @Override + public qlua.rpc.GetWindowCaption.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetWindowCaption.Result.newBuilder().build(); + } } } From 75545ccdb2c311635d6b4db761999e8bcb70ee2b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:29:58 +0300 Subject: [PATCH 422/549] Rewrote test for GetWorkingFolder.Result protobuf deserialization. --- .../GetWorkingFolderResultPbSerdeTest.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java index 378d67f..511dae0 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWorkingFolderResultPbSerdeTest.java @@ -1,28 +1,30 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetWorkingFolder; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -public class GetWorkingFolderResultPbSerdeTest extends AbstractResultPbSerdeTest { +public class GetWorkingFolderResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String WORKING_FOLDER = "1"; @Override - public @NotNull Class getTargetObjectClass() { - return GetWorkingFolder.Result.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return GetWorkingFolderResultPbDeserializer.INSTANCE; } @NotNull @Override - public qlua.rpc.GetWorkingFolder.Result getTargetObjectAsPbMessage() { - return qlua.rpc.GetWorkingFolder.Result.newBuilder() - .setWorkingFolder(WORKING_FOLDER) - .build(); + public GetWorkingFolder.Result getTargetObject() { + return new GetWorkingFolder.Result(WORKING_FOLDER); } @NotNull @Override - public GetWorkingFolder.Result getTargetObject() { - return new GetWorkingFolder.Result(WORKING_FOLDER); + public qlua.rpc.GetWorkingFolder.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetWorkingFolder.Result.newBuilder() + .setWorkingFolder(WORKING_FOLDER) + .build(); } } From 8b28818f953d1d1acbed992544066a72b7ddcf69 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:30:12 +0300 Subject: [PATCH 423/549] Rewrote test for Message.Result protobuf deserialization. --- .../protobuf/MessageResultPbSerdeTest.java | 110 ++++++++++-------- 1 file changed, 64 insertions(+), 46 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java index 3c713e5..f752204 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageResultPbSerdeTest.java @@ -1,70 +1,88 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.Message; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; -import java.util.Arrays; +@RunWith(Enclosed.class) +public class MessageResultPbSerdeTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final int OK = 1; + private static final int NOT_OK = 42; // any number that does not equal to 1, actually -public class MessageResultPbSerdeTest extends AbstractResultPbSerdeTest { + // sanity check + static { + assert NOT_OK != OK; + } - private static final Message.Result OK_RESULT = getResult(1); - private static final qlua.rpc.Message.Result OK_PB_RESUlT = getPbResult(1); + public static class OkMessageResultPbSerdeTest extends AbstractPbDeserializationTest { - private static final Message.Result NOT_OK_RESULT = getResult(42); - private static final qlua.rpc.Message.Result NOT_OK_PB_RESUlT = getPbResult(42); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return MessageResultPbDeserializer.INSTANCE; + } - private static final Message.Result ERROR_RESULT = Message.Result.getErrorInstance(); - private static final qlua.rpc.Message.Result ERROR_PB_RESULT = qlua.rpc.Message.Result.newBuilder() - .setNullResult(true) - .build(); + @NotNull + @Override + public Message.Result getTargetObject() { + return Message.Result.getOkInstance(); + } + @NotNull + @Override + public qlua.rpc.Message.Result getTargetObjectAsPbMessage() { - @Override - public @NotNull Class getTargetObjectClass() { - return Message.Result.class; + return qlua.rpc.Message.Result.newBuilder() + .setValueResult(OK) + .build(); + } } - @NotNull - @Override - public qlua.rpc.Message.Result getTargetObjectAsPbMessage() { - return OK_PB_RESUlT; - } + public static class NotOkMessageResultPbSerdeTest extends AbstractPbDeserializationTest { - @NotNull - @Override - public Message.Result getTargetObject() { - return OK_RESULT; - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return MessageResultPbDeserializer.INSTANCE; + } - @Test - public void shouldSerialize_ObjectOf_NotOkResult_To_ByteArrayOf_PbObjectOf_NotOkResult() { + @NotNull + @Override + public Message.Result getTargetObject() { + return Message.Result.getInstance(NOT_OK); + } - assertTrue( - Arrays.equals(NOT_OK_PB_RESUlT.toByteArray(), getSerdeModuleUnderTest().serialize(NOT_OK_RESULT)) - ); - } + @NotNull + @Override + public qlua.rpc.Message.Result getTargetObjectAsPbMessage() { - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_NotOkResult_To_ObjectOf_NotOkResult() { - assertEquals(NOT_OK_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), NOT_OK_PB_RESUlT.toByteArray())); + return qlua.rpc.Message.Result.newBuilder() + .setValueResult(NOT_OK) + .build(); + } } - @Test - public void shouldDeserialize_ByteArrayOf_PbObjectOf_ErrorResult_To_ObjectOf_ErrorResult() { - assertEquals(ERROR_RESULT, getSerdeModuleUnderTest().deserialize(getTargetObjectClass(), ERROR_PB_RESULT.toByteArray())); - } + public static class ErrorMessageResultPbSerdeTest extends AbstractPbDeserializationTest { - private static Message.Result getResult(final int result) { - return Message.Result.getInstance(Message.MessageResult.getInstance(result)); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return MessageResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Message.Result getTargetObject() { + return Message.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.Message.Result getTargetObjectAsPbMessage() { - private static qlua.rpc.Message.Result getPbResult(int result) { - return qlua.rpc.Message.Result.newBuilder() - .setValueResult(result) - .build(); + return qlua.rpc.Message.Result.newBuilder() + .setNullResult(true) + .build(); + } } } From 3b1838cb1596299ff3b173666253aa488e07ed45 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 16 Nov 2018 01:30:44 +0300 Subject: [PATCH 424/549] Rewrote test for AccountBalance protobuf deserialization. --- .../protobuf/AccountBalancePbSerdeTest.java | 160 +++++++----------- 1 file changed, 65 insertions(+), 95 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java index 7b05d74..784ee78 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountBalancePbSerdeTest.java @@ -1,106 +1,76 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.AccountBalance; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class AccountBalancePbSerdeTest { - - private static SerdeModule sut; - - private static AccountBalance expectedObject; - private static byte[] expectedPbInput; - - private static AccountBalance expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = AccountBalance.builder() - .firmId("1") - .secCode("2") - .trdAccId("3") - .depAccId("4") - .openBal("5") - .currentPos("6") - .plannedPosSell("7") - .plannedPosBuy("8") - .planBal("9") - .usqtyb("10") - .usqtys("11") - .planned("12") - .settleBal("13") - .bankAccId("14") - .firmUse(15) - .build(); - expectedPbInput = QluaStructures.AccountBalance.newBuilder() - .setFirmid("1") - .setSecCode("2") - .setTrdaccid("3") - .setDepaccid("4") - .setOpenbal("5") - .setCurrentpos("6") - .setPlannedpossell("7") - .setPlannedposbuy("8") - .setPlanbal("9") - .setUsqtyb("10") - .setUsqtys("11") - .setPlanned("12") - .setSettlebal("13") - .setBankAccId("14") - .setFirmuse(15) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = AccountBalance.builder() - .firmUse(1) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.AccountBalance.newBuilder() - .setFirmuse(1) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(AccountBalance.class, expectedPbInput)); +public class AccountBalancePbSerdeTest extends AbstractPbDeserializationTest { + + private static final String FIRM_ID = "1"; + private static final String SEC_CODE = "2"; + private static final String TRD_ACC_ID = "3"; + private static final String DEP_ACC_ID = "4"; + private static final String OPEN_BAL = "5"; + private static final String CURRENT_POS = "6"; + private static final String PLANNED_POS_SELL = "7"; + private static final String PLANNED_POS_BUY = "8"; + private static final String PLAN_BAL = "9"; + private static final String USQTYB = "10"; + private static final String USQTYS = "11"; + private static final String PLANNED = "12"; + private static final String SETTLE_BAL = "13"; + private static final String BANK_ACC_ID = "14"; + private static final int FIRM_USE = 15; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AccountBalancePbDeserializer.INSTANCE; } - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); + @NotNull + @Override + public AccountBalance getTargetObject() { + + return AccountBalance.builder() + .firmId(FIRM_ID) + .secCode(SEC_CODE) + .trdAccId(TRD_ACC_ID) + .depAccId(DEP_ACC_ID) + .openBal(OPEN_BAL) + .currentPos(CURRENT_POS) + .plannedPosSell(PLANNED_POS_SELL) + .plannedPosBuy(PLANNED_POS_BUY) + .planBal(PLAN_BAL) + .usqtyb(USQTYB) + .usqtys(USQTYS) + .planned(PLANNED) + .settleBal(SETTLE_BAL) + .bankAccId(BANK_ACC_ID) + .firmUse(FIRM_USE) + .build(); } - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(AccountBalance.class, expectedPbInputWithOnlyRequiredFields) - ); + @NotNull + @Override + public QluaStructures.AccountBalance getTargetObjectAsPbMessage() { + + return QluaStructures.AccountBalance.newBuilder() + .setFirmid(FIRM_ID) + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .setDepaccid(DEP_ACC_ID) + .setOpenbal(OPEN_BAL) + .setCurrentpos(CURRENT_POS) + .setPlannedpossell(PLANNED_POS_SELL) + .setPlannedposbuy(PLANNED_POS_BUY) + .setPlanbal(PLAN_BAL) + .setUsqtyb(USQTYB) + .setUsqtys(USQTYS) + .setPlanned(PLANNED) + .setSettlebal(SETTLE_BAL) + .setBankAccId(BANK_ACC_ID) + .setFirmuse(FIRM_USE) + .build(); } } From f6d6590028a662b83ab6cc8f09bb5e788dad68a6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 15:12:13 +0300 Subject: [PATCH 425/549] Rewrote test for AllTrade protobuf deserialization. --- .../quik/lua/rpc/api/structures/AllTrade.java | 12 +- .../protobuf/AllTradePbDeserializer.java | 6 +- src/main/proto/qlua/rpc/qlua_structures.proto | 46 ++- .../serde/protobuf/AllTradePbSerdeTest.java | 280 +++++++++--------- 4 files changed, 177 insertions(+), 167 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 5ff1a5f..2838bc7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -31,10 +31,10 @@ public class AllTrade { private static final String EXCHANGE_CODE = "exchange_code"; private static final String EXEC_MARKET = "exec_market"; - Long tradeNum; + long tradeNum; Integer flags; String price; - Integer qty; + int qty; String value; String accruedInt; String yield; @@ -54,10 +54,10 @@ public class AllTrade { @JsonCreator @Builder private AllTrade( - @JsonProperty(TRADE_NUM) final Long tradeNum, + @JsonProperty(value = TRADE_NUM, required = true) final long tradeNum, @JsonProperty(FLAGS) final Integer flags, - @JsonProperty(value = PRICE, required = true) final String price, - @JsonProperty(QUANTITY) final Integer qty, + @JsonProperty(value = PRICE, required = true) @NonNull final String price, + @JsonProperty(QUANTITY) final int qty, @JsonProperty(VALUE) final String value, @JsonProperty(ACCRUED_INTEREST) final String accruedInt, @JsonProperty(YIELD) final String yield, @@ -68,7 +68,7 @@ private AllTrade( @JsonProperty(REPO_TERM) final String repoTerm, @JsonProperty(SECURITY_CODE) final String secCode, @JsonProperty(CLASS_CODE) final String classCode, - @JsonProperty(value = DATETIME, required = true) final DateTimeEntry datetime, + @JsonProperty(value = DATETIME, required = true) @NonNull final DateTimeEntry datetime, @JsonProperty(value = PERIOD, required = true) final int period, @JsonProperty(OPEN_INTEREST) final String openInterest, @JsonProperty(EXCHANGE_CODE) final String exchangeCode, diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java index 4b35ced..a6926ff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbDeserializer.java @@ -24,10 +24,10 @@ public AllTrade convert(@NotNull final QluaStructures.AllTrade allTrade) { return AllTrade .builder() - .tradeNum( allTrade.getNullTradeNum() ? null : allTrade.getValueTradeNum() ) + .tradeNum( allTrade.getTradeNum() ) .flags( allTrade.getNullFlags() ? null : allTrade.getValueFlags() ) .price( allTrade.getPrice() ) - .qty( allTrade.getNullQty() ? null : allTrade.getValueQty() ) + .qty( allTrade.getQty() ) .value( convertFromPbString(allTrade.getValue()) ) .accruedInt( convertFromPbString(allTrade.getAccruedint()) ) .yield( convertFromPbString(allTrade.getYield()) ) @@ -38,7 +38,7 @@ public AllTrade convert(@NotNull final QluaStructures.AllTrade allTrade) { .repoTerm( convertFromPbString(allTrade.getRepoterm()) ) .secCode( convertFromPbString(allTrade.getSecCode()) ) .classCode( convertFromPbString(allTrade.getClassCode()) ) - .datetime(allTrade.hasDatetime() ? DateTimeEntryPbDeserializer.INSTANCE.convert(allTrade.getDatetime()) : null) + .datetime( DateTimeEntryPbDeserializer.INSTANCE.convert(allTrade.getDatetime()) ) .period( allTrade.getPeriod() ) .openInterest( convertFromPbString(allTrade.getOpenInterest()) ) .exchangeCode( convertFromPbString(allTrade.getExchangeCode()) ) diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index d4e5afd..c709343 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -35,34 +35,28 @@ message Firm { // Обезличенные сделки message AllTrade { - oneof trade_num { - bool null_trade_num = 1; - uint64 value_trade_num = 2; // NUMBER in QLUA - }; + int64 trade_num = 1; // NUMBER in QLUA oneof flags { - bool null_flags = 3; - uint32 value_flags = 4; // NUMBER in QLUA - }; - string price = 5; // NUMBER in QLUA - oneof qty { - bool null_qty = 6; - uint32 value_qty = 7; // NUMBER in QLUA + bool null_flags = 2; + uint32 value_flags = 3; // NUMBER in QLUA }; - string value = 8; // NUMBER in QLUA - string accruedint = 9; // NUMBER in QLUA - string yield = 10; // NUMBER in QLUA - string settlecode = 11; - string reporate = 12; // NUMBER in QLUA - string repovalue = 13; // NUMBER in QLUA - string repo2value = 14; // NUMBER in QLUA - string repoterm = 15; // NUMBER in QLUA - string sec_code = 16; - string class_code = 17; - DateTimeEntry datetime = 18; // TABLE in QLUA - int32 period = 19; // NUMBER in QLUA - string open_interest = 20; // NUMBER in QLUA - string exchange_code = 21; - string exec_market = 22; + string price = 4; // NUMBER in QLUA + uint32 qty = 5; // NUMBER in QLUA + string value = 6; // NUMBER in QLUA + string accruedint = 7; // NUMBER in QLUA + string yield = 8; // NUMBER in QLUA + string settlecode = 9; + string reporate = 10; // NUMBER in QLUA + string repovalue = 11; // NUMBER in QLUA + string repo2value = 12; // NUMBER in QLUA + string repoterm = 13; // NUMBER in QLUA + string sec_code = 14; + string class_code = 15; + DateTimeEntry datetime = 16; // TABLE in QLUA + int32 period = 17; // NUMBER in QLUA + string open_interest = 18; // NUMBER in QLUA + string exchange_code = 19; + string exec_market = 20; } // Сделки diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java index e54acc4..c25dbc3 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -2,143 +2,159 @@ import com.enfernuz.quik.lua.rpc.api.structures.AllTrade; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +@RunWith(Enclosed.class) public class AllTradePbSerdeTest { - private static SerdeModule sut; - - private static AllTrade expectedObject; - private static byte[] expectedPbInput; - - private static AllTrade expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) - .build(); - - expectedObject = AllTrade.builder() - .tradeNum(1L) - .flags(2) - .price("3") - .qty(4) - .value("5") - .accruedInt("6") - .yield("7") - .settleCode("8") - .repoRate("9") - .repoValue("10") - .repo2Value("11") - .repoTerm("12") - .secCode("13") - .classCode("14") - .datetime(dateTimeEntry) - .period(16) - .openInterest("17") - .exchangeCode("18") - .build(); - expectedPbInput = QluaStructures.AllTrade.newBuilder() - .setTradeNum(1L) - .setFlags(2) - .setPrice("3") - .setQty(4) - .setValue("5") - .setAccruedint("6") - .setYield("7") - .setSettlecode("8") - .setReporate("9") - .setRepovalue("10") - .setRepo2Value("11") - .setRepoterm("12") - .setSecCode("13") - .setClassCode("14") - .setDatetime(pbDateTimeEntry) - .setPeriod(16) - .setOpenInterest("17") - .setExchangeCode("18") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = AllTrade.builder() - .tradeNum(1L) - .flags(2) - .price("3") - .period(4) - .datetime(dateTimeEntry) - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.AllTrade.newBuilder() - .setTradeNum(1L) - .setFlags(2) - .setPrice("3") - .setPeriod(4) - .setDatetime(pbDateTimeEntry) - .build() - .toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); + private static final long TRADE_NUM = 1L; + private static final int FLAGS = 2; + private static final String PRICE = "3"; + private static final int QTY = 4; + private static final String VALUE = "5"; + private static final String ACCRUED_INT = "6"; + private static final String YIELD = "7"; + private static final String SETTLE_CODE = "8"; + private static final String REPO_RATE = "9"; + private static final String REPO_VALUE = "10"; + private static final String REPO2_VALUE = "11"; + private static final String REPO_TERM = "12"; + private static final String SEC_CODE = "13"; + private static final String CLASS_CODE = "14"; + private static final int PERIOD = 15; + private static final String OPEN_INTEREST = "16"; + private static final String EXCHANGE_CODE = "17"; + + private static final int MCS = 1; + private static final int MS = 2; + private static final int SEC = 3; + private static final int MIN = 4; + private static final int HOUR = 5; + private static final int DAY = 6; + private static final int WEEK_DAY = 7; + private static final int MONTH = 8; + private static final int YEAR = 9; + + private static final DateTimeEntry DATETIME = DateTimeEntry.builder() + .mcs(MCS) + .ms(MS) + .sec(SEC) + .min(MIN) + .hour(HOUR) + .day(DAY) + .weekDay(WEEK_DAY) + .month(MONTH) + .year(YEAR) + .build(); + + private static final QluaStructures.DateTimeEntry PB_DATETIME = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(MCS) + .setMs(MS) + .setSec(SEC) + .setMin(MIN) + .setHour(HOUR) + .setDay(DAY) + .setWeekDay(WEEK_DAY) + .setMonth(MONTH) + .setYear(YEAR) + .build(); + + public static class FullArgsAllTradePbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AllTradePbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AllTrade getTargetObject() { + + return AllTrade.builder() + .tradeNum(TRADE_NUM) + .flags(FLAGS) + .price(PRICE) + .qty(QTY) + .value(VALUE) + .accruedInt(ACCRUED_INT) + .yield(YIELD) + .settleCode(SETTLE_CODE) + .repoRate(REPO_RATE) + .repoValue(REPO_VALUE) + .repo2Value(REPO2_VALUE) + .repoTerm(REPO_TERM) + .secCode(SEC_CODE) + .classCode(CLASS_CODE) + .datetime(DATETIME) + .period(PERIOD) + .openInterest(OPEN_INTEREST) + .exchangeCode(EXCHANGE_CODE) + .build(); + } + + @NotNull + @Override + public QluaStructures.AllTrade getTargetObjectAsPbMessage() { + + return QluaStructures.AllTrade.newBuilder() + .setTradeNum(TRADE_NUM) + .setValueFlags(FLAGS) + .setPrice(PRICE) + .setQty(QTY) + .setValue(VALUE) + .setAccruedint(ACCRUED_INT) + .setYield(YIELD) + .setSettlecode(SETTLE_CODE) + .setReporate(REPO_RATE) + .setRepovalue(REPO_VALUE) + .setRepo2Value(REPO2_VALUE) + .setRepoterm(REPO_TERM) + .setSecCode(SEC_CODE) + .setClassCode(CLASS_CODE) + .setDatetime(PB_DATETIME) + .setPeriod(PERIOD) + .setOpenInterest(OPEN_INTEREST) + .setExchangeCode(EXCHANGE_CODE) + .build(); + } } - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(AllTrade.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(AllTrade.class, expectedPbInputWithOnlyRequiredFields) - ); + public static class OnlyRequiredArgsAllTradePbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AllTradePbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AllTrade getTargetObject() { + + return AllTrade.builder() + .tradeNum(TRADE_NUM) + .price(PRICE) + .qty(QTY) + .datetime(DATETIME) + .period(PERIOD) + .build(); + } + + @NotNull + @Override + public QluaStructures.AllTrade getTargetObjectAsPbMessage() { + + return QluaStructures.AllTrade.newBuilder() + .setTradeNum(TRADE_NUM) + .setPrice(PRICE) + .setQty(QTY) + .setValue(VALUE) + .setDatetime(PB_DATETIME) + .setPeriod(PERIOD) + .build(); + } } } From 7711df9ed9a25a5b934c5c3fac0b43038c11685f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 15:12:28 +0300 Subject: [PATCH 426/549] Rewrote test for BuySellInfo protobuf deserialization. --- .../protobuf/BuySellInfoPbSerdeTest.java | 187 ++++++++---------- 1 file changed, 84 insertions(+), 103 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java index 0196085..19749a2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BuySellInfoPbSerdeTest.java @@ -1,112 +1,93 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetBuySellInfo.BuySellInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class BuySellInfoPbSerdeTest { - - private static SerdeModule sut; - - private static BuySellInfo expectedObject; - private static byte[] expectedPbInput; - - private static BuySellInfo expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = BuySellInfo.builder() - .isMarginSec("1") - .isAssetSec("2") - .balance("3") - .canBuy("4") - .canSell("5") - .positionValuation("6") - .value("7") - .openValue("8") - .limLong("9") - .longCoef("10") - .limShort("11") - .shortCoef("12") - .valueCoef("13") - .openValueCoef("14") - .share("15") - .shortWaPrice("16") - .longWaPrice("17") - .profitLoss("18") - .spreadHc("19") - .canBuyOwn("20") - .canSellOwn("12") - .build(); - expectedPbInput = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() - .setIsMarginSec("1") - .setIsAssetSec("2") - .setBalance("3") - .setCanBuy("4") - .setCanSell("5") - .setPositionValuation("6") - .setValue("7") - .setOpenValue("8") - .setLimLong("9") - .setLongCoef("10") - .setLimShort("11") - .setShortCoef("12") - .setValueCoef("13") - .setOpenValueCoef("14") - .setShare("15") - .setShortWaPrice("16") - .setLongWaPrice("17") - .setProfitLoss("18") - .setSpreadHc("19") - .setCanBuyOwn("20") - .setCanSellOwn("12") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = BuySellInfo.builder().build(); - expectedPbInputWithOnlyRequiredFields = qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder().build().toByteArray(); - } - - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(BuySellInfo.class, expectedPbInput)); +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BuySellInfoPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String IS_MARGIN_SEC = "1"; + private static final String IS_ASSET_SEC = "2"; + private static final String BALANCE = "3"; + private static final String CAN_BUY = "4"; + private static final String CAN_SELL = "5"; + private static final String POSITION_VALUATION = "6"; + private static final String VALUE = "7"; + private static final String OPEN_VALUE = "8"; + private static final String LIM_LONG = "9"; + private static final String LONG_COEF = "10"; + private static final String LIM_SHORT = "11"; + private static final String SHORT_COEF = "12"; + private static final String VALUE_COEF = "13"; + private static final String OPEN_VALUE_COEF = "14"; + private static final String SHARE = "15"; + private static final String SHORT_WA_PRICE = "16"; + private static final String LONG_WA_PRICE = "17"; + private static final String PROFIT_LOSS = "18"; + private static final String SPREAD_HC = "19"; + private static final String CAN_BUY_OWN = "20"; + private static final String CAN_SELL_OWN = "21"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BuySellInfoPbDeserializer.INSTANCE; } - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); + @NotNull + @Override + public BuySellInfo getTargetObject() { + + return BuySellInfo.builder() + .isMarginSec(IS_MARGIN_SEC) + .isAssetSec(IS_ASSET_SEC) + .balance(BALANCE) + .canBuy(CAN_BUY) + .canSell(CAN_SELL) + .positionValuation(POSITION_VALUATION) + .value(VALUE) + .openValue(OPEN_VALUE) + .limLong(LIM_LONG) + .longCoef(LONG_COEF) + .limShort(LIM_SHORT) + .shortCoef(SHORT_COEF) + .valueCoef(VALUE_COEF) + .openValueCoef(OPEN_VALUE_COEF) + .share(SHARE) + .shortWaPrice(SHORT_WA_PRICE) + .longWaPrice(LONG_WA_PRICE) + .profitLoss(PROFIT_LOSS) + .spreadHc(SPREAD_HC) + .canBuyOwn(CAN_BUY_OWN) + .canSellOwn(CAN_SELL_OWN) + .build(); } - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(BuySellInfo.class, expectedPbInputWithOnlyRequiredFields) - ); + @NotNull + @Override + public qlua.rpc.GetBuySellInfo.BuySellInfo getTargetObjectAsPbMessage() { + + return qlua.rpc.GetBuySellInfo.BuySellInfo.newBuilder() + .setIsMarginSec(IS_MARGIN_SEC) + .setIsAssetSec(IS_ASSET_SEC) + .setBalance(BALANCE) + .setCanBuy(CAN_BUY) + .setCanSell(CAN_SELL) + .setPositionValuation(POSITION_VALUATION) + .setValue(VALUE) + .setOpenValue(OPEN_VALUE) + .setLimLong(LIM_LONG) + .setLongCoef(LONG_COEF) + .setLimShort(LIM_SHORT) + .setShortCoef(SHORT_COEF) + .setValueCoef(VALUE_COEF) + .setOpenValueCoef(OPEN_VALUE_COEF) + .setShare(SHARE) + .setShortWaPrice(SHORT_WA_PRICE) + .setLongWaPrice(LONG_WA_PRICE) + .setProfitLoss(PROFIT_LOSS) + .setSpreadHc(SPREAD_HC) + .setCanBuyOwn(CAN_BUY_OWN) + .setCanSellOwn(CAN_SELL_OWN) + .build(); } } From e18df46644235ef5429d5877149401507391747d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:08:41 +0300 Subject: [PATCH 427/549] Rewrote test for CandleEntry protobuf deserialization. --- .../protobuf/CandleEntryPbSerdeTest.java | 157 ++++++++---------- 1 file changed, 67 insertions(+), 90 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java index 6062d4c..40595d5 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CandleEntryPbSerdeTest.java @@ -2,108 +2,85 @@ import com.enfernuz.quik.lua.rpc.api.structures.CandleEntry; import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CandleEntryPbSerdeTest { - - private static SerdeModule sut; - - private static CandleEntry expectedObject; - private static byte[] expectedPbInput; - - private static CandleEntry expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { +public class CandleEntryPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String OPEN = "1"; + private static final String CLOSE = "2"; + private static final String HIGH = "3"; + private static final String LOW = "4"; + private static final String VOLUME = "5"; + private static final int DOES_EXIST = 7; + + private static final int MCS = 1; + private static final int MS = 2; + private static final int SEC = 3; + private static final int MIN = 4; + private static final int HOUR = 5; + private static final int DAY = 6; + private static final int WEEK_DAY = 7; + private static final int MONTH = 8; + private static final int YEAR = 9; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return CandleEntryPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public CandleEntry getTargetObject() { final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() - .mcs(1) - .ms(2) - .sec(3) - .min(4) - .hour(5) - .day(6) - .weekDay(7) - .month(8) - .year(9) - .build(); - final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() - .setMcs(1) - .setMs(2) - .setSec(3) - .setMin(4) - .setHour(5) - .setDay(6) - .setWeekDay(7) - .setMonth(8) - .setYear(9) + .mcs(MCS) + .ms(MS) + .sec(SEC) + .min(MIN) + .hour(HOUR) + .day(DAY) + .weekDay(WEEK_DAY) + .month(MONTH) + .year(YEAR) .build(); - expectedObject = CandleEntry.builder() - .open("1") - .close("2") - .high("3") - .low("4") - .volume("5") + return CandleEntry.builder() + .open(OPEN) + .close(CLOSE) + .high(HIGH) + .low(LOW) + .volume(VOLUME) .dateTimeEntry(dateTimeEntry) - .doesExist(7) + .doesExist(DOES_EXIST) .build(); - expectedPbInput = QluaStructures.CandleEntry.newBuilder() - .setOpen("1") - .setClose("2") - .setHigh("3") - .setLow("4") - .setVolume("5") - .setDatetime(pbDateTimeEntry) - .setDoesExist(7) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = CandleEntry.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.CandleEntry.newBuilder().build().toByteArray(); } - @Test - public void testSerialize() { + @NotNull + @Override + public QluaStructures.CandleEntry getTargetObjectAsPbMessage() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(CandleEntry.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { + final QluaStructures.DateTimeEntry pbDateTimeEntry = QluaStructures.DateTimeEntry.newBuilder() + .setMcs(MCS) + .setMs(MS) + .setSec(SEC) + .setMin(MIN) + .setHour(HOUR) + .setDay(DAY) + .setWeekDay(WEEK_DAY) + .setMonth(MONTH) + .setYear(YEAR) + .build(); - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(CandleEntry.class, expectedPbInputWithOnlyRequiredFields) - ); + return QluaStructures.CandleEntry.newBuilder() + .setOpen(OPEN) + .setClose(CLOSE) + .setHigh(HIGH) + .setLow(LOW) + .setVolume(VOLUME) + .setDatetime(pbDateTimeEntry) + .setDoesExist(DOES_EXIST) + .build(); } } From 8a05885fb92fc5aa50bfdec2a9de644f1a5265f5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:21:23 +0300 Subject: [PATCH 428/549] Rewrote test for ConnectedEventInfo protobuf deserialization. --- .../ConnectedEventInfoPbSerdeTest.java | 68 +++++++++++-------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java index c9c57a4..3fa0f2a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ConnectedEventInfoPbSerdeTest.java @@ -1,48 +1,58 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.ConnectedEventInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +@RunWith(Enclosed.class) public class ConnectedEventInfoPbSerdeTest { - private static SerdeModule sut; + public static class TrueResultConnectedEventInfoPbSerdeTest extends AbstractPbDeserializationTest { - private static ConnectedEventInfo expectedObject; - private static byte[] expectedPbInput; + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ConnectedEventInfoPbDeserializer.INSTANCE; + } - @BeforeClass - public static void globalSetup() { + @NotNull + @Override + public ConnectedEventInfo getTargetObject() { + return ConnectedEventInfo.getInstance(true); + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public QluaStructures.ConnectedEventInfo getTargetObjectAsPbMessage() { - expectedObject = new ConnectedEventInfo(true); - expectedPbInput = QluaStructures.ConnectedEventInfo.newBuilder() - .setFlag(true) - .build() - .toByteArray(); + return QluaStructures.ConnectedEventInfo.newBuilder() + .setFlag(true) + .build(); + } } - @Test - public void testSerialize() { + public static class FalseResultConnectedEventInfoPbSerdeTest extends AbstractPbDeserializationTest { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ConnectedEventInfoPbDeserializer.INSTANCE; + } - @Test - public void testDeserialize() { + @NotNull + @Override + public ConnectedEventInfo getTargetObject() { + return ConnectedEventInfo.getInstance(false); + } - final ConnectedEventInfo actualObject = sut.deserialize(ConnectedEventInfo.class, expectedPbInput); + @NotNull + @Override + public QluaStructures.ConnectedEventInfo getTargetObjectAsPbMessage() { - assertEquals(actualObject, expectedObject); + return QluaStructures.ConnectedEventInfo.newBuilder() + .setFlag(false) + .build(); + } } } From cdbf8b3c4a47f02cd6ca33e7084d05b437056d2e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:29:09 +0300 Subject: [PATCH 429/549] Rewrote test for DepoLimitDelete protobuf deserialization. --- .../DepoLimitDeletePbDeserializer.java | 8 +- .../protobuf/DepoLimitDeletePbSerdeTest.java | 101 ++++++------------ 2 files changed, 35 insertions(+), 74 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java index 1261f22..1a06873 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbDeserializer.java @@ -23,10 +23,10 @@ public DepoLimitDelete deserialize(final byte[] data) { public DepoLimitDelete convert(@NotNull QluaStructures.DepoLimitDelete depoLimitDelete) { return DepoLimitDelete.builder() - .secCode( convertFromPbString(depoLimitDelete.getSecCode()) ) - .trdAccId( convertFromPbString(depoLimitDelete.getTrdaccid()) ) - .firmId( convertFromPbString(depoLimitDelete.getFirmid()) ) - .clientCode( convertFromPbString(depoLimitDelete.getClientCode()) ) + .secCode( depoLimitDelete.getSecCode() ) + .trdAccId( depoLimitDelete.getTrdaccid() ) + .firmId( depoLimitDelete.getFirmid() ) + .clientCode( depoLimitDelete.getClientCode() ) .limitKind( depoLimitDelete.getLimitKind() ) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java index 2bceef2..a3ae77d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitDeletePbSerdeTest.java @@ -1,85 +1,46 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; +public class DepoLimitDeletePbSerdeTest extends AbstractPbDeserializationTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final String SEC_CODE = "1"; + private static final String TRD_ACC_ID = "2"; + private static final String FIRM_ID = "3"; + private static final String CLIENT_CODE = "4"; + private static final int LIMIT_KIND = 5; -public class DepoLimitDeletePbSerdeTest { - - private static SerdeModule sut; - - private static DepoLimitDelete expectedObject; - private static byte[] expectedPbInput; - - private static DepoLimitDelete expectedObjectWithNullNonRequiredStringFileds; - private static byte[] expectedPbInputWithEmptyNonRequiredStringFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DepoLimitDelete.builder() - .secCode("1") - .trdAccId("2") - .firmId("3") - .clientCode("4") - .limitKind(5) - .build(); - expectedPbInput = QluaStructures.DepoLimitDelete.newBuilder() - .setSecCode("1") - .setTrdaccid("2") - .setFirmid("3") - .setClientCode("4") - .setLimitKind(5) - .build() - .toByteArray(); - - expectedObjectWithNullNonRequiredStringFileds = DepoLimitDelete.builder() - .limitKind(1) - .build(); - expectedPbInputWithEmptyNonRequiredStringFields = QluaStructures.DepoLimitDelete.newBuilder() - .setLimitKind(1) - .build() - .toByteArray(); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DepoLimitDeletePbDeserializer.INSTANCE; } - @Test - public void testSerialize() { + @NotNull + @Override + public DepoLimitDelete getTargetObject() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } - - @Test - public void testSerializePbInputWithEmptyNonRequiredStringFields() { - - final byte[] actual = sut.serialize(expectedObjectWithNullNonRequiredStringFileds); - - assertTrue( Arrays.equals(expectedPbInputWithEmptyNonRequiredStringFields, actual) ); - } - - @Test - public void testDeserialize() { - - final DepoLimitDelete actualObject = sut.deserialize(DepoLimitDelete.class, expectedPbInput); - - assertEquals(actualObject, expectedObject); + return DepoLimitDelete.builder() + .secCode(SEC_CODE) + .trdAccId(TRD_ACC_ID) + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .limitKind(LIMIT_KIND) + .build(); } - @Test - public void testDeserializePbInputWithEmptyNonRequiredStringFields() { + @NotNull + @Override + public QluaStructures.DepoLimitDelete getTargetObjectAsPbMessage() { - final DepoLimitDelete actualObject = sut.deserialize(DepoLimitDelete.class, expectedPbInputWithEmptyNonRequiredStringFields); - - assertEquals(actualObject, expectedObjectWithNullNonRequiredStringFileds); + return QluaStructures.DepoLimitDelete.newBuilder() + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setLimitKind(LIMIT_KIND) + .build(); } } From e29f6a3b9437f0be6071a9cc8dc04a28ceccb1aa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:44:38 +0300 Subject: [PATCH 430/549] Adjusted constraints on DepoLimitDelete. --- .../lua/rpc/api/structures/DepoLimitDelete.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java index dfe661d..536da99 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimitDelete.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import org.jetbrains.annotations.NotNull; @@ -32,10 +29,10 @@ public class DepoLimitDelete { @JsonCreator @Builder private DepoLimitDelete( - @JsonProperty(SECURITY_CODE) final String secCode, - @JsonProperty(TRADING_ACCOUNT_ID) final String trdAccId, - @JsonProperty(FIRM_ID) final String firmId, - @JsonProperty(CLIENT_CODE) final String clientCode, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode, + @JsonProperty(value = TRADING_ACCOUNT_ID, required = true) @NonNull final String trdAccId, + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, + @JsonProperty(value = CLIENT_CODE, required = true) @NonNull final String clientCode, @JsonProperty(value = LIMIT_KIND, required = true) final int limitKind) { this.secCode = secCode; From 8bdad7cf92455009b2915f0e88c64a5f33e92ecf Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:45:05 +0300 Subject: [PATCH 431/549] Adjusted constraints on DepoLimit; rewrote test for DepoLimit protobuf deserialization. --- .../lua/rpc/api/structures/DepoLimit.java | 33 ++-- .../protobuf/DepoLimitPbDeserializer.java | 16 +- .../serde/protobuf/DepoLimitPbSerdeTest.java | 150 ++++++++---------- 3 files changed, 84 insertions(+), 115 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java index 53a61bc..397bcbc 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/DepoLimit.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import org.jetbrains.annotations.NotNull; @@ -50,20 +47,20 @@ public class DepoLimit { @JsonCreator @Builder private DepoLimit( - @JsonProperty(SECURITY_CODE) final String secCode, - @JsonProperty(TRADING_ACCOUNT_ID) final String trdAccId, - @JsonProperty(FIRM_ID) final String firmId, - @JsonProperty(CLIENT_CODE) final String clientCode, - @JsonProperty(OPEN_BALANCE) final int openBal, - @JsonProperty(OPEN_LIMIT) final int openLimit, - @JsonProperty(CURRENT_BALANCE) final int currentBal, - @JsonProperty(CURRENT_LIMIT) final int currentLimit, - @JsonProperty(LOCKED_SELL) final int lockedSell, - @JsonProperty(LOCKED_BUY) final int lockedBuy, - @JsonProperty(LOCKED_BUY_VALUE) final String lockedBuyValue, - @JsonProperty(LOCKED_SELL_VALUE) final String lockedSellValue, - @JsonProperty(WEIGHTED_AVERAGE_POSITION_PRICE) final String waPositionPrice, - @JsonProperty(LIMIT_KIND) final int limitKind) { + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode, + @JsonProperty(value = TRADING_ACCOUNT_ID, required = true) @NonNull final String trdAccId, + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, + @JsonProperty(value = CLIENT_CODE, required = true) @NonNull final String clientCode, + @JsonProperty(value = OPEN_BALANCE, required = true) final int openBal, + @JsonProperty(value = OPEN_LIMIT, required = true) final int openLimit, + @JsonProperty(value = CURRENT_BALANCE, required = true) final int currentBal, + @JsonProperty(value = CURRENT_LIMIT, required = true) final int currentLimit, + @JsonProperty(value = LOCKED_SELL, required = true) final int lockedSell, + @JsonProperty(value = LOCKED_BUY, required = true) final int lockedBuy, + @JsonProperty(value = LOCKED_BUY_VALUE, required = true) @NonNull final String lockedBuyValue, + @JsonProperty(value = LOCKED_SELL_VALUE, required = true) @NonNull final String lockedSellValue, + @JsonProperty(value = WEIGHTED_AVERAGE_POSITION_PRICE, required = true) @NonNull final String waPositionPrice, + @JsonProperty(value = LIMIT_KIND, required = true) final int limitKind) { this.secCode = secCode; this.trdAccId = trdAccId; diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java index 96299c7..026dbff 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbDeserializer.java @@ -7,8 +7,6 @@ import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; - enum DepoLimitPbDeserializer implements Deserializer, FromPbConverter { INSTANCE; @@ -23,19 +21,19 @@ public DepoLimit deserialize(final byte[] data) { public DepoLimit convert(@NotNull QluaStructures.DepoLimit depoLimit) { return DepoLimit.builder() - .secCode( convertFromPbString(depoLimit.getSecCode()) ) - .trdAccId( convertFromPbString(depoLimit.getTrdaccid()) ) - .firmId( convertFromPbString(depoLimit.getFirmid()) ) - .clientCode( convertFromPbString(depoLimit.getClientCode()) ) + .secCode( depoLimit.getSecCode() ) + .trdAccId( depoLimit.getTrdaccid() ) + .firmId( depoLimit.getFirmid() ) + .clientCode( depoLimit.getClientCode() ) .openBal( depoLimit.getOpenbal() ) .openLimit( depoLimit.getOpenlimit() ) .currentBal( depoLimit.getCurrentbal() ) .currentLimit( depoLimit.getCurrentlimit() ) .lockedSell( depoLimit.getLockedSell() ) .lockedBuy( depoLimit.getLockedBuy() ) - .lockedBuyValue( convertFromPbString(depoLimit.getLockedBuyValue()) ) - .lockedSellValue( convertFromPbString(depoLimit.getLockedSellValue()) ) - .waPositionPrice( convertFromPbString(depoLimit.getWaPositionPrice()) ) + .lockedBuyValue( depoLimit.getLockedBuyValue() ) + .lockedSellValue( depoLimit.getLockedSellValue() ) + .waPositionPrice( depoLimit.getWaPositionPrice() ) .limitKind( depoLimit.getLimitKind() ) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java index ea1e59a..719d613 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DepoLimitPbSerdeTest.java @@ -1,99 +1,73 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class DepoLimitPbSerdeTest { - - private static SerdeModule sut; - - private static DepoLimit expectedObject; - private static byte[] expectedPbInput; - - private static DepoLimit expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = DepoLimit.builder() - .secCode("1") - .trdAccId("2") - .firmId("3") - .clientCode("4") - .openBal(5) - .openLimit(6) - .currentBal(7) - .currentLimit(8) - .lockedSell(9) - .lockedBuy(10) - .lockedBuyValue("11") - .lockedSellValue("12") - .awgPositionPrice("13") - .limitKind(14) - .build(); - expectedPbInput = QluaStructures.DepoLimit.newBuilder() - .setSecCode("1") - .setTrdaccid("2") - .setFirmid("3") - .setClientCode("4") - .setOpenbal(5) - .setOpenlimit(6) - .setCurrentbal(7) - .setCurrentlimit(8) - .setLockedSell(9) - .setLockedBuy(10) - .setLockedBuyValue("11") - .setLockedSellValue("12") - .setAwgPositionPrice("13") - .setLimitKind(14) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = DepoLimit.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.DepoLimit.newBuilder().build().toByteArray(); +public class DepoLimitPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String SEC_CODE = "1"; + private static final String TRD_ACC_ID = "2"; + private static final String FIRM_ID = "3"; + private static final String CLIENT_CODE = "4"; + private static final int OPEN_BAL = 5; + private static final int OPEN_LIMIT = 6; + private static final int CURRENT_BAL = 7; + private static final int CURRENT_LIMIT = 8; + private static final int LOCKED_SELL = 9; + private static final int LOCKED_BUY = 10; + private static final String LOCKED_BUY_VALUE = "11"; + private static final String LOCKED_SELL_VALUE = "12"; + private static final String WA_POSITION_PRICE = "13"; + private static final int LIMIT_KIND = 14; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DepoLimitPbDeserializer.INSTANCE; } - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(DepoLimit.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); + @NotNull + @Override + public DepoLimit getTargetObject() { + + return DepoLimit.builder() + .secCode(SEC_CODE) + .trdAccId(TRD_ACC_ID) + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .openBal(OPEN_BAL) + .openLimit(OPEN_LIMIT) + .currentBal(CURRENT_BAL) + .currentLimit(CURRENT_LIMIT) + .lockedSell(LOCKED_SELL) + .lockedBuy(LOCKED_BUY) + .lockedBuyValue(LOCKED_BUY_VALUE) + .lockedSellValue(LOCKED_SELL_VALUE) + .waPositionPrice(WA_POSITION_PRICE) + .limitKind(LIMIT_KIND) + .build(); } - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(DepoLimit.class, expectedPbInputWithOnlyRequiredFields) - ); + @NotNull + @Override + public QluaStructures.DepoLimit getTargetObjectAsPbMessage() { + + return QluaStructures.DepoLimit.newBuilder() + .setSecCode(SEC_CODE) + .setTrdaccid(TRD_ACC_ID) + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setOpenbal(OPEN_BAL) + .setOpenlimit(OPEN_LIMIT) + .setCurrentbal(CURRENT_BAL) + .setCurrentlimit(CURRENT_LIMIT) + .setLockedSell(LOCKED_SELL) + .setLockedBuy(LOCKED_BUY) + .setLockedBuyValue(LOCKED_BUY_VALUE) + .setLockedSellValue(LOCKED_SELL_VALUE) + .setWaPositionPrice(WA_POSITION_PRICE) + .setLimitKind(LIMIT_KIND) + .build(); } } From 474c309bda1d7bb6788d973c0ac1b33a8b026f3c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 17:52:22 +0300 Subject: [PATCH 432/549] Adjusted constraints on Firm; rewrote test for Firm protobuf deserialization. --- .../quik/lua/rpc/api/structures/Firm.java | 2 +- .../rpc/serde/protobuf/FirmPbSerdeTest.java | 128 ++++++++---------- 2 files changed, 61 insertions(+), 69 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java index 9c331c4..931103c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/Firm.java @@ -25,7 +25,7 @@ public class Firm { @JsonCreator @Builder private Firm( - @JsonProperty(value = FIRM_ID) final String firmId, + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, @JsonProperty(FIRM_NAME) final String firmName, @JsonProperty(STATUS) final Integer status, @JsonProperty(EXCHANGE) final String exchange) { diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java index 7599764..3427340 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FirmPbSerdeTest.java @@ -1,84 +1,76 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.Firm; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +@RunWith(Enclosed.class) public class FirmPbSerdeTest { - private static SerdeModule sut; - - private static Firm expectedObject; - private static byte[] expectedPbInput; - - private static Firm expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = Firm.builder() - .firmId("1") - .firmName("2") - .status(3) - .exchange("4") - .build(); - expectedPbInput = QluaStructures.Firm.newBuilder() - .setFirmid("1") - .setFirmName("2") - .setStatus(3) - .setExchange("4") - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = Firm.builder() - .firmId("1") - .build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.Firm.newBuilder() - .setFirmid("1") - .build() - .toByteArray(); + private static final String FIRM_ID = "1"; + private static final String FIRM_NAME = "2"; + private static final Integer STATUS = 3; + private static final String EXCHANGE = "4"; + + public static class FullArgsFirmPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return FirmPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Firm getTargetObject() { + + return Firm.builder() + .firmId(FIRM_ID) + .firmName(FIRM_NAME) + .status(STATUS) + .exchange(EXCHANGE) + .build(); + } + + @NotNull + @Override + public QluaStructures.Firm getTargetObjectAsPbMessage() { + + return QluaStructures.Firm.newBuilder() + .setFirmid(FIRM_ID) + .setFirmName(FIRM_NAME) + .setValueStatus(STATUS) + .setExchange(EXCHANGE) + .build(); + } } - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } + public static class OnlyRequiredArgsFirmPbSerdeTest extends AbstractPbDeserializationTest { - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(Firm.class, expectedPbInput)); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return FirmPbDeserializer.INSTANCE; + } - @Test - public void testSerialize_WithOnlyRequiredFields() { + @NotNull + @Override + public Firm getTargetObject() { - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } + return Firm.builder() + .firmId(FIRM_ID) + .build(); + } - @Test - public void testDeserialize_WithOnlyRequiredFields() { + @NotNull + @Override + public QluaStructures.Firm getTargetObjectAsPbMessage() { - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(Firm.class, expectedPbInputWithOnlyRequiredFields) - ); + return QluaStructures.Firm.newBuilder() + .setFirmid(FIRM_ID) + .setNullStatus(true) + .build(); + } } } From 5ac1216f0a583072949afcfbf995cf8c93921d03 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 19:15:29 +0300 Subject: [PATCH 433/549] Adjusted constraints on FuturesClientHolding; rewrote test for FuturesClientHolding protobuf deserialization. --- .../api/structures/FuturesClientHolding.java | 15 +- src/main/proto/qlua/rpc/qlua_structures.proto | 27 ++- .../FuturesClientHoldingPbSerdeTest.java | 222 ++++++++++-------- 3 files changed, 146 insertions(+), 118 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java index fa2a3fb..973dfa4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesClientHolding.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import org.jetbrains.annotations.NotNull; @@ -40,6 +37,7 @@ public class FuturesClientHolding { int type; String startBuy; String startSell; + String startNet; String todayBuy; String todaySell; String totalNet; @@ -61,12 +59,13 @@ public class FuturesClientHolding { @JsonCreator @Builder private FuturesClientHolding( - @JsonProperty(FIRM_ID) String firmId, - @JsonProperty(TRADING_ACCOUNT_ID) String trdAccId, - @JsonProperty(SECURITY_CODE) String secCode, + @JsonProperty(value = FIRM_ID, required = true) @NonNull String firmId, + @JsonProperty(value = TRADING_ACCOUNT_ID, required = true) @NonNull String trdAccId, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull String secCode, @JsonProperty(value = TYPE, required = true) int type, @JsonProperty(START_BUY) String startBuy, @JsonProperty(START_SELL) String startSell, + @JsonProperty(START_NET) String startNet, @JsonProperty(TODAY_BUY) String todayBuy, @JsonProperty(TODAY_SELL) String todaySell, @JsonProperty(TOTAL_NET) String totalNet, @@ -87,6 +86,7 @@ private FuturesClientHolding( this.type = type; this.startBuy = startBuy; this.startSell = startSell; + this.startNet = startNet; this.todayBuy = todayBuy; this.todaySell = todaySell; this.totalNet = totalNet; @@ -114,6 +114,7 @@ public String toString() { .add(TYPE, type) .add(START_BUY, startBuy) .add(START_SELL, startSell) + .add(START_NET, startNet) .add(TODAY_BUY, todayBuy) .add(TODAY_SELL, todaySell) .add(TOTAL_NET, totalNet) diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index c709343..85a2f75 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -291,19 +291,20 @@ message FuturesClientHolding { int32 type = 4; // NUMBER in QLUA string startbuy = 5; // NUMBER in QLUA string startsell = 6; // NUMBER in QLUA - string todaybuy = 7; // NUMBER in QLUA - string todaysell = 8; // NUMBER in QLUA - string totalnet = 9; // NUMBER in QLUA - uint32 openbuys = 10; // NUMBER in QLUA - uint32 opensells = 11; // NUMBER in QLUA - string cbplused = 12; // NUMBER in QLUA - string cbplplanned = 13; // NUMBER in QLUA - string varmargin = 14; // NUMBER in QLUA - string avrposnprice = 15; // NUMBER in QLUA - string positionvalue = 16; // NUMBER in QLUA - string real_varmargin = 17; // NUMBER in QLUA - string total_varmargin = 18; // NUMBER in QLUA - int32 session_status = 19; // NUMBER in QLUA + string startnet = 7; // NUMBER in QLUA + string todaybuy = 8; // NUMBER in QLUA + string todaysell = 9; // NUMBER in QLUA + string totalnet = 10; // NUMBER in QLUA + uint32 openbuys = 11; // NUMBER in QLUA + uint32 opensells = 12; // NUMBER in QLUA + string cbplused = 13; // NUMBER in QLUA + string cbplplanned = 14; // NUMBER in QLUA + string varmargin = 15; // NUMBER in QLUA + string avrposnprice = 16; // NUMBER in QLUA + string positionvalue = 17; // NUMBER in QLUA + string real_varmargin = 18; // NUMBER in QLUA + string total_varmargin = 19; // NUMBER in QLUA + int32 session_status = 20; // NUMBER in QLUA } // Лимиты по денежным средствам diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java index a9162fe..a9a1d84 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbSerdeTest.java @@ -1,109 +1,135 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesClientHolding; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +@RunWith(Enclosed.class) public class FuturesClientHoldingPbSerdeTest { - private static SerdeModule sut; - - private static FuturesClientHolding expectedObject; - private static byte[] expectedPbInput; - - private static FuturesClientHolding expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = FuturesClientHolding.builder() - .firmId("1") - .trdAccId("2") - .secCode("3") - .type(4) - .startBuy("5") - .startSell("6") - .todayBuy("7") - .todaySell("8") - .totalNet("9") - .openBuys(10) - .openSells(11) - .cbplUsed("12") - .cbplPlanned("13") - .varMargin("14") - .avrPosnPrice("15") - .positionValue("16") - .realVarMargin("17") - .totalVarMargin("18") - .sessionStatus(19) - .build(); - expectedPbInput = QluaStructures.FuturesClientHolding.newBuilder() - .setFirmid("1") - .setTrdaccid("2") - .setSecCode("3") - .setType(4) - .setStartbuy("5") - .setStartsell("6") - .setTodaybuy("7") - .setTodaysell("8") - .setTotalnet("9") - .setOpenbuys(10) - .setOpensells(11) - .setCbplused("12") - .setCbplplanned("13") - .setVarmargin("14") - .setAvrposnprice("15") - .setPositionvalue("16") - .setRealVarmargin("17") - .setTotalVarmargin("18") - .setSessionStatus(19) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = FuturesClientHolding.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesClientHolding.newBuilder().build().toByteArray(); + private static final String FIRM_ID = "1"; + private static final String TRADING_ACCOUNT_ID = "2"; + private static final String SECURITY_CODE = "3"; + private static final int TYPE = 4; + private static final String START_BUY = "5"; + private static final String START_SELL = "6"; + private static final String START_NET = "7"; + private static final String TODAY_BUY = "8"; + private static final String TODAY_SELL = "9"; + private static final String TOTAL_NET = "10"; + private static final int OPEN_BUYS = 11; + private static final int OPEN_SELLS = 12; + private static final String CBP_L_USED = "13"; + private static final String CBP_L_PLANNED = "14"; + private static final String VAR_MARGIN = "15"; + private static final String AVR_POSITION_PRICE = "16"; + private static final String POSITION_VALUE = "17"; + private static final String REAL_VAR_MARGIN = "18"; + private static final String TOTAL_VAR_MARGIN = "19"; + private static final int SESSION_STATUS = 20; + + public static class FullArgsFuturesClientHoldingPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return FuturesClientHoldingPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public FuturesClientHolding getTargetObject() { + + return FuturesClientHolding.builder() + .firmId(FIRM_ID) + .trdAccId(TRADING_ACCOUNT_ID) + .secCode(SECURITY_CODE) + .type(TYPE) + .startBuy(START_BUY) + .startSell(START_SELL) + .startNet(START_NET) + .todayBuy(TODAY_BUY) + .todaySell(TODAY_SELL) + .totalNet(TOTAL_NET) + .openBuys(OPEN_BUYS) + .openSells(OPEN_SELLS) + .cbplUsed(CBP_L_USED) + .cbplPlanned(CBP_L_PLANNED) + .varMargin(VAR_MARGIN) + .avrPosnPrice(AVR_POSITION_PRICE) + .positionValue(POSITION_VALUE) + .realVarMargin(REAL_VAR_MARGIN) + .totalVarMargin(TOTAL_VAR_MARGIN) + .sessionStatus(SESSION_STATUS) + .build(); + } + + @NotNull + @Override + public QluaStructures.FuturesClientHolding getTargetObjectAsPbMessage() { + + return QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRADING_ACCOUNT_ID) + .setSecCode(SECURITY_CODE) + .setType(TYPE) + .setStartbuy(START_BUY) + .setStartsell(START_SELL) + .setStartnet(START_NET) + .setTodaybuy(TODAY_BUY) + .setTodaysell(TODAY_SELL) + .setTotalnet(TOTAL_NET) + .setOpenbuys(OPEN_BUYS) + .setOpensells(OPEN_SELLS) + .setCbplused(CBP_L_USED) + .setCbplplanned(CBP_L_PLANNED) + .setVarmargin(VAR_MARGIN) + .setAvrposnprice(AVR_POSITION_PRICE) + .setPositionvalue(POSITION_VALUE) + .setRealVarmargin(REAL_VAR_MARGIN) + .setTotalVarmargin(TOTAL_VAR_MARGIN) + .setSessionStatus(SESSION_STATUS) + .build(); + } } - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(FuturesClientHolding.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } - - @Test - public void testDeserialize_WithOnlyRequiredFields() { - - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(FuturesClientHolding.class, expectedPbInputWithOnlyRequiredFields) - ); + public static class OnlyRequiredARgsFuturesClientHoldingPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return FuturesClientHoldingPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public FuturesClientHolding getTargetObject() { + + return FuturesClientHolding.builder() + .firmId(FIRM_ID) + .trdAccId(TRADING_ACCOUNT_ID) + .secCode(SECURITY_CODE) + .type(TYPE) + .openBuys(OPEN_BUYS) + .openSells(OPEN_SELLS) + .sessionStatus(SESSION_STATUS) + .build(); + } + + @NotNull + @Override + public QluaStructures.FuturesClientHolding getTargetObjectAsPbMessage() { + + return QluaStructures.FuturesClientHolding.newBuilder() + .setFirmid(FIRM_ID) + .setTrdaccid(TRADING_ACCOUNT_ID) + .setSecCode(SECURITY_CODE) + .setType(TYPE) + .setOpenbuys(OPEN_BUYS) + .setOpensells(OPEN_SELLS) + .setSessionStatus(SESSION_STATUS) + .build(); + } } } From 20aff7009e9a65376927c4f055b0873a886ac851 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:08:18 +0300 Subject: [PATCH 434/549] Adjusted constraints on FuturesLimitDelete; rewrote test for FuturesClientHolding protobuf deserialization. --- .../api/structures/FuturesLimitDelete.java | 7 +- .../FuturesLimitDeletePbSerdeTest.java | 82 +++++-------------- 2 files changed, 24 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java index 58be70a..9246c5c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/FuturesLimitDelete.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; @Value @@ -25,7 +22,7 @@ public class FuturesLimitDelete { @JsonCreator @Builder private FuturesLimitDelete( - @JsonProperty(value = FIRM_ID, required = true) final String firmId, + @JsonProperty(value = FIRM_ID, required = true) @NonNull final String firmId, @JsonProperty(value = LIMIT_TYPE, required = true) final int limitType) { this.firmId = firmId; this.limitType = limitType; diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java index 46e48f1..302a121 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesLimitDeletePbSerdeTest.java @@ -1,75 +1,37 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.FuturesLimitDelete; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; +public class FuturesLimitDeletePbSerdeTest extends AbstractPbDeserializationTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final String FIRM_ID = "1"; + private static final int LIMIT_TYPE = 2; -public class FuturesLimitDeletePbSerdeTest { - - private static SerdeModule sut; - - private static FuturesLimitDelete expectedObject; - private static byte[] expectedPbInput; - - private static FuturesLimitDelete expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = FuturesLimitDelete.builder() - .firmId("1") - .limitType(2) - .build(); - expectedPbInput = QluaStructures.FuturesLimitDelete.newBuilder() - .setFirmid("1") - .setLimitType(2) - .build() - .toByteArray(); - - expectedObjectWithOnlyRequiredFields = FuturesLimitDelete.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.FuturesLimitDelete.newBuilder().build().toByteArray(); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return FuturesLimitDeletePbDeserializer.INSTANCE; } - @Test - public void testSerialize() { + @NotNull + @Override + public FuturesLimitDelete getTargetObject() { - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } - - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(FuturesLimitDelete.class, expectedPbInput)); - } - - @Test - public void testSerialize_WithOnlyRequiredFields() { - - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); + return FuturesLimitDelete.builder() + .firmId(FIRM_ID) + .limitType(LIMIT_TYPE) + .build(); } - @Test - public void testDeserialize_WithOnlyRequiredFields() { + @NotNull + @Override + public QluaStructures.FuturesLimitDelete getTargetObjectAsPbMessage() { - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(FuturesLimitDelete.class, expectedPbInputWithOnlyRequiredFields) - ); + return QluaStructures.FuturesLimitDelete.newBuilder() + .setFirmid(FIRM_ID) + .setLimitType(LIMIT_TYPE) + .build(); } } From 821405f88321e40adb1afaa6048939406d3b1b5f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:08:34 +0300 Subject: [PATCH 435/549] Adjusted constraints on NegTrade; rewrote test for NegTrade protobuf deserialization. --- .../quik/lua/rpc/api/structures/NegTrade.java | 11 +- .../serde/protobuf/NegTradePbSerdeTest.java | 418 +++++++++++------- 2 files changed, 251 insertions(+), 178 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java index 977fd5e..c810499 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/NegTrade.java @@ -3,10 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.Value; +import lombok.*; import lombok.experimental.NonFinal; import org.jetbrains.annotations.NotNull; @@ -155,7 +152,7 @@ private NegTrade( @JsonProperty(ACCOUNT) final String account, @JsonProperty(COUNTERPARTY_FIRM_ID) final String cpFirmId, @JsonProperty(COUNTERPARTY_ACCOUNT) final String cpAccount, - @JsonProperty(value = PRICE, required = true) final String price, + @JsonProperty(value = PRICE, required = true) @NonNull final String price, @JsonProperty(value = QUANTITY, required = true) final int qty, @JsonProperty(VALUE) final String value, @JsonProperty(SETTLE_CODE) final String settleCode, @@ -197,8 +194,8 @@ private NegTrade( @JsonProperty(PRINCIPAL_PAYMENT_DATE) final String principalPaymentDate, @JsonProperty(NEXT_DAY_SETTLE) final String nextDaySettle, @JsonProperty(SETTLE_CURRENCY) final String settleCurrency, - @JsonProperty(SECURITY_CODE) final String secCode, - @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode, + @JsonProperty(value = CLASS_CODE, required = true) @NonNull final String classCode, @JsonProperty(COMP_VAL) final String compVal, @JsonProperty(PARENT_TRADE_NUMBER) final String parentTradeNo, @JsonProperty(BANK_ID) final String bankId, diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java index 77f5252..3484d55 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java @@ -1,193 +1,269 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.NegTrade; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; import qlua.structs.QluaStructures; -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +@RunWith(Enclosed.class) public class NegTradePbSerdeTest { - private static SerdeModule sut; + private static final long TRADE_NUMBER = 1L; + private static final String TRADE_DATE = "2"; + private static final String SETTLE_DATE = "3"; + private static final int FLAGS = 4; + private static final String BROKER_REF = "5"; + private static final String FIRM_ID = "6"; + private static final String ACCOUNT = "7"; + private static final String COUNTERPARTY_FIRM_ID = "8"; + private static final String COUNTERPARTY_ACCOUNT = "9"; + private static final String PRICE = "10"; + private static final int QUANTITY = 11; + private static final String VALUE = "12"; + private static final String SETTLE_CODE = "13"; + private static final String REPORT_NUMBER = "14"; + private static final String COUNTERPARTY_REPORT_NUMBER = "15"; + private static final String ACCRUED_INTEREST = "16"; + private static final String REPO_TRADE_NUMBER = "17"; + private static final String PRICE_1 = "18"; + private static final String REPO_RATE = "19"; + private static final String PRICE_2 = "20"; + private static final String CLIENT_CODE = "21"; + private static final String TS_COMMISSION = "22"; + private static final String BALANCE = "23"; + private static final String SETTLE_TIME = "24"; + private static final String AMOUNT = "25"; + private static final String REPO_VALUE = "26"; + private static final String REPO_TERM = "27"; + private static final String REPO_2_VALUE = "28"; + private static final String RETURN_VALUE = "29"; + private static final String DISCOUNT = "30"; + private static final String LOWER_DISCOUNT = "31"; + private static final String UPPER_DISCOUNT = "32"; + private static final String BLOCK_SECURITIES = "33"; + private static final String URGENCY_FLAG = "34"; + private static final int TYPE = 35; + private static final int OPERATION_TYPE = 36; + private static final String EXPECTED_DISCOUNT = "37"; + private static final String EXPECTED_QUANTITY = "38"; + private static final String EXPECTED_REPO_VALUE = "39"; + private static final String EXPECTED_REPO_2_VALUE = "40"; + private static final String EXPECTED_RETURN_VALUE = "41"; + private static final String ORDER_NUMBER = "42"; + private static final String REPORT_TRADE_DATE = "43"; + private static final int SETTLED = 44; + private static final int CLEARING_TYPE = 45; + private static final String REPORT_COMMISSION = "46"; + private static final String COUPON_PAYMENT = "47"; + private static final String PRINCIPAL_PAYMENT = "48"; + private static final String PRINCIPAL_PAYMENT_DATE = "49"; + private static final String NEXT_DAY_SETTLE = "50"; + private static final String SETTLE_CURRENCY = "51"; + private static final String SECURITY_CODE = "52"; + private static final String CLASS_CODE = "53"; + private static final String COMP_VAL = "54"; + private static final String PARENT_TRADE_NUMBER = "55"; + private static final String BANK_ID = "56"; + private static final String BANK_ACCOUNT_ID = "57"; + private static final String PRECISE_BALANCE = "58"; + private static final String CONFIRM_TIME = "59"; + private static final int EX_FLAGS = 60; + private static final String CONFIRM_REPORT = "61"; + private static final String EXT_REF = "62"; - private static NegTrade expectedObject; - private static byte[] expectedPbInput; + public static class FullArgsNegTradePbSerdeTest extends AbstractPbDeserializationTest { - private static NegTrade expectedObjectWithOnlyRequiredFields; - private static byte[] expectedPbInputWithOnlyRequiredFields; + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return NegTradePbDeserializer.INSTANCE; + } - @BeforeClass - public static void globalSetup() { + @NotNull + @Override + public NegTrade getTargetObject() { - sut = ProtobufSerdeModule.INSTANCE; + return NegTrade.builder() + .tradeNum(TRADE_NUMBER) + .tradeDate(TRADE_DATE) + .settleDate(SETTLE_DATE) + .flags(FLAGS) + .brokerRef(BROKER_REF) + .firmId(FIRM_ID) + .account(ACCOUNT) + .cpFirmId(COUNTERPARTY_FIRM_ID) + .cpAccount(COUNTERPARTY_ACCOUNT) + .price(PRICE) + .qty(QUANTITY) + .value(VALUE) + .settleCode(SETTLE_CODE) + .reportNum(REPORT_NUMBER) + .cpReportNum(COUNTERPARTY_REPORT_NUMBER) + .accruedInt(ACCRUED_INTEREST) + .repoTradeNo(REPO_TRADE_NUMBER) + .price1(PRICE_1) + .repoRate(REPO_RATE) + .price2(PRICE_2) + .clientCode(CLIENT_CODE) + .tsComission(TS_COMMISSION) + .balance(BALANCE) + .settleTime(SETTLE_TIME) + .amount(AMOUNT) + .repoValue(REPO_VALUE) + .repoTerm(REPO_TERM) + .repo2Value(REPO_2_VALUE) + .returnValue(RETURN_VALUE) + .discount(DISCOUNT) + .lowerDiscount(LOWER_DISCOUNT) + .upperDiscount(UPPER_DISCOUNT) + .blockSecurities(BLOCK_SECURITIES) + .urgencyFlag(URGENCY_FLAG) + .type(TYPE) + .operationType(OPERATION_TYPE) + .expectedDiscount(EXPECTED_DISCOUNT) + .expectedQuantity(EXPECTED_QUANTITY) + .expectedRepoValue(EXPECTED_REPO_VALUE) + .expectedRepo2Value(EXPECTED_REPO_2_VALUE) + .expectedReturnValue(EXPECTED_RETURN_VALUE) + .orderNum(ORDER_NUMBER) + .reportTradeDate(REPORT_TRADE_DATE) + .settled(SETTLED) + .clearingType(CLEARING_TYPE) + .reportComission(REPORT_COMMISSION) + .couponPayment(COUPON_PAYMENT) + .principalPayment(PRINCIPAL_PAYMENT) + .principalPaymentDate(PRINCIPAL_PAYMENT_DATE) + .nextDaySettle(NEXT_DAY_SETTLE) + .settleCurrency(SETTLE_CURRENCY) + .secCode(SECURITY_CODE) + .classCode(CLASS_CODE) + .compVal(COMP_VAL) + .parentTradeNo(PARENT_TRADE_NUMBER) + .bankId(BANK_ID) + .bankAccId(BANK_ACCOUNT_ID) + .preciseBalance(PRECISE_BALANCE) + .confirmTime(CONFIRM_TIME) + .exFlags(EX_FLAGS) + .confirmReport(CONFIRM_REPORT) + .extRef(EXT_REF) + .build(); + } - expectedObject = NegTrade.builder() - .tradeNum(1L) - .tradeDate("2") - .settleDate("3") - .flags(4) - .brokerRef("5") - .firmId("6") - .account("7") - .cpFirmId("8") - .cpAccount("9") - .price("10") - .qty(11) - .value("12") - .settleCode("13") - .reportNum("14") - .cpReportNum("15") - .accruedInt("16") - .repoTradeNo("17") - .price1("18") - .repoRate("19") - .price2("20") - .clientCode("21") - .tsComission("22") - .balance("23") - .settleTime("24") - .amount("25") - .repoValue("26") - .repoTerm("27") - .repo2Value("28") - .returnValue("29") - .discount("30") - .lowerDiscount("31") - .upperDiscount("32") - .blockSecurities("33") - .urgencyFlag("34") - .type(35) - .operationType(36) - .expectedDiscount("37") - .expectedQuantity("38") - .expectedRepoValue("39") - .expectedRepo2Value("40") - .expectedReturnValue("41") - .orderNum("42") - .reportTradeDate("43") - .settled(44) - .clearingType(45) - .reportComission("46") - .couponPayment("47") - .principalPayment("48") - .principalPaymentDate("49") - .nextDaySettle("50") - .settleCurrency("51") - .secCode("52") - .classCode("53") - .compVal("54") - .parentTradeNo("55") - .bankId("56") - .bankAccId("57") - .preciseBalance("58") - .confirmTime("59") - .exFlags(60) - .confirmReport("61") - .build(); - expectedPbInput = QluaStructures.NegTrade.newBuilder() - .setTradeNum(1L) - .setTradeDate("2") - .setSettleDate("3") - .setFlags(4) - .setBrokerref("5") - .setFirmid("6") - .setAccount("7") - .setCpfirmid("8") - .setCpaccount("9") - .setPrice("10") - .setQty(11) - .setValue("12") - .setSettlecode("13") - .setReportNum("14") - .setCpreportNum("15") - .setAccruedint("16") - .setRepotradeno("17") - .setPrice1("18") - .setReporate("19") - .setPrice2("20") - .setClientCode("21") - .setTsComission("22") - .setBalance("23") - .setSettleTime("24") - .setAmount("25") - .setRepovalue("26") - .setRepoterm("27") - .setRepo2Value("28") - .setReturnValue("29") - .setDiscount("30") - .setLowerDiscount("31") - .setUpperDiscount("32") - .setBlockSecurities("33") - .setUrgencyFlag("34") - .setType(35) - .setOperationType(36) - .setExpectedDiscount("37") - .setExpectedQuantity("38") - .setExpectedRepovalue("39") - .setExpectedRepo2Value("40") - .setExpectedReturnValue("41") - .setOrderNum("42") - .setReportTradeDate("43") - .setSettled(44) - .setClearingType(45) - .setReportComission("46") - .setCouponPayment("47") - .setPrincipalPayment("48") - .setPrincipalPaymentDate("49") - .setNextdaysettle("50") - .setSettleCurrency("51") - .setSecCode("52") - .setClassCode("53") - .setCompval("54") - .setParenttradeno("55") - .setBankid("56") - .setBankaccid("57") - .setPrecisebalance("58") - .setConfirmtime("59") - .setExFlags(60) - .setConfirmreport("61") - .build() - .toByteArray(); + @NotNull + @Override + public QluaStructures.NegTrade getTargetObjectAsPbMessage() { - expectedObjectWithOnlyRequiredFields = NegTrade.builder().build(); - expectedPbInputWithOnlyRequiredFields = QluaStructures.NegTrade.newBuilder().build().toByteArray(); + return QluaStructures.NegTrade.newBuilder() + .setTradeNum(TRADE_NUMBER) + .setTradeDate(TRADE_DATE) + .setSettleDate(SETTLE_DATE) + .setFlags(FLAGS) + .setBrokerref(BROKER_REF) + .setFirmid(FIRM_ID) + .setAccount(ACCOUNT) + .setCpfirmid(COUNTERPARTY_FIRM_ID) + .setCpaccount(COUNTERPARTY_ACCOUNT) + .setPrice(PRICE) + .setQty(QUANTITY) + .setValue(VALUE) + .setSettlecode(SETTLE_CODE) + .setReportNum(REPORT_NUMBER) + .setCpreportNum(COUNTERPARTY_REPORT_NUMBER) + .setAccruedint(ACCRUED_INTEREST) + .setRepotradeno(REPO_TRADE_NUMBER) + .setPrice1(PRICE_1) + .setReporate(REPO_RATE) + .setPrice2(PRICE_1) + .setClientCode(CLIENT_CODE) + .setTsComission(TS_COMMISSION) + .setBalance(BALANCE) + .setSettleTime(SETTLE_TIME) + .setAmount(AMOUNT) + .setRepovalue(REPO_VALUE) + .setRepoterm(REPO_TERM) + .setRepo2Value(REPO_2_VALUE) + .setReturnValue(RETURN_VALUE) + .setDiscount(DISCOUNT) + .setLowerDiscount(LOWER_DISCOUNT) + .setUpperDiscount(UPPER_DISCOUNT) + .setBlockSecurities(BLOCK_SECURITIES) + .setUrgencyFlag(URGENCY_FLAG) + .setType(TYPE) + .setOperationType(OPERATION_TYPE) + .setExpectedDiscount(EXPECTED_DISCOUNT) + .setExpectedQuantity(EXPECTED_QUANTITY) + .setExpectedRepovalue(EXPECTED_REPO_VALUE) + .setExpectedRepo2Value(EXPECTED_REPO_2_VALUE) + .setExpectedReturnValue(EXPECTED_RETURN_VALUE) + .setOrderNum(ORDER_NUMBER) + .setReportTradeDate(REPORT_TRADE_DATE) + .setSettled(SETTLED) + .setClearingType(CLEARING_TYPE) + .setReportComission(REPORT_COMMISSION) + .setCouponPayment(COUPON_PAYMENT) + .setPrincipalPayment(PRINCIPAL_PAYMENT) + .setPrincipalPaymentDate(PRINCIPAL_PAYMENT_DATE) + .setNextdaysettle(NEXT_DAY_SETTLE) + .setSettleCurrency(SETTLE_CURRENCY) + .setSecCode(SECURITY_CODE) + .setClassCode(CLASS_CODE) + .setCompval(COMP_VAL) + .setParenttradeno(PARENT_TRADE_NUMBER) + .setBankid(BANK_ID) + .setBankaccid(BANK_ACCOUNT_ID) + .setPrecisebalance(PRECISE_BALANCE) + .setConfirmtime(CONFIRM_TIME) + .setExFlags(EX_FLAGS) + .setConfirmreport(CONFIRM_REPORT) + .setExtref(EXT_REF) + .build(); + } } - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); - } + public static class OnlyRequiredArgsNegTradePbSerdeTest extends AbstractPbDeserializationTest { - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(NegTrade.class, expectedPbInput)); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return NegTradePbDeserializer.INSTANCE; + } - @Test - public void testSerialize_WithOnlyRequiredFields() { + @NotNull + @Override + public NegTrade getTargetObject() { - assertTrue( - Arrays.equals( - expectedPbInputWithOnlyRequiredFields, - sut.serialize(expectedObjectWithOnlyRequiredFields) - ) - ); - } + return NegTrade.builder() + .tradeNum(TRADE_NUMBER) + .flags(FLAGS) + .price(PRICE) + .qty(QUANTITY) + .type(TYPE) + .operationType(OPERATION_TYPE) + .settled(SETTLED) + .clearingType(CLEARING_TYPE) + .secCode(SECURITY_CODE) + .classCode(CLASS_CODE) + .exFlags(EX_FLAGS) + .build(); + } - @Test - public void testDeserialize_WithOnlyRequiredFields() { + @NotNull + @Override + public QluaStructures.NegTrade getTargetObjectAsPbMessage() { - assertEquals( - expectedObjectWithOnlyRequiredFields, - sut.deserialize(NegTrade.class, expectedPbInputWithOnlyRequiredFields) - ); + return QluaStructures.NegTrade.newBuilder() + .setTradeNum(TRADE_NUMBER) + .setFlags(FLAGS) + .setPrice(PRICE) + .setQty(QUANTITY) + .setType(TYPE) + .setOperationType(OPERATION_TYPE) + .setSettled(SETTLED) + .setClearingType(CLEARING_TYPE) + .setSecCode(SECURITY_CODE) + .setClassCode(CLASS_CODE) + .setExFlags(EX_FLAGS) + .build(); + } } } From b1cac400e94a7a0325705d116cfb8ad7e4d8a706 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:08:53 +0300 Subject: [PATCH 436/549] Rewrote test for QuoteEntry protobuf deserialization. --- .../serde/protobuf/QuoteEntryPbSerdeTest.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java index 2c540f5..308c370 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/QuoteEntryPbSerdeTest.java @@ -1,33 +1,36 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -public class QuoteEntryPbSerdeTest extends AbstractPbSerdeTest { +public class QuoteEntryPbSerdeTest extends AbstractPbDeserializationTest { private static final String PRICE = "1"; private static final String QUANTITY = "2"; @Override - public @NotNull Class getTargetObjectClass() { - return GetQuoteLevel2.QuoteEntry.class; + public @NotNull Deserializer getDeserializerUnderTest() { + return QuoteEntryPbDeserializer.INSTANCE; } @NotNull @Override - public qlua.rpc.GetQuoteLevel2.QuoteEntry getTargetObjectAsPbMessage() { - return qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder() - .setPrice(PRICE) - .setQuantity(QUANTITY) + public GetQuoteLevel2.QuoteEntry getTargetObject() { + + return GetQuoteLevel2.QuoteEntry.builder() + .price(PRICE) + .quantity(QUANTITY) .build(); } @NotNull @Override - public GetQuoteLevel2.QuoteEntry getTargetObject() { - return GetQuoteLevel2.QuoteEntry.builder() - .price(PRICE) - .quantity(QUANTITY) + public qlua.rpc.GetQuoteLevel2.QuoteEntry getTargetObjectAsPbMessage() { + + return qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder() + .setPrice(PRICE) + .setQuantity(QUANTITY) .build(); } } From 5cd7147d877a22713b92c6d2001ac0b73c07ddc2 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:09:07 +0300 Subject: [PATCH 437/549] Rewrote test for StopEventInfo protobuf deserialization. --- .../protobuf/StopEventInfoPbSerdeTest.java | 50 +++++++------------ 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java index cffbc3d..94d26ab 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/StopEventInfoPbSerdeTest.java @@ -1,45 +1,31 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.structures.StopEventInfo; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; import qlua.structs.QluaStructures; -import java.util.Arrays; +public class StopEventInfoPbSerdeTest extends AbstractPbDeserializationTest { -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + private static final int FLAG = 123; -public class StopEventInfoPbSerdeTest { - - private static SerdeModule sut; - - private static StopEventInfo expectedObject; - private static byte[] expectedPbInput; - - @BeforeClass - public static void globalSetup() { - - sut = ProtobufSerdeModule.INSTANCE; - - expectedObject = new StopEventInfo(1); - expectedPbInput = QluaStructures.StopEventInfo.newBuilder() - .setSignal(1) - .build() - .toByteArray(); + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return StopEventInfoPbDeserializer.INSTANCE; } - @Test - public void testSerialize() { - - assertTrue( - Arrays.equals(expectedPbInput, sut.serialize(expectedObject)) - ); + @NotNull + @Override + public StopEventInfo getTargetObject() { + return StopEventInfo.getInstance(FLAG); } - @Test - public void testDeserialize() { - assertEquals(expectedObject, sut.deserialize(StopEventInfo.class, expectedPbInput)); + @NotNull + @Override + public QluaStructures.StopEventInfo getTargetObjectAsPbMessage() { + + return QluaStructures.StopEventInfo.newBuilder() + .setFlag(FLAG) + .build(); } } From 5d0d870bdbe5d663330bd02b5c634aee36378255 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:38:18 +0300 Subject: [PATCH 438/549] Fixed test for AllTrade protobuf deserialization. --- .../quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java index c25dbc3..236eab2 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AllTradePbSerdeTest.java @@ -138,6 +138,8 @@ public AllTrade getTargetObject() { .tradeNum(TRADE_NUM) .price(PRICE) .qty(QTY) + .secCode(SEC_CODE) + .classCode(CLASS_CODE) .datetime(DATETIME) .period(PERIOD) .build(); @@ -149,9 +151,11 @@ public QluaStructures.AllTrade getTargetObjectAsPbMessage() { return QluaStructures.AllTrade.newBuilder() .setTradeNum(TRADE_NUM) + .setNullFlags(true) .setPrice(PRICE) .setQty(QTY) - .setValue(VALUE) + .setSecCode(SEC_CODE) + .setClassCode(CLASS_CODE) .setDatetime(PB_DATETIME) .setPeriod(PERIOD) .build(); From 1f45e939b94b993b8d93f283967bf7e29ee64c4a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:39:08 +0300 Subject: [PATCH 439/549] Fixed FuturesClientHolding protobuf deserialization. --- .../serde/protobuf/FuturesClientHoldingPbDeserializer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbDeserializer.java index 0e22b32..f6e4c73 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/FuturesClientHoldingPbDeserializer.java @@ -23,12 +23,13 @@ public FuturesClientHolding deserialize(final byte[] data) { public FuturesClientHolding convert(@NotNull QluaStructures.FuturesClientHolding futuresClientHolding) { return FuturesClientHolding.builder() - .firmId( convertFromPbString(futuresClientHolding.getFirmid()) ) - .trdAccId( convertFromPbString(futuresClientHolding.getTrdaccid()) ) - .secCode( convertFromPbString(futuresClientHolding.getSecCode()) ) + .firmId( futuresClientHolding.getFirmid() ) + .trdAccId( futuresClientHolding.getTrdaccid() ) + .secCode( futuresClientHolding.getSecCode() ) .type( futuresClientHolding.getType() ) .startBuy( convertFromPbString(futuresClientHolding.getStartbuy()) ) .startSell( convertFromPbString(futuresClientHolding.getStartsell()) ) + .startNet( convertFromPbString(futuresClientHolding.getStartnet()) ) .todayBuy( convertFromPbString(futuresClientHolding.getTodaybuy()) ) .todaySell( convertFromPbString(futuresClientHolding.getTodaysell()) ) .totalNet( convertFromPbString(futuresClientHolding.getTotalnet()) ) From 242eaf4cf09749bf492e937fe650cc01d8571921 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:39:45 +0300 Subject: [PATCH 440/549] Rewrote test for GetCell.Result protobuf deserialization. --- .../protobuf/GetCellResultPbDeserializer.java | 6 +- .../protobuf/GetCellResultPbSerdeTest.java | 77 +++++++++++-------- 2 files changed, 48 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java index cb9748d..2b0924c 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbDeserializer.java @@ -6,6 +6,8 @@ import lombok.SneakyThrows; import org.jetbrains.annotations.NotNull; +import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertFromPbString; + enum GetCellResultPbDeserializer implements Deserializer, FromPbConverter { INSTANCE; @@ -20,8 +22,8 @@ public GetCell.Result deserialize(final byte[] data) { @Override public GetCell.Result convert(@NotNull final qlua.rpc.GetCell.Result result) { return GetCell.Result.builder() - .image( result.getImage() ) - .value( result.getValue() ) + .image( convertFromPbString(result.getImage()) ) + .value( convertFromPbString(result.getValue()) ) .build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java index b5e5625..f9f3d8f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellResultPbSerdeTest.java @@ -1,51 +1,62 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.GetCell; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +@RunWith(Enclosed.class) public class GetCellResultPbSerdeTest { - private static SerdeModule sut; + public static class NormalGetCellResultPbSerdeTest extends AbstractPbDeserializationTest { - private static GetCell.Result expectedObject; - private static byte[] expectedPbInput; + private static final String IMAGE = "1"; + private static final String VALUE = "2"; - @BeforeClass - public static void globalSetup() { + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetCellResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public GetCell.Result getTargetObject() { - expectedObject = GetCell.Result.builder() - .image("1") - .value("2") - .build(); - expectedPbInput = qlua.rpc.GetCell.Result.newBuilder() - .setImage("1") - .setValue("2") - .build() - .toByteArray(); - } + return GetCell.Result.builder() + .image(IMAGE) + .value(VALUE) + .build(); + } - @Test - public void testSerialize() { + @NotNull + @Override + public qlua.rpc.GetCell.Result getTargetObjectAsPbMessage() { - final byte[] actual = sut.serialize(expectedObject); - - assertTrue( Arrays.equals(expectedPbInput, actual) ); + return qlua.rpc.GetCell.Result.newBuilder() + .setImage(IMAGE) + .setValue(VALUE) + .build(); + } } - @Test - public void testDeserialize() { + public static class ErrorGetCellResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetCellResultPbDeserializer.INSTANCE; + } - final GetCell.Result actualObject = sut.deserialize(GetCell.Result.class, expectedPbInput); + @NotNull + @Override + public GetCell.Result getTargetObject() { + return GetCell.Result.builder().build(); + } - assertEquals(actualObject, expectedObject); + @NotNull + @Override + public qlua.rpc.GetCell.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetCell.Result.newBuilder().build(); + } } } From 66652fae32394b055d18abcbe20e852e173fb47e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:40:14 +0300 Subject: [PATCH 441/549] Rewrote test for Clear.Result protobuf deserialization. --- .../protobuf/ClearResultPbSerdeTest.java | 76 ++++++++++++------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java index af48231..47d307b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java @@ -1,47 +1,67 @@ package com.enfernuz.quik.lua.rpc.serde.protobuf; import com.enfernuz.quik.lua.rpc.api.messages.Clear; -import com.enfernuz.quik.lua.rpc.serde.SerdeModule; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +@RunWith(Enclosed.class) public class ClearResultPbSerdeTest { - private static SerdeModule sut; + public static class TrueParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { - private static Clear.Result expectedObject; - private static byte[] expectedPbInput; + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } - @BeforeClass - public static void globalSetup() { + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ClearResultPbDeserializer.INSTANCE; + } - sut = ProtobufSerdeModule.INSTANCE; + @NotNull + @Override + public Clear.Result getTargetObject() { + return Clear.Result.getInstance(TRUE); + } - expectedObject = Clear.Result.getInstance(true); - expectedPbInput = qlua.rpc.Clear.Result.newBuilder() - .setResult(true) - .build() - .toByteArray(); + @NotNull + @Override + public qlua.rpc.Clear.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.Clear.Result.newBuilder() + .setResult(TRUE) + .build(); + } } - @Test - public void testSerialize() { + public static class FalseParamRequestResultPbDeserializationTest + extends AbstractPbDeserializationTest { - final byte[] actual = sut.serialize(expectedObject); + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } - assertTrue( Arrays.equals(expectedPbInput, actual) ); - } + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return ClearResultPbDeserializer.INSTANCE; + } - @Test - public void testDeserialize() { + @NotNull + @Override + public Clear.Result getTargetObject() { + return Clear.Result.getInstance(FALSE); + } - final Clear.Result actualObject = sut.deserialize(Clear.Result.class, expectedPbInput); + @NotNull + @Override + public qlua.rpc.Clear.Result getTargetObjectAsPbMessage() { - assertEquals(actualObject, expectedObject); + return qlua.rpc.Clear.Result.newBuilder() + .setResult(FALSE) + .build(); + } } } From 7ac5476e06523d2391041f9b60329b41ba310f2b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:40:37 +0300 Subject: [PATCH 442/549] Fixed NegTrade protobuf deserialization. --- .../quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java | 1 + .../quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java index dfd2418..f7f3e86 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbDeserializer.java @@ -84,6 +84,7 @@ public NegTrade convert(@NotNull QluaStructures.NegTrade negTrade) { .confirmTime( convertFromPbString(negTrade.getConfirmtime()) ) .exFlags( negTrade.getExFlags() ) .confirmReport( convertFromPbString(negTrade.getConfirmreport()) ) + .extRef( convertFromPbString(negTrade.getExtref()) ) .build(); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java index 3484d55..46d1534 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/NegTradePbSerdeTest.java @@ -174,7 +174,7 @@ public QluaStructures.NegTrade getTargetObjectAsPbMessage() { .setRepotradeno(REPO_TRADE_NUMBER) .setPrice1(PRICE_1) .setReporate(REPO_RATE) - .setPrice2(PRICE_1) + .setPrice2(PRICE_2) .setClientCode(CLIENT_CODE) .setTsComission(TS_COMMISSION) .setBalance(BALANCE) From 17291eedcfd11bf515ff383285fa83c389c5ca5a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:41:05 +0300 Subject: [PATCH 443/549] Fixed test for GetItem.Result protobuf deserialization. --- .../quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java index d472dd6..8961b90 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemResultPbSerdeTest.java @@ -57,7 +57,9 @@ public GetItem.Result getTargetObject() { @NotNull @Override public qlua.rpc.GetItem.Result getTargetObjectAsPbMessage() { - return qlua.rpc.GetItem.Result.newBuilder().build(); + return qlua.rpc.GetItem.Result.newBuilder() + .setNullTableRow(true) + .build(); } } } From 672a206aa9e4175e93566b5998339176e542e848 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:41:30 +0300 Subject: [PATCH 444/549] Adjusted constraints on AllTrade. --- .../com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java index 2838bc7..64c2022 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/structures/AllTrade.java @@ -57,7 +57,7 @@ private AllTrade( @JsonProperty(value = TRADE_NUM, required = true) final long tradeNum, @JsonProperty(FLAGS) final Integer flags, @JsonProperty(value = PRICE, required = true) @NonNull final String price, - @JsonProperty(QUANTITY) final int qty, + @JsonProperty(value = QUANTITY, required = true) final int qty, @JsonProperty(VALUE) final String value, @JsonProperty(ACCRUED_INTEREST) final String accruedInt, @JsonProperty(YIELD) final String yield, @@ -66,8 +66,8 @@ private AllTrade( @JsonProperty(REPO_VALUE) final String repoValue, @JsonProperty(REPO_2_VALUE) final String repo2Value, @JsonProperty(REPO_TERM) final String repoTerm, - @JsonProperty(SECURITY_CODE) final String secCode, - @JsonProperty(CLASS_CODE) final String classCode, + @JsonProperty(value = SECURITY_CODE, required = true) @NonNull final String secCode, + @JsonProperty(value = CLASS_CODE, required = true) @NonNull final String classCode, @JsonProperty(value = DATETIME, required = true) @NonNull final DateTimeEntry datetime, @JsonProperty(value = PERIOD, required = true) final int period, @JsonProperty(OPEN_INTEREST) final String openInterest, From b77624ccbd545ff8348aff9f92102f431357dc3a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:42:19 +0300 Subject: [PATCH 445/549] Fixed test for GetTableSize.Result JSON deserialization. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java | 3 ++- src/test/resources/json/GetTableSize/error.result.json | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java index cc623c0..4b10a29 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -12,6 +12,7 @@ import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class GetTableSize implements RemoteProcedure { @@ -51,7 +52,7 @@ public static class Result implements RpcResult { TableSize tableSize; @JsonCreator - public static Result getInstance(@JsonProperty(value = TABLE_SIZE, required = true) final TableSize tableSize) { + public static Result getInstance(@JsonProperty(value = TABLE_SIZE, required = true) @Nullable final TableSize tableSize) { return isError(tableSize) ? InstanceHolder.ERROR : new Result(tableSize); } diff --git a/src/test/resources/json/GetTableSize/error.result.json b/src/test/resources/json/GetTableSize/error.result.json index 9e26dfe..2fdb3c9 100644 --- a/src/test/resources/json/GetTableSize/error.result.json +++ b/src/test/resources/json/GetTableSize/error.result.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "table_size": null +} \ No newline at end of file From 76173a7bf03b6b11bf5d9fbd7dcf8a794392f718 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:42:33 +0300 Subject: [PATCH 446/549] Fixed test for GetWindowCaption.Result JSON deserialization. --- .../enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java | 3 ++- src/test/resources/json/GetWindowCaption/error.result.json | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java index 1961d02..0fafa55 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java @@ -11,6 +11,7 @@ import lombok.Value; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class GetWindowCaption implements RemoteProcedure { @@ -50,7 +51,7 @@ public static class Result implements RpcResult { String caption; @JsonCreator - public static Result getInstance(@JsonProperty(value = CAPTION, required = true) final String caption) { + public static Result getInstance(@JsonProperty(value = CAPTION, required = true) @Nullable final String caption) { return isError(caption) ? InstanceHolder.ERROR : new Result(caption); } diff --git a/src/test/resources/json/GetWindowCaption/error.result.json b/src/test/resources/json/GetWindowCaption/error.result.json index 9e26dfe..ee8530d 100644 --- a/src/test/resources/json/GetWindowCaption/error.result.json +++ b/src/test/resources/json/GetWindowCaption/error.result.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "caption": null +} \ No newline at end of file From 490a0c3de9ea5204304005da3dccbf66d9ea7c1d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 17 Nov 2018 23:49:23 +0300 Subject: [PATCH 447/549] Added test for AccountPosition protobuf deserialization. --- .../protobuf/AccountPositionPbSerdeTest.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java new file mode 100644 index 0000000..7253456 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AccountPositionPbSerdeTest.java @@ -0,0 +1,85 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.structures.AccountPosition; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import qlua.structs.QluaStructures; + +public class AccountPositionPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String FIRM_ID = "1"; + private static final String CURRENCY_CODE = "2"; + private static final String TAG = "3"; + private static final String DESCRIPTION = "4"; + private static final String OPEN_BALANCE = "5"; + private static final String CURRENT_POSITION = "6"; + private static final String PLANNED_POSITION = "7"; + private static final String LIMIT_1 = "8"; + private static final String LIMIT_2 = "9"; + private static final String ORDER_BUY = "10"; + private static final String ORDER_SELL = "11"; + private static final String NETTO = "12"; + private static final String PLANNED_BALANCE = "13"; + private static final String DEBIT = "14"; + private static final String CREDIT = "15"; + private static final String BANK_ACCOUNT_ID = "16"; + private static final String MARGIN_CALL = "17"; + private static final String SETTLE_BALANCE = "18"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return AccountPositionPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public AccountPosition getTargetObject() { + + return AccountPosition.builder() + .firmId(FIRM_ID) + .currCode(CURRENCY_CODE) + .tag(TAG) + .description(DESCRIPTION) + .openBal(OPEN_BALANCE) + .currentPos(CURRENT_POSITION) + .plannedPos(PLANNED_POSITION) + .limit1(LIMIT_1) + .limit2(LIMIT_2) + .orderBuy(ORDER_BUY) + .orderSell(ORDER_SELL) + .netto(NETTO) + .plannedBal(PLANNED_BALANCE) + .debit(DEBIT) + .credit(CREDIT) + .bankAccId(BANK_ACCOUNT_ID) + .marginCall(MARGIN_CALL) + .settleBal(SETTLE_BALANCE) + .build(); + } + + @NotNull + @Override + public QluaStructures.AccountPosition getTargetObjectAsPbMessage() { + + return QluaStructures.AccountPosition.newBuilder() + .setFirmid(FIRM_ID) + .setCurrcode(CURRENCY_CODE) + .setTag(TAG) + .setDescription(DESCRIPTION) + .setOpenbal(OPEN_BALANCE) + .setCurrentpos(CURRENT_POSITION) + .setPlannedpos(PLANNED_POSITION) + .setLimit1(LIMIT_1) + .setLimit2(LIMIT_2) + .setOrderbuy(ORDER_BUY) + .setOrdersell(ORDER_SELL) + .setNetto(NETTO) + .setPlannedbal(PLANNED_BALANCE) + .setDebit(DEBIT) + .setCredit(CREDIT) + .setBankAccId(BANK_ACCOUNT_ID) + .setMargincall(MARGIN_CALL) + .setSettlebal(SETTLE_BALANCE) + .build(); + } +} From 92f941bb799285bb88f82b9e893383e9e3f4bb6a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 02:06:35 +0300 Subject: [PATCH 448/549] Removed the 'required' flag because one cannot simply encode nil values to JSON in Lua. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java index c20da39..e8b3765 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/AddLabel.java @@ -14,6 +14,7 @@ import lombok.NonNull; import lombok.Value; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Map; @@ -67,10 +68,11 @@ public static class Result implements RpcResult { private static final String LABEL_ID = "label_id"; + @Nullable Integer labelId; @JsonCreator - public Result(@JsonProperty(value = LABEL_ID, required = true) final Integer labelId) { + public Result(@JsonProperty(value = LABEL_ID) final Integer labelId) { this.labelId = labelId; } From 46822a7729a82eefad78da062320363729f7817e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 06:56:39 +0300 Subject: [PATCH 449/549] Removed the 'required' annotation flag. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java index 18b6753..3d13a62 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetCell.java @@ -80,8 +80,8 @@ public static class Result implements RpcResult { @JsonCreator @Builder private static Result getInstance( - @JsonProperty(value = IMAGE, required = true) final String image, - @JsonProperty(value = VALUE, required = true) final String value) { + @JsonProperty(value = IMAGE) final String image, + @JsonProperty(value = VALUE) final String value) { return image == null && value == null ? InstanceHolder.ERROR : new Result(image, value); } From 0757831737c56ea6f2a55afb6ee6298cc91afc90 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:14:33 +0300 Subject: [PATCH 450/549] Removed the 'required' annotation flag. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java index a2ea78f..8adae42 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetDepoEx.java @@ -105,7 +105,7 @@ public static class Result implements RpcResult { DepoLimit depoEx; @JsonCreator - public static Result getInstance(@JsonProperty(value = DEPO_EX, required = true) final DepoLimit depoEx) { + public static Result getInstance(@JsonProperty(value = DEPO_EX) final DepoLimit depoEx) { return depoEx == null ? InstanceHolder.ERROR : new Result(depoEx); } From f2ca641117c7721c2535889c3fb785a9b4217890 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:15:51 +0300 Subject: [PATCH 451/549] Added test for GetDepoEx.Result protobuf deserialization. --- .../protobuf/GetDepoExResultPbSerdeTest.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java new file mode 100644 index 0000000..efdefa9 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExResultPbSerdeTest.java @@ -0,0 +1,79 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetDepoEx; +import com.enfernuz.quik.lua.rpc.api.structures.DepoLimit; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetDepoExResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String SECURITY_CODE = "1"; + private static final String TRADING_ACCOUNT_ID = "2"; + private static final String FIRM_ID = "3"; + private static final String CLIENT_CODE = "4"; + private static final int OPEN_BALANCE = 5; + private static final int OPEN_LIMIT = 6; + private static final int CURRENT_BALANCE = 7; + private static final int CURRENT_LIMIT = 8; + private static final int LOCKED_SELL = 9; + private static final int LOCKED_BUY = 10; + private static final String LOCKED_BUY_VALUE = "11"; + private static final String LOCKED_SELL_VALUE = "12"; + private static final String WEIGHTED_AVERAGE_POSITION_PRICE = "13"; + private static final int LIMIT_KIND = 14; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetDepoExResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetDepoEx.Result getTargetObject() { + + final DepoLimit depoEx = DepoLimit.builder() + .secCode(SECURITY_CODE) + .trdAccId(TRADING_ACCOUNT_ID) + .firmId(FIRM_ID) + .clientCode(CLIENT_CODE) + .openBal(OPEN_BALANCE) + .openLimit(OPEN_LIMIT) + .currentBal(CURRENT_BALANCE) + .currentLimit(CURRENT_LIMIT) + .lockedSell(LOCKED_SELL) + .lockedBuy(LOCKED_BUY) + .lockedBuyValue(LOCKED_BUY_VALUE) + .lockedSellValue(LOCKED_SELL_VALUE) + .waPositionPrice(WEIGHTED_AVERAGE_POSITION_PRICE) + .limitKind(LIMIT_KIND) + .build(); + + return GetDepoEx.Result.getInstance(depoEx); + } + + @NotNull + @Override + public qlua.rpc.GetDepoEx.Result getTargetObjectAsPbMessage() { + + final qlua.structs.QluaStructures.DepoLimit depoEx = qlua.structs.QluaStructures.DepoLimit.newBuilder() + .setSecCode(SECURITY_CODE) + .setTrdaccid(TRADING_ACCOUNT_ID) + .setFirmid(FIRM_ID) + .setClientCode(CLIENT_CODE) + .setOpenbal(OPEN_BALANCE) + .setOpenlimit(OPEN_LIMIT) + .setCurrentbal(CURRENT_BALANCE) + .setCurrentlimit(CURRENT_LIMIT) + .setLockedSell(LOCKED_SELL) + .setLockedBuy(LOCKED_BUY) + .setLockedBuyValue(LOCKED_BUY_VALUE) + .setLockedSellValue(LOCKED_SELL_VALUE) + .setWaPositionPrice(WEIGHTED_AVERAGE_POSITION_PRICE) + .setLimitKind(LIMIT_KIND) + .build(); + + return qlua.rpc.GetDepoEx.Result.newBuilder() + .setDepoEx(depoEx) + .build(); + } +} From 0bbba39e711021dd008b766dcfae4f7e4787e502 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:17:42 +0300 Subject: [PATCH 452/549] Removed the 'required' annotation flag. --- .../enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java index e3f4bc5..30e1f4f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesHolding.java @@ -94,7 +94,7 @@ public static class Result implements RpcResult { FuturesClientHolding futuresHolding; @JsonCreator - public static Result getInstance(@JsonProperty(value = FUTURES_HOLDING, required = true) final FuturesClientHolding futuresHolding) { + public static Result getInstance(@JsonProperty(FUTURES_HOLDING) final FuturesClientHolding futuresHolding) { return futuresHolding == null ? InstanceHolder.ERROR : new Result(futuresHolding); } From 7ec24b0c5a9de89ace84f6a369823737b6952c7d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:19:33 +0300 Subject: [PATCH 453/549] Removed the 'required' annotation flag. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java index ba729e0..879ffc8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetFuturesLimit.java @@ -94,7 +94,7 @@ public static class Result implements RpcResult { FuturesLimit futuresLimit; @JsonCreator - public static Result getInstance(@JsonProperty(value = FUTURES_LIMIT, required = true) final FuturesLimit futuresLimit) { + public static Result getInstance(@JsonProperty(FUTURES_LIMIT) final FuturesLimit futuresLimit) { return futuresLimit == null ? InstanceHolder.ERROR : new Result(futuresLimit); } From 4bdbda56153eb1859157876d9da996651e929bbe Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:25:38 +0300 Subject: [PATCH 454/549] Added test for GetInfoParam.Result protobuf deserialization. --- .../GetInfoParamResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java new file mode 100644 index 0000000..75cbef1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetInfoParam; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetInfoParamResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String INFO_PARAM = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetInfoParamResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetInfoParam.Result getTargetObject() { + return new GetInfoParam.Result(INFO_PARAM); + } + + @NotNull + @Override + public qlua.rpc.GetInfoParam.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetInfoParam.Result.newBuilder() + .setInfoParam(INFO_PARAM) + .build(); + } +} From 6b8bb136e7217063f31b51ee454eb74020b55c81 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:29:27 +0300 Subject: [PATCH 455/549] Added test for GetItem.Result protobuf deserialization. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java index 2b92f7f..5c41d1d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetItem.java @@ -12,7 +12,6 @@ import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.Value; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import java.util.Map; @@ -67,7 +66,7 @@ public static class Result implements RpcResult { Map tableRow; @JsonCreator - public static Result getInstance(@JsonProperty(value = TABLE_ROW, required = true) final Map tableRow) { + public static Result getInstance(@JsonProperty(TABLE_ROW) final Map tableRow) { if (tableRow == null) { return InstanceHolder.ERROR; From 6ddaffdef22fcc7a0d9a59ece5615959f1bb28e3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:36:30 +0300 Subject: [PATCH 456/549] Removed the 'required' annotation flag. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java index f169a26..bfc01b6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetLabelParams.java @@ -66,7 +66,7 @@ public static class Result implements RpcResult { Map labelParams; @JsonCreator - public static Result getInstance(@JsonProperty(value = LABEL_PARAMS, required = true) final Map labelParams) { + public static Result getInstance(@JsonProperty(LABEL_PARAMS) final Map labelParams) { if (labelParams == null) { return InstanceHolder.ERROR; From 8a702329f427c3b21d897ce0afa52f86e161f18c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:36:52 +0300 Subject: [PATCH 457/549] Added test for GetLabelParams.Result protobuf deserialization. --- .../GetLabelParamsResultPbSerdeTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java new file mode 100644 index 0000000..7b975ca --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLabelParamsResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.common.collect.ImmutableMap; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Map; + +@RunWith(Enclosed.class) +public class GetLabelParamsResultPbSerdeTest { + + public static class NormalGetLabelParamsResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final Map LABEL_PARAMS = ImmutableMap.of( + "key1", "value1", + "key2", "value2", + "key3", "value3" + ); + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetLabelParamsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetLabelParams.Result getTargetObject() { + return GetLabelParams.Result.getInstance(LABEL_PARAMS); + } + + @NotNull + @Override + public qlua.rpc.GetLabelParams.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetLabelParams.Result.newBuilder() + .putAllLabelParams(LABEL_PARAMS) + .build(); + } + } + + public static class ErrorGetLabelParamsResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetLabelParamsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetLabelParams.Result getTargetObject() { + return GetLabelParams.Result.getInstance(null); + } + + @NotNull + @Override + public qlua.rpc.GetLabelParams.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetLabelParams.Result.newBuilder() + .setNullLabelParams(true) + .build(); + } + } +} From 67d317802c88cf5413017dac1af2fa5081bfd24c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 07:39:58 +0300 Subject: [PATCH 458/549] Added test for GetLinesCount.Result protobuf deserialization. --- .../GetLinesCountResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java new file mode 100644 index 0000000..4ae3617 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetLinesCount; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetLinesCountResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int LINES_COUNT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetLinesCountResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetLinesCount.Result getTargetObject() { + return new GetLinesCount.Result(LINES_COUNT); + } + + @NotNull + @Override + public qlua.rpc.GetLinesCount.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetLinesCount.Result.newBuilder() + .setLinesCount(LINES_COUNT) + .build(); + } +} From 1b6c582a6dceb3b0a89d3a729d7eb1a9daa60f40 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 21:41:13 +0300 Subject: [PATCH 459/549] Removed the 'required' annotation flag. --- .../java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java index d68e5ff..873cd73 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetMoneyEx.java @@ -104,7 +104,7 @@ public static class Result implements RpcResult { MoneyLimit moneyEx; @JsonCreator - public static Result getInstance(@JsonProperty(value = MONEY_EX, required = true) final MoneyLimit moneyEx) { + public static Result getInstance(@JsonProperty(MONEY_EX) final MoneyLimit moneyEx) { return (moneyEx == null) ? InstanceHolder.ERROR : new Result(moneyEx); } From 0a302c8f4832bd69f4328d70994abd720dab36c6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 21:43:58 +0300 Subject: [PATCH 460/549] Added test for GetNumberOf.Result protobuf deserialization. --- .../GetNumberOfResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java new file mode 100644 index 0000000..ee8c8df --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumberOf; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetNumberOfResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetNumberOfResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetNumberOf.Result getTargetObject() { + return new GetNumberOf.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.GetNumberOf.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetNumberOf.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 4c40dd7b1e5dfd1924dc4e84062c298ad55a711b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 21:47:21 +0300 Subject: [PATCH 461/549] Added test for GetNumCandles.Result protobuf deserialization. --- .../GetNumCandlesResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java new file mode 100644 index 0000000..dae9d74 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetNumCandles; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetNumCandlesResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int NUM_CANDLES = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetNumCandlesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetNumCandles.Result getTargetObject() { + return new GetNumCandles.Result(NUM_CANDLES); + } + + @NotNull + @Override + public qlua.rpc.GetNumCandles.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetNumCandles.Result.newBuilder() + .setNumCandles(NUM_CANDLES) + .build(); + } +} From b1c2a8c14ab0cdc5dce456eb2145f4537763c233 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 21:49:11 +0300 Subject: [PATCH 462/549] Removed the 'required' annotation flag. --- .../enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java index 66354d9..de2cdf6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetOrderByNumber.java @@ -65,8 +65,8 @@ public static class Result implements RpcResult { @JsonCreator public static Result getInstance( - @JsonProperty(value = ORDER, required = true) final Order order, - @JsonProperty(value = INDX, required = true) final Integer indx) { + @JsonProperty(ORDER) final Order order, + @JsonProperty(INDX) final Integer indx) { return (order == null && indx == null) ? InstanceHolder.ERROR : new Result(order, indx); } From ac79ed4c3d0c370f88b597e093ca672ed31d725a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 22:00:21 +0300 Subject: [PATCH 463/549] Added test for GetPortfolioInfo.Result protobuf deserialization. --- .../protobuf/GetPortfolioInfoPbSerdeTest.java | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java new file mode 100644 index 0000000..8028937 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java @@ -0,0 +1,158 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfo; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetPortfolioInfoPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetPortfolioInfoResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetPortfolioInfo.Result getTargetObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(IS_LEVERAGE) + .inAssets(IN_ASSETS) + .leverage(LEVERAGE) + .openLimit(OPEN_LIMIT) + .valShort(VAL_SHORT) + .valLong(VAL_LONG) + .valLongMargin(VAL_LONG_MARGIN) + .valLongAsset(VAL_LONG_ASSET) + .assets(ASSETS) + .curLeverage(CUR_LEVERAGE) + .margin(MARGIN) + .limAll(LIM_ALL) + .avLimAll(AV_LIM_ALL) + .lockedBuy(LOCKED_BUY) + .lockedBuyMargin(LOCKED_BUY_MARGIN) + .lockedBuyAsset(LOCKED_BUY_ASSET) + .lockedSell(LOCKED_SELL) + .lockedValueCoef(LOCKED_VALUE_COEF) + .inAllAssets(IN_ALL_ASSETS) + .allAssets(ALL_ASSETS) + .profitLoss(PROFIT_LOSS) + .rateChange(RATE_CHANGE) + .limBuy(LIM_BUY) + .limSell(LIM_SELL) + .limNonMargin(LIM_NON_MARGIN) + .limBuyAsset(LIM_BUY_ASSET) + .valShortNet(VAL_SHORT_NET) + .valLongNet(VAL_LONG_NET) + .totalMoneyBal(TOTAL_MONEY_BAL) + .totalLockedMoney(TOTAL_LOCKED_MONEY) + .haircuts(HAIRCUTS) + .assetsWithoutHc(ASSETS_WITHOUT_HC) + .statusCoef(STATUS_COEF) + .varMargin(VAR_MARGIN) + .goForPositions(GO_FOR_POSITIONS) + .goForOrders(GO_FOR_ORDERS) + .rateFutures(RATE_FUTURES) + .isQualClient(IS_QUAL_CLIENT) + .isFutures(IS_FUTURES) + .currTag(CURR_TAG) + .build(); + + return new GetPortfolioInfo.Result(portfolioInfo); + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfo.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = + qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage(IS_LEVERAGE) + .setInAssets(IN_ASSETS) + .setLeverage(LEVERAGE) + .setOpenLimit(OPEN_LIMIT) + .setValShort(VAL_SHORT) + .setValLong(VAL_LONG) + .setValLongMargin(VAL_LONG_MARGIN) + .setValLongAsset(VAL_LONG_ASSET) + .setAssets(ASSETS) + .setCurLeverage(CUR_LEVERAGE) + .setMargin(MARGIN) + .setLimAll(LIM_ALL) + .setAvLimAll(AV_LIM_ALL) + .setLockedBuy(LOCKED_BUY) + .setLockedBuyMargin(LOCKED_BUY_MARGIN) + .setLockedBuyAsset(LOCKED_BUY_ASSET) + .setLockedSell(LOCKED_SELL) + .setLockedValueCoef(LOCKED_VALUE_COEF) + .setInAllAssets(IN_ALL_ASSETS) + .setAllAssets(ALL_ASSETS) + .setProfitLoss(PROFIT_LOSS) + .setRateChange(RATE_CHANGE) + .setLimBuy(LIM_BUY) + .setLimSell(LIM_SELL) + .setLimNonMargin(LIM_NON_MARGIN) + .setLimBuyAsset(LIM_BUY_ASSET) + .setValShortNet(VAL_SHORT_NET) + .setValLongNet(VAL_LONG_NET) + .setTotalMoneyBal(TOTAL_MONEY_BAL) + .setTotalLockedMoney(TOTAL_LOCKED_MONEY) + .setHaircuts(HAIRCUTS) + .setAssetsWithoutHc(ASSETS_WITHOUT_HC) + .setStatusCoef(STATUS_COEF) + .setVarmargin(VAR_MARGIN) + .setGoForPositions(GO_FOR_POSITIONS) + .setGoForOrders(GO_FOR_ORDERS) + .setRateFutures(RATE_FUTURES) + .setIsQualClient(IS_QUAL_CLIENT) + .setIsFutures(IS_FUTURES) + .setCurrTag(CURR_TAG) + .build(); + + return qlua.rpc.GetPortfolioInfo.Result.newBuilder() + .setPortfolioInfo(portfolioInfo) + .build(); + } +} From 9487cee046c8ecb55a955c5264eb3295702ff4b1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 22:29:42 +0300 Subject: [PATCH 464/549] Added test for GetPortfolioInfoEx.Result protobuf deserialization. --- .../GetPortfolioInfoExResultPbSerdeTest.java | 238 ++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java new file mode 100644 index 0000000..a16c535 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExResultPbSerdeTest.java @@ -0,0 +1,238 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetPortfolioInfoEx; +import com.enfernuz.quik.lua.rpc.api.structures.PortfolioInfo; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetPortfolioInfoExResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetPortfolioInfoExResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetPortfolioInfoEx.Result getTargetObject() { + + final PortfolioInfo portfolioInfo = PortfolioInfo.builder() + .isLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .inAssets(PortfolioInfoParameters.IN_ASSETS) + .leverage(PortfolioInfoParameters.LEVERAGE) + .openLimit(PortfolioInfoParameters.OPEN_LIMIT) + .valShort(PortfolioInfoParameters.VAL_SHORT) + .valLong(PortfolioInfoParameters.VAL_LONG) + .valLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .valLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .assets(PortfolioInfoParameters.ASSETS) + .curLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .margin(PortfolioInfoParameters.MARGIN) + .limAll(PortfolioInfoParameters.LIM_ALL) + .avLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .lockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .lockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .lockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .lockedSell(PortfolioInfoParameters.LOCKED_SELL) + .lockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .inAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .allAssets(PortfolioInfoParameters.ALL_ASSETS) + .profitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .rateChange(PortfolioInfoParameters.RATE_CHANGE) + .limBuy(PortfolioInfoParameters.LIM_BUY) + .limSell(PortfolioInfoParameters.LIM_SELL) + .limNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .limBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .valShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .valLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .totalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .totalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .haircuts(PortfolioInfoParameters.HAIRCUTS) + .assetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .statusCoef(PortfolioInfoParameters.STATUS_COEF) + .varMargin(PortfolioInfoParameters.VAR_MARGIN) + .goForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .goForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .rateFutures(PortfolioInfoParameters.RATE_FUTURES) + .isQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .isFutures(PortfolioInfoParameters.IS_FUTURES) + .currTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + return GetPortfolioInfoEx.Result.builder() + .portfolioInfo(portfolioInfo) + .initMargin(PortfolioInfoExParameters.INIT_MARGIN) + .minMargin(PortfolioInfoExParameters.MIN_MARGIN) + .correctedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) + .clientType(PortfolioInfoExParameters.CLIENT_TYPE) + .portfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) + .startLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) + .totalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) + .limitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) + .usedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) + .accVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) + .clVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) + .optLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) + .futAsset(PortfolioInfoExParameters.FUT_ASSET) + .futTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) + .futDebt(PortfolioInfoExParameters.FUT_DEBT) + .futRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) + .futRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) + .futRateGo(PortfolioInfoExParameters.FUT_RATE_GO) + .planedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) + .cashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) + .futPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) + .futAccruedInt(PortfolioInfoExParameters.FUT_ACCURED_INT) + .build(); + } + + @NotNull + @Override + public qlua.rpc.GetPortfolioInfoEx.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetPortfolioInfo.PortfolioInfo portfolioInfo = + qlua.rpc.GetPortfolioInfo.PortfolioInfo.newBuilder() + .setIsLeverage(PortfolioInfoParameters.IS_LEVERAGE) + .setInAssets(PortfolioInfoParameters.IN_ASSETS) + .setLeverage(PortfolioInfoParameters.LEVERAGE) + .setOpenLimit(PortfolioInfoParameters.OPEN_LIMIT) + .setValShort(PortfolioInfoParameters.VAL_SHORT) + .setValLong(PortfolioInfoParameters.VAL_LONG) + .setValLongMargin(PortfolioInfoParameters.VAL_LONG_MARGIN) + .setValLongAsset(PortfolioInfoParameters.VAL_LONG_ASSET) + .setAssets(PortfolioInfoParameters.ASSETS) + .setCurLeverage(PortfolioInfoParameters.CUR_LEVERAGE) + .setMargin(PortfolioInfoParameters.MARGIN) + .setLimAll(PortfolioInfoParameters.LIM_ALL) + .setAvLimAll(PortfolioInfoParameters.AV_LIM_ALL) + .setLockedBuy(PortfolioInfoParameters.LOCKED_BUY) + .setLockedBuyMargin(PortfolioInfoParameters.LOCKED_BUY_MARGIN) + .setLockedBuyAsset(PortfolioInfoParameters.LOCKED_BUY_ASSET) + .setLockedSell(PortfolioInfoParameters.LOCKED_SELL) + .setLockedValueCoef(PortfolioInfoParameters.LOCKED_VALUE_COEF) + .setInAllAssets(PortfolioInfoParameters.IN_ALL_ASSETS) + .setAllAssets(PortfolioInfoParameters.ALL_ASSETS) + .setProfitLoss(PortfolioInfoParameters.PROFIT_LOSS) + .setRateChange(PortfolioInfoParameters.RATE_CHANGE) + .setLimBuy(PortfolioInfoParameters.LIM_BUY) + .setLimSell(PortfolioInfoParameters.LIM_SELL) + .setLimNonMargin(PortfolioInfoParameters.LIM_NON_MARGIN) + .setLimBuyAsset(PortfolioInfoParameters.LIM_BUY_ASSET) + .setValShortNet(PortfolioInfoParameters.VAL_SHORT_NET) + .setValLongNet(PortfolioInfoParameters.VAL_LONG_NET) + .setTotalMoneyBal(PortfolioInfoParameters.TOTAL_MONEY_BAL) + .setTotalLockedMoney(PortfolioInfoParameters.TOTAL_LOCKED_MONEY) + .setHaircuts(PortfolioInfoParameters.HAIRCUTS) + .setAssetsWithoutHc(PortfolioInfoParameters.ASSETS_WITHOUT_HC) + .setStatusCoef(PortfolioInfoParameters.STATUS_COEF) + .setVarmargin(PortfolioInfoParameters.VAR_MARGIN) + .setGoForPositions(PortfolioInfoParameters.GO_FOR_POSITIONS) + .setGoForOrders(PortfolioInfoParameters.GO_FOR_ORDERS) + .setRateFutures(PortfolioInfoParameters.RATE_FUTURES) + .setIsQualClient(PortfolioInfoParameters.IS_QUAL_CLIENT) + .setIsFutures(PortfolioInfoParameters.IS_FUTURES) + .setCurrTag(PortfolioInfoParameters.CURR_TAG) + .build(); + + final qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx portfolioInfoEx = + qlua.rpc.GetPortfolioInfoEx.PortfolioInfoEx.newBuilder() + .setPortfolioInfo(portfolioInfo) + .setInitMargin(PortfolioInfoExParameters.INIT_MARGIN) + .setMinMargin(PortfolioInfoExParameters.MIN_MARGIN) + .setCorrectedMargin(PortfolioInfoExParameters.CORRECTED_MARGIN) + .setClientType(PortfolioInfoExParameters.CLIENT_TYPE) + .setPortfolioValue(PortfolioInfoExParameters.PORTFOLIO_VALUE) + .setStartLimitOpenPos(PortfolioInfoExParameters.START_LIMIT_OPEN_POS) + .setTotalLimitOpenPos(PortfolioInfoExParameters.TOTAL_LIMIT_OPEN_POS) + .setLimitOpenPos(PortfolioInfoExParameters.LIMIT_OPEN_POS) + .setUsedLimOpenPos(PortfolioInfoExParameters.USED_LIM_OPEN_POS) + .setAccVarMargin(PortfolioInfoExParameters.ACC_VAR_MARGIN) + .setClVarMargin(PortfolioInfoExParameters.CL_VAR_MARGIN) + .setOptLiquidCost(PortfolioInfoExParameters.OPT_LIQUID_COST) + .setFutAsset(PortfolioInfoExParameters.FUT_ASSET) + .setFutTotalAsset(PortfolioInfoExParameters.FUT_TOTAL_ASSET) + .setFutDebt(PortfolioInfoExParameters.FUT_DEBT) + .setFutRateAsset(PortfolioInfoExParameters.FUT_RATE_ASSET) + .setFutRateAssetOpen(PortfolioInfoExParameters.FUT_RATE_ASSET_OPEN) + .setFutRateGo(PortfolioInfoExParameters.FUT_RATE_GO) + .setPlanedRateGo(PortfolioInfoExParameters.PLANED_RATE_GO) + .setCashLeverage(PortfolioInfoExParameters.CASH_LEVERAGE) + .setFutPositionType(PortfolioInfoExParameters.FUT_POSITION_TYPE) + .setFutAccuredInt(PortfolioInfoExParameters.FUT_ACCURED_INT) + .build(); + + return qlua.rpc.GetPortfolioInfoEx.Result.newBuilder() + .setPortfolioInfoEx(portfolioInfoEx) + .build(); + } + + private static final class PortfolioInfoParameters { + + private static final String IS_LEVERAGE = "1"; + private static final String IN_ASSETS = "2"; + private static final String LEVERAGE = "3"; + private static final String OPEN_LIMIT = "4"; + private static final String VAL_SHORT = "5"; + private static final String VAL_LONG = "6"; + private static final String VAL_LONG_MARGIN = "7"; + private static final String VAL_LONG_ASSET = "8"; + private static final String ASSETS = "9"; + private static final String CUR_LEVERAGE = "10"; + private static final String MARGIN = "11"; + private static final String LIM_ALL = "12"; + private static final String AV_LIM_ALL = "13"; + private static final String LOCKED_BUY = "14"; + private static final String LOCKED_BUY_MARGIN = "15"; + private static final String LOCKED_BUY_ASSET = "16"; + private static final String LOCKED_SELL = "17"; + private static final String LOCKED_VALUE_COEF = "18"; + private static final String IN_ALL_ASSETS = "19"; + private static final String ALL_ASSETS = "20"; + private static final String PROFIT_LOSS = "21"; + private static final String RATE_CHANGE = "22"; + private static final String LIM_BUY = "23"; + private static final String LIM_SELL = "24"; + private static final String LIM_NON_MARGIN = "25"; + private static final String LIM_BUY_ASSET = "26"; + private static final String VAL_SHORT_NET = "27"; + private static final String VAL_LONG_NET = "28"; + private static final String TOTAL_MONEY_BAL = "29"; + private static final String TOTAL_LOCKED_MONEY = "30"; + private static final String HAIRCUTS = "31"; + private static final String ASSETS_WITHOUT_HC = "32"; + private static final String STATUS_COEF = "33"; + private static final String VAR_MARGIN = "34"; + private static final String GO_FOR_POSITIONS = "35"; + private static final String GO_FOR_ORDERS = "36"; + private static final String RATE_FUTURES = "37"; + private static final String IS_QUAL_CLIENT = "38"; + private static final String IS_FUTURES = "39"; + private static final String CURR_TAG = "40"; + } + + private static final class PortfolioInfoExParameters { + + private static final String INIT_MARGIN = "2"; + private static final String MIN_MARGIN = "3"; + private static final String CORRECTED_MARGIN = "4"; + private static final String CLIENT_TYPE = "5"; + private static final String PORTFOLIO_VALUE = "6"; + private static final String START_LIMIT_OPEN_POS = "7"; + private static final String TOTAL_LIMIT_OPEN_POS = "8"; + private static final String LIMIT_OPEN_POS = "9"; + private static final String USED_LIM_OPEN_POS = "10"; + private static final String ACC_VAR_MARGIN = "11"; + private static final String CL_VAR_MARGIN = "12"; + private static final String OPT_LIQUID_COST = "13"; + private static final String FUT_ASSET = "14"; + private static final String FUT_TOTAL_ASSET = "15"; + private static final String FUT_DEBT = "16"; + private static final String FUT_RATE_ASSET = "17"; + private static final String FUT_RATE_ASSET_OPEN = "18"; + private static final String FUT_RATE_GO = "19"; + private static final String PLANED_RATE_GO = "20"; + private static final String CASH_LEVERAGE = "21"; + private static final String FUT_POSITION_TYPE = "22"; + private static final String FUT_ACCURED_INT = "23"; + } +} From 8322e70e43a874fcfc87e956d65134c66b303170 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 22:30:01 +0300 Subject: [PATCH 465/549] Renamed test for GetPortfolioInfo.Result protobuf deserialization. --- ...oPbSerdeTest.java => GetPortfolioInfoResultPbSerdeTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/{GetPortfolioInfoPbSerdeTest.java => GetPortfolioInfoResultPbSerdeTest.java} (97%) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java similarity index 97% rename from src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java rename to src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java index 8028937..a779d8e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoResultPbSerdeTest.java @@ -5,7 +5,7 @@ import com.enfernuz.quik.lua.rpc.serde.Deserializer; import org.jetbrains.annotations.NotNull; -public class GetPortfolioInfoPbSerdeTest extends AbstractPbDeserializationTest { +public class GetPortfolioInfoResultPbSerdeTest extends AbstractPbDeserializationTest { private static final String IS_LEVERAGE = "1"; private static final String IN_ASSETS = "2"; From 14344a0353412fa3a059b3b6b690a39d9cbfd580 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 23:37:03 +0300 Subject: [PATCH 466/549] Added EOF newline. --- rpc-client-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpc-client-config.json b/rpc-client-config.json index a430689..e5683bf 100644 --- a/rpc-client-config.json +++ b/rpc-client-config.json @@ -20,4 +20,4 @@ } } } -} \ No newline at end of file +} From 3c9a3ec0783679a74de5d6d2a30bbbf82c47a9d0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 8 Dec 2018 23:37:23 +0300 Subject: [PATCH 467/549] Added JSON schema for client configurations. --- schema_client-config.json | 97 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 schema_client-config.json diff --git a/schema_client-config.json b/schema_client-config.json new file mode 100644 index 0000000..b619c82 --- /dev/null +++ b/schema_client-config.json @@ -0,0 +1,97 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://github.com/Enfernuz/quik-lua-rpc-java-client/schema_client-config.json", + "title": "Схема конфигурации клиента QLua RPC-сервиса", + "description": "Конфигурация клиента QLua RPC-сервиса", + "type": "object", + "properties": { + "address": { + "description": "Адрес точки подключения к QLua RPC-сервису", + "type": "object", + "properties": { + "host": { + "description": "IP-адрес/хост точки подключения к QLua RPC-сервису", + "type": "string", + "minLength": 1 + }, + "port": { + "description": "Номер порта точки подключения к QLua RPC-сервису", + "type": "number", + "minimum": 0, + "maximum": 65535 + } + }, + "required": ["host", "port"] + }, + "serde_protocol": { + "description": "Протокол сериализации/десериализации сообщений", + "type": "string", + "pattern": "protobuf|json" + }, + "auth": { + "description": "Информация об используемом механизме аутентификации соединения", + "type": "object", + "properties": { + "mechanism": { + "description": "Тип механизма аутентификации ZeroMQ", + "type": "string", + "pattern": "NULL|PLAIN|CURVE" + }, + "plain": { + "description": "Информация о простом механизме аутентификации соединения (пара 'пользователь/пароль')", + "type": "object", + "properties": { + "username": { + "description": "Пользователь", + "type": "string", + "minLength": 1 + }, + "password": { + "description": "Пароль", + "type": "string" + } + }, + "required": ["username", "password"] + }, + "curve": { + "description": "Информация о механизме аутентификации соединения с использованием шифрования", + "type": "object", + "properties": { + "client": { + "description": "Ключевая пара клиента", + "type": "object", + "properties": { + "public": { + "description": "Публичный CURVE-ключ клиента в формате Z85", + "type": "string", + "pattern": "^[0-9a-zA-Z.\\-:+=^!/*?&<>()\\[\\]{\\}@%$#]{40}$" + }, + "secret": { + "description": "Приватный CURVE-ключ клиента в формате Z85", + "type": "string", + "pattern": "^[0-9a-zA-Z.\\-:+=^!/*?&<>()\\[\\]{\\}@%$#]{40}$" + } + }, + "required": ["public", "secret"] + }, + "server": { + "description": "Информация о CURVE-ключе точки подключения", + "type": "object", + "properties": { + "public": { + "description": "Публичный CURVE-ключ точки подключения в формате Z85", + "type": "string", + "pattern": "^[0-9a-zA-Z.\\-:+=^!/*?&<>()\\[\\]{\\}@%$#]{40}$" + } + }, + "required": ["public"] + } + }, + "required": ["client", "server"] + } + }, + "required": ["mechanism"] + } + }, + "required": ["address", "serde_protocol", "auth"] +} From 4d0f03ebebd9117e2e422560987394dab3996403 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Dec 2018 23:36:22 +0300 Subject: [PATCH 468/549] Added test for GetQuoteLevel2.Result protobuf deserialization. --- .../GetQuoteLevel2ResultPbSerdeTest.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java new file mode 100644 index 0000000..8a04063 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ResultPbSerdeTest.java @@ -0,0 +1,74 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetQuoteLevel2; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import com.google.common.collect.ImmutableList; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.rules.ExpectedException; + +import java.util.List; + +public class GetQuoteLevel2ResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String BID_COUNT = "4"; + private static final String OFFER_COUNT = "3"; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetQuoteLevel2ResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetQuoteLevel2.Result getTargetObject() { + + final List bids = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("1").quantity("100").build(), + GetQuoteLevel2.QuoteEntry.builder().price("2").quantity("200").build(), + GetQuoteLevel2.QuoteEntry.builder().price("3").quantity("300").build(), + GetQuoteLevel2.QuoteEntry.builder().price("4").quantity("400").build() + ); + + final List offers = ImmutableList.of( + GetQuoteLevel2.QuoteEntry.builder().price("5").quantity("500").build(), + GetQuoteLevel2.QuoteEntry.builder().price("6").quantity("600").build(), + GetQuoteLevel2.QuoteEntry.builder().price("7").quantity("700").build() + ); + + return GetQuoteLevel2.Result.builder() + .bids(bids) + .offers(offers) + .bidCount(BID_COUNT) + .offerCount(OFFER_COUNT) + .build(); + } + + @NotNull + @Override + public qlua.rpc.GetQuoteLevel2.Result getTargetObjectAsPbMessage() { + + final List bids = ImmutableList.of( + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("1").setQuantity("100").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("2").setQuantity("200").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("3").setQuantity("300").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("4").setQuantity("400").build() + ); + + final List offers = ImmutableList.of( + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("5").setQuantity("500").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("6").setQuantity("600").build(), + qlua.rpc.GetQuoteLevel2.QuoteEntry.newBuilder().setPrice("7").setQuantity("700").build() + ); + + return qlua.rpc.GetQuoteLevel2.Result.newBuilder() + .addAllBids(bids) + .addAllOffers(offers) + .setBidCount(BID_COUNT) + .setOfferCount(OFFER_COUNT) + .build(); + } +} From 388ff064c63680bffa41fdc666421acb33bbcbed Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Dec 2018 23:40:06 +0300 Subject: [PATCH 469/549] Added test for GetScriptPath.Result protobuf deserialization. --- .../GetScriptPathResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java new file mode 100644 index 0000000..e6f95e4 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetScriptPathResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetScriptPath; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class GetScriptPathResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String SCRIPT_PATH = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetScriptPathResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetScriptPath.Result getTargetObject() { + return new GetScriptPath.Result(SCRIPT_PATH); + } + + @NotNull + @Override + public qlua.rpc.GetScriptPath.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.GetScriptPath.Result.newBuilder() + .setScriptPath(SCRIPT_PATH) + .build(); + } +} From 42e5087a08d9234dc13fa5b60d61949123402605 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 9 Dec 2018 23:50:50 +0300 Subject: [PATCH 470/549] Added test for GetSecurityInfo.Result protobuf deserialization. --- .../GetSecurityInfoResultPbSerdeTest.java | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java new file mode 100644 index 0000000..874f15e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoResultPbSerdeTest.java @@ -0,0 +1,103 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetSecurityInfo; +import com.enfernuz.quik.lua.rpc.api.structures.Security; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import qlua.structs.QluaStructures; + +@RunWith(Enclosed.class) +public class GetSecurityInfoResultPbSerdeTest { + + public static class Ok_GetSecurityInfoResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetSecurityInfoResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetSecurityInfo.Result getTargetObject() { + + final Security security = Security.builder() + .code(SecurityParameters.CODE) + .name(SecurityParameters.NAME) + .shortName(SecurityParameters.SHORT_NAME) + .classCode(SecurityParameters.CLASS_CODE) + .className(SecurityParameters.CLASS_NAME) + .faceValue(SecurityParameters.FACE_VALUE) + .faceUnit(SecurityParameters.FACE_UNIT) + .scale(SecurityParameters.SCALE) + .matDate(SecurityParameters.MAT_DATE) + .lotSize(SecurityParameters.LOT_SIZE) + .isinCode(SecurityParameters.ISIN_CODE) + .minPriceStep(SecurityParameters.MIN_PRICE_STEP) + .build(); + + return GetSecurityInfo.Result.getInstance(security); + } + + @NotNull + @Override + public qlua.rpc.GetSecurityInfo.Result getTargetObjectAsPbMessage() { + + final QluaStructures.Security security = QluaStructures.Security.newBuilder() + .setCode(SecurityParameters.CODE) + .setName(SecurityParameters.NAME) + .setShortName(SecurityParameters.SHORT_NAME) + .setClassCode(SecurityParameters.CLASS_CODE) + .setClassName(SecurityParameters.CLASS_NAME) + .setFaceValue(SecurityParameters.FACE_VALUE) + .setFaceUnit(SecurityParameters.FACE_UNIT) + .setScale(SecurityParameters.SCALE) + .setMatDate(SecurityParameters.MAT_DATE) + .setLotSize(SecurityParameters.LOT_SIZE) + .setIsinCode(SecurityParameters.ISIN_CODE) + .setMinPriceStep(SecurityParameters.MIN_PRICE_STEP) + .build(); + + return qlua.rpc.GetSecurityInfo.Result.newBuilder() + .setSecurityInfo(security) + .build(); + } + } + + public static class Error_GetSecurityInfoResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetSecurityInfoResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetSecurityInfo.Result getTargetObject() { + return GetSecurityInfo.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.GetSecurityInfo.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetSecurityInfo.Result.newBuilder().build(); + } + } + + private static final class SecurityParameters { + + private static final String CODE = "1"; + private static final String NAME = "2"; + private static final String SHORT_NAME = "3"; + private static final String CLASS_CODE = "4"; + private static final String CLASS_NAME = "5"; + private static final String FACE_VALUE = "6"; + private static final String FACE_UNIT = "7"; + private static final String SCALE = "8"; + private static final String MAT_DATE = "9"; + private static final String LOT_SIZE = "10"; + private static final String ISIN_CODE = "11"; + private static final String MIN_PRICE_STEP = "12"; + } +} From ee953bafc5a585a895b4181321cb9c77f0b8de6d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:48:31 +0300 Subject: [PATCH 471/549] Updated jackson-databind version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 175c06e..d4cb8c4 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ com.fasterxml.jackson.core jackson-databind - 2.9.4 + 2.9.8 From 3cd78629d4508cf6ec98ad40b98489ffd60ee9de Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:49:22 +0300 Subject: [PATCH 472/549] Fixed the JSON deserialization of GetTableSize's result. --- .../com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java | 2 +- src/test/resources/json/GetTableSize/error.result.json | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java index 4b10a29..616e8a0 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetTableSize.java @@ -52,7 +52,7 @@ public static class Result implements RpcResult { TableSize tableSize; @JsonCreator - public static Result getInstance(@JsonProperty(value = TABLE_SIZE, required = true) @Nullable final TableSize tableSize) { + public static Result getInstance(@JsonProperty(TABLE_SIZE) @Nullable final TableSize tableSize) { return isError(tableSize) ? InstanceHolder.ERROR : new Result(tableSize); } diff --git a/src/test/resources/json/GetTableSize/error.result.json b/src/test/resources/json/GetTableSize/error.result.json index 2fdb3c9..9e26dfe 100644 --- a/src/test/resources/json/GetTableSize/error.result.json +++ b/src/test/resources/json/GetTableSize/error.result.json @@ -1,3 +1 @@ -{ - "table_size": null -} \ No newline at end of file +{} \ No newline at end of file From 4188e3f73fe6f81fa45a76d9e4d92e0d90a88bb6 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:49:41 +0300 Subject: [PATCH 473/549] Fixed the JSON deserialization of GetWindowCaption's result. --- .../enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java | 2 +- src/test/resources/json/GetWindowCaption/error.result.json | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java index 0fafa55..588b138 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/GetWindowCaption.java @@ -51,7 +51,7 @@ public static class Result implements RpcResult { String caption; @JsonCreator - public static Result getInstance(@JsonProperty(value = CAPTION, required = true) @Nullable final String caption) { + public static Result getInstance(@JsonProperty(CAPTION) @Nullable final String caption) { return isError(caption) ? InstanceHolder.ERROR : new Result(caption); } diff --git a/src/test/resources/json/GetWindowCaption/error.result.json b/src/test/resources/json/GetWindowCaption/error.result.json index ee8530d..9e26dfe 100644 --- a/src/test/resources/json/GetWindowCaption/error.result.json +++ b/src/test/resources/json/GetWindowCaption/error.result.json @@ -1,3 +1 @@ -{ - "caption": null -} \ No newline at end of file +{} \ No newline at end of file From 34b1bfaf5cc19b90540d88fc5b6c34e63a9c8f60 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:50:05 +0300 Subject: [PATCH 474/549] Added test for GetTableSize.Result protobuf deserialization. --- .../GetTableSizeResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java new file mode 100644 index 0000000..93ab70e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetTableSize; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetTableSizeResultPbSerdeTest { + + private static final int ROWS = 1; + private static final int COL = 2; + private static final GetTableSize.TableSize TABLE_SIZE = + GetTableSize.TableSize.builder() + .rows(ROWS) + .col(COL) + .build(); + + public static class NormalGetTableSizeResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetTableSizeResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetTableSize.Result getTargetObject() { + return GetTableSize.Result.getInstance(TABLE_SIZE); + } + + @NotNull + @Override + public qlua.rpc.GetTableSize.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetTableSize.TableSize pbTableSize = qlua.rpc.GetTableSize.TableSize.newBuilder() + .setRows(ROWS) + .setCol(COL) + .build(); + + return qlua.rpc.GetTableSize.Result.newBuilder() + .setTableSize(pbTableSize) + .build(); + } + } + + public static class ErrorGetTableSizeResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetTableSizeResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetTableSize.Result getTargetObject() { + return GetTableSize.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.GetTableSize.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetTableSize.Result.newBuilder().build(); + } + } +} From b4d919b1440aabf63e406fb3866dc9f34f7a1b6e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:50:20 +0300 Subject: [PATCH 475/549] Added test for GetWindowRect.Result protobuf deserialization. --- .../GetWindowRectResultPbSerdeTest.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java new file mode 100644 index 0000000..2ccbf3e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectResultPbSerdeTest.java @@ -0,0 +1,73 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.GetWindowRect; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class GetWindowRectResultPbSerdeTest { + + private static final int TOP = 1; + private static final int LEFT = 2; + private static final int BOTTOM = 3; + private static final int RIGHT = 4; + private static final GetWindowRect.WindowRect WINDOW_RECT = + GetWindowRect.WindowRect.builder() + .top(TOP) + .left(LEFT) + .bottom(BOTTOM) + .right(RIGHT) + .build(); + + public static class NormalGetWindowRectResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetWindowRectResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetWindowRect.Result getTargetObject() { + return GetWindowRect.Result.getInstance(WINDOW_RECT); + } + + @NotNull + @Override + public qlua.rpc.GetWindowRect.Result getTargetObjectAsPbMessage() { + + final qlua.rpc.GetWindowRect.WindowRect pbWindowRect = qlua.rpc.GetWindowRect.WindowRect.newBuilder() + .setTop(TOP) + .setLeft(LEFT) + .setBottom(BOTTOM) + .setRight(RIGHT) + .build(); + + return qlua.rpc.GetWindowRect.Result.newBuilder() + .setWindowRect(pbWindowRect) + .build(); + } + } + + public static class ErrorGetWindowRectResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return GetWindowRectResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public GetWindowRect.Result getTargetObject() { + return GetWindowRect.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.GetWindowRect.Result getTargetObjectAsPbMessage() { + return qlua.rpc.GetWindowRect.Result.newBuilder().build(); + } + } +} From 742f64dd42fa9244e7b15888072e77afa66060d1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:50:45 +0300 Subject: [PATCH 476/549] Added test for PrintDbgStr.Args protobuf serialization. --- .../protobuf/PrintDbgStrArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerdeTest.java new file mode 100644 index 0000000..3ae69a0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.PrintDbgStr; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class PrintDbgStrArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String S = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return PrintDbgStrArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.PrintDbgStr.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.PrintDbgStr.Request.newBuilder() + .setS(S) + .build(); + } + + @NotNull + @Override + public PrintDbgStr.Args getTargetObject() { + return new PrintDbgStr.Args(S); + } +} From afe29440aa9069b29f75d868c9e0efee4e0755a8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:50:58 +0300 Subject: [PATCH 477/549] Added test for RGB.Args protobuf serialization. --- .../serde/protobuf/RGBArgsPbSerdeTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerdeTest.java new file mode 100644 index 0000000..edf125b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerdeTest.java @@ -0,0 +1,38 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class RGBArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int RED = 1; + private static final int GREEN = 2; + private static final int BLUE = 3; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return RGBArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.RGB.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.RGB.Request.newBuilder() + .setRed(RED) + .setGreen(GREEN) + .setBlue(BLUE) + .build(); + } + + @NotNull + @Override + public RGB.Args getTargetObject() { + return RGB.Args.builder() + .red(RED) + .green(GREEN) + .blue(BLUE) + .build(); + } +} From 0f681cf97f8693667540d1c3ffb6e84b5086dfa0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 20:51:10 +0300 Subject: [PATCH 478/549] Added test for RGB.Result protobuf deserialization. --- .../serde/protobuf/RGBResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbSerdeTest.java new file mode 100644 index 0000000..6c1de30 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.RGB; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class RGBResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return RGBResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public RGB.Result getTargetObject() { + return new RGB.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.RGB.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.RGB.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 68df8bec863741ed398a0c34c98aa5abc89bf4be Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:17:38 +0300 Subject: [PATCH 479/549] Fixed the names of the protobuf deserialization tests for Clear.Result. --- .../quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java index 47d307b..029c0d1 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearResultPbSerdeTest.java @@ -9,7 +9,7 @@ @RunWith(Enclosed.class) public class ClearResultPbSerdeTest { - public static class TrueParamRequestResultPbDeserializationTest + public static class TrueClearResultPbDeserializationTest extends AbstractPbDeserializationTest { private static final boolean TRUE = true; @@ -37,7 +37,7 @@ public qlua.rpc.Clear.Result getTargetObjectAsPbMessage() { } } - public static class FalseParamRequestResultPbDeserializationTest + public static class FalseClearResultPbDeserializationTest extends AbstractPbDeserializationTest { private static final boolean FALSE = false; From 97afc541cc91e54ff24571b4e66100763542116b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:17:52 +0300 Subject: [PATCH 480/549] Added test for Highlight.Result protobuf deserialization. --- .../protobuf/HighlightResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java new file mode 100644 index 0000000..fb2f5a3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Highlight; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class HighlightResultPbSerdeTest { + + public static class TrueHighlightPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return HighlightResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Highlight.Result getTargetObject() { + return Highlight.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.Highlight.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.Highlight.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseHighlightResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return HighlightResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Highlight.Result getTargetObject() { + return Highlight.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.Highlight.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.Highlight.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From b6fdce461c9ff88b7ac1be96134254139eb26a52 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:20:28 +0300 Subject: [PATCH 481/549] Added test for InsertRow.Result protobuf deserialization. --- .../protobuf/InsertRowResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java new file mode 100644 index 0000000..fba36e8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.InsertRow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class InsertRowResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return InsertRowResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public InsertRow.Result getTargetObject() { + return new InsertRow.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.InsertRow.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.InsertRow.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 1a15f9a284b0194c32a3682636b48028457afb32 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:25:38 +0300 Subject: [PATCH 482/549] Added test for IsConnected.Result protobuf deserialization. --- .../IsConnectedResultPbSerdeTest.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java new file mode 100644 index 0000000..65ae47b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsConnectedResultPbSerdeTest.java @@ -0,0 +1,91 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsConnected; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsConnectedResultPbSerdeTest { + + private static final int ONE = 1; + private static final int TWO = 2; + private static final int OTHER = 42; + + // sanity check + static { + assert ONE == 1; + assert TWO == 2; + assert OTHER != 1 && OTHER != 2; + } + + public static class OneResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsConnectedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsConnected.Result getTargetObject() { + return IsConnected.Result.getInstance(ONE); + } + + @NotNull + @Override + public qlua.rpc.IsConnected.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsConnected.Result.newBuilder() + .setIsConnected(ONE) + .build(); + } + } + + public static class TwoResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsConnectedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsConnected.Result getTargetObject() { + return IsConnected.Result.getInstance(TWO); + } + + @NotNull + @Override + public qlua.rpc.IsConnected.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsConnected.Result.newBuilder() + .setIsConnected(TWO) + .build(); + } + } + + public static class OtherResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsConnectedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsConnected.Result getTargetObject() { + return IsConnected.Result.getInstance(OTHER); + } + + @NotNull + @Override + public qlua.rpc.IsConnected.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsConnected.Result.newBuilder() + .setIsConnected(OTHER) + .build(); + } + } +} From 2dbf6634f2fe54df520752c91655efceaa3c34a3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:29:33 +0300 Subject: [PATCH 483/549] Added test for IsSubscribedLevel2Quotes.Result protobuf deserialization. --- ...bscribedLevel2QuotesResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java new file mode 100644 index 0000000..a0d70c0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsSubscribedLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsSubscribedLevel2QuotesResultPbSerdeTest { + + public static class TrueIsSubscribedLevel2QuotesResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsSubscribedLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsSubscribedLevel2Quotes.Result getTargetObject() { + return IsSubscribedLevel2Quotes.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseIsSubscribedLevel2QuotesResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsSubscribedLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsSubscribedLevel2Quotes.Result getTargetObject() { + return IsSubscribedLevel2Quotes.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.IsSubscribedLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsSubscribedLevelIIQuotes.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 01fcb477b5c3989580c2ede23d3a15a9b951cd46 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Tue, 8 Jan 2019 22:35:57 +0300 Subject: [PATCH 484/549] Added test for IsWindowClosed.Result protobuf deserialization. --- .../IsWindowClosedResultPbSerdeTest.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java new file mode 100644 index 0000000..968994f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedResultPbSerdeTest.java @@ -0,0 +1,91 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.IsWindowClosed; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class IsWindowClosedResultPbSerdeTest { + + public static class TrueIsWindowClosedResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsWindowClosedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsWindowClosed.Result getTargetObject() { + return IsWindowClosed.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.IsWindowClosed.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsWindowClosed.Result.newBuilder() + .setValueWindowClosed(TRUE) + .build(); + } + } + + public static class FalseIsWindowClosedResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsWindowClosedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsWindowClosed.Result getTargetObject() { + return IsWindowClosed.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.IsWindowClosed.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsWindowClosed.Result.newBuilder() + .setValueWindowClosed(FALSE) + .build(); + } + } + + public static class ErrorIsWindowClosedResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return IsWindowClosedResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public IsWindowClosed.Result getTargetObject() { + return IsWindowClosed.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.IsWindowClosed.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.IsWindowClosed.Result.newBuilder() + .setNullWindowClosed(true) + .build(); + } + } +} From 1c118222ebf0a56a3854d8458b81362b059fcd49 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 18 Jan 2019 20:57:37 +0300 Subject: [PATCH 485/549] Changed the SearchItems.Result structure. --- .../lua/rpc/api/messages/SearchItems.java | 42 +++++++++++++------ .../SearchItemsResultPbDeserializer.java | 19 ++++++--- src/main/proto/qlua/rpc/SearchItems.proto | 6 ++- .../serde/json/SearchItemsJsonSerdeTests.java | 4 +- .../json/SearchItems/null.result.json | 4 +- 5 files changed, 51 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java index a5ccbe9..a719985 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/SearchItems.java @@ -6,7 +6,6 @@ import com.fasterxml.jackson.annotation.*; import com.google.common.base.MoreObjects; import lombok.*; -import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -106,11 +105,22 @@ public static class Result implements RpcResult { @JsonCreator public static Result getInstance(@JsonProperty(ITEMS_INDICES) final int[] items_indices) { - return isNullOrEmpty(items_indices) ? getNullOrEmptyInstance() : new Result(items_indices); + + if (items_indices == null) { + return getNullInstance(); + } else if (items_indices.length == 0) { + return getEmptyInstance(); + } + + return new Result(items_indices); + } + + public static Result getNullInstance() { + return InstanceHolder.NULL_INSTANCE; } - public static Result getNullOrEmptyInstance() { - return InstanceHolder.NULL_OR_EMPTY; + public static Result getEmptyInstance() { + return InstanceHolder.EMPTY_INSTANCE; } private Result(final int[] items_indices) { @@ -119,16 +129,22 @@ private Result(final int[] items_indices) { @Nullable public int[] getItemsIndices() { - return isNullOrEmpty(items_indices) ? null : items_indices.clone(); + + if (items_indices == null) { + return null; + } else if (items_indices.length == 0) { + return items_indices; + } + + return items_indices.clone(); } - public boolean isNullOrEmpty() { - return isNullOrEmpty(items_indices); + public boolean isNull() { + return items_indices == null; } - @Contract(value = "null -> true", pure = true) - private static boolean isNullOrEmpty(final int[] items_indices) { - return items_indices == null || items_indices.length == 0; + public boolean isEmpty() { + return items_indices != null && items_indices.length == 0; } @NotNull @@ -141,11 +157,13 @@ public String toString() { private static final class InstanceHolder { - private static final Result NULL_OR_EMPTY = new Result(null); + private static final Result NULL_INSTANCE = new Result(null); + private static final Result EMPTY_INSTANCE = new Result(new int[] {}); // sanity check static { - assert NULL_OR_EMPTY.isNullOrEmpty(); + assert NULL_INSTANCE.isNull(); + assert EMPTY_INSTANCE.isEmpty(); } } } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java index eddecdd..f01fd71 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbDeserializer.java @@ -21,10 +21,19 @@ public SearchItems.Result deserialize(final byte[] data) { @Override public SearchItems.Result convert(@NotNull final qlua.rpc.SearchItems.Result result) { - return SearchItems.Result.getInstance( - result.getItemsIndicesList().stream() - .mapToInt(Integer::intValue) - .toArray() - ); + if (result.getNullItemsIndices()) { + return SearchItems.Result.getNullInstance(); + } else { + + if ( result.getItemsIndicesList().isEmpty() ) { + return SearchItems.Result.getEmptyInstance(); + } + + return SearchItems.Result.getInstance( + result.getItemsIndicesList().stream() + .mapToInt(Integer::intValue) + .toArray() + ); + } } } diff --git a/src/main/proto/qlua/rpc/SearchItems.proto b/src/main/proto/qlua/rpc/SearchItems.proto index d30e9cb..573cfef 100644 --- a/src/main/proto/qlua/rpc/SearchItems.proto +++ b/src/main/proto/qlua/rpc/SearchItems.proto @@ -30,8 +30,10 @@ message Request { } message Result { - repeated int32 items_indices = 1; + + bool null_items_indices = 1; + repeated int32 items_indices = 2; //NB: Недоработка QLUA: пустой список индексов возвращается в виде nil, и ошибка при работе функции проверки элемента (fn) //тоже приводит к возврату nil, так что непонятно, не нашли ли мы удовлетворяющих условию элементов или написали ошибочную - //функцию проверки условия. Для определённости, в обоих случаях будем возвращать пустой список. + //функцию проверки условия. } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java index 24e9f85..f1c5f38 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/SearchItemsJsonSerdeTests.java @@ -87,7 +87,7 @@ public String getJsonPath() { @Override public SearchItems.Result getExpectedObject() { - return SearchItems.Result.getNullOrEmptyInstance(); + return SearchItems.Result.getNullInstance(); } } @@ -100,7 +100,7 @@ public String getJsonPath() { @Override public SearchItems.Result getExpectedObject() { - return SearchItems.Result.getNullOrEmptyInstance(); + return SearchItems.Result.getEmptyInstance(); } } } diff --git a/src/test/resources/json/SearchItems/null.result.json b/src/test/resources/json/SearchItems/null.result.json index 7c6bd60..9e26dfe 100644 --- a/src/test/resources/json/SearchItems/null.result.json +++ b/src/test/resources/json/SearchItems/null.result.json @@ -1,3 +1 @@ -{ - "items_indices": null -} \ No newline at end of file +{} \ No newline at end of file From 507b2905f7b9cba5fc596ee58fa83beb86b4e9fb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 18 Jan 2019 20:58:13 +0300 Subject: [PATCH 486/549] Added test for SearchItems.Args protobuf serialization. --- .../protobuf/SearchItemsArgsPbSerdeTest.java | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerdeTest.java new file mode 100644 index 0000000..ccb9925 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsArgsPbSerdeTest.java @@ -0,0 +1,126 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SearchItemsArgsPbSerdeTest { + + public static class FullSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TABLE_NAME = "1"; + private static final int START_INDEX = 2; + private static final int END_INDEX = 3; + private static final String FN_DEF = "4"; + private static final String PARAMS = "5"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SearchItemsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SearchItems.Request.newBuilder() + .setTableName(TABLE_NAME) + .setStartIndex(START_INDEX) + .setValueEndIndex(END_INDEX) + .setFnDef(FN_DEF) + .setParams(PARAMS) + .build(); + } + + @NotNull + @Override + public SearchItems.Args getTargetObject() { + + return SearchItems.Args.builder() + .tableName(TABLE_NAME) + .startIndex(START_INDEX) + .endIndex(END_INDEX) + .fnDef(FN_DEF) + .params(PARAMS) + .build(); + } + } + + public static class WithoutEndIndexSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TABLE_NAME = "1"; + private static final int START_INDEX = 2; + private static final String FN_DEF = "4"; + private static final String PARAMS = "5"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SearchItemsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SearchItems.Request.newBuilder() + .setTableName(TABLE_NAME) + .setStartIndex(START_INDEX) + .setNullEndIndex(true) + .setFnDef(FN_DEF) + .setParams(PARAMS) + .build(); + } + + @NotNull + @Override + public SearchItems.Args getTargetObject() { + + return SearchItems.Args.builder() + .tableName(TABLE_NAME) + .startIndex(START_INDEX) + .fnDef(FN_DEF) + .params(PARAMS) + .build(); + } + } + + public static class WithoutParamsSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String TABLE_NAME = "1"; + private static final int START_INDEX = 2; + private static final int END_INDEX = 3; + private static final String FN_DEF = "4"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SearchItemsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SearchItems.Request.newBuilder() + .setTableName(TABLE_NAME) + .setStartIndex(START_INDEX) + .setValueEndIndex(END_INDEX) + .setFnDef(FN_DEF) + .build(); + } + + @NotNull + @Override + public SearchItems.Args getTargetObject() { + + return SearchItems.Args.builder() + .tableName(TABLE_NAME) + .startIndex(START_INDEX) + .endIndex(END_INDEX) + .fnDef(FN_DEF) + .build(); + } + } +} From 9d24f968c700a48b181249c07ac709e27c3aa2db Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 18 Jan 2019 20:58:25 +0300 Subject: [PATCH 487/549] Added test for SearchItems.Result protobuf deserialization. --- .../SearchItemsResultPbSerdeTest.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbSerdeTest.java new file mode 100644 index 0000000..5f0e7c7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SearchItemsResultPbSerdeTest.java @@ -0,0 +1,91 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SearchItems; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.ArrayList; +import java.util.List; + +@RunWith(Enclosed.class) +public class SearchItemsResultPbSerdeTest { + + public static class SomeIndicesSearchItemsResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int[] INDICES = {1, 2, 3, 4, 5, 9, 8, 7, 6}; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SearchItemsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SearchItems.Result getTargetObject() { + return SearchItems.Result.getInstance(INDICES); + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Result getTargetObjectAsPbMessage() { + + final List indicesList = new ArrayList<>(INDICES.length); + for (int i : INDICES) { + indicesList.add(i); + } + + return qlua.rpc.SearchItems.Result.newBuilder() + .addAllItemsIndices(indicesList) + .build(); + } + } + + public static class EmptyIndicesSearchItemsResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int[] INDICES = {}; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SearchItemsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SearchItems.Result getTargetObject() { + return SearchItems.Result.getEmptyInstance(); + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SearchItems.Result.newBuilder() + .build(); + } + } + + public static class ErrorSearchItemsResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SearchItemsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SearchItems.Result getTargetObject() { + return SearchItems.Result.getNullInstance(); + } + + @NotNull + @Override + public qlua.rpc.SearchItems.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SearchItems.Result.newBuilder() + .setNullItemsIndices(true) + .build(); + } + } +} From 0853c2da60076c865fca2151e6f77a3dbd9c9012 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 19 Jan 2019 01:14:59 +0300 Subject: [PATCH 488/549] Added test for SendTransaction.Args protobuf serialization. --- .../SendTransactionArgsPbSerdeTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java new file mode 100644 index 0000000..754e66b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.common.collect.ImmutableMap; +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +public class SendTransactionArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final Map TRANSACTION = createTransaction(); + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SendTransactionArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SendTransaction.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SendTransaction.Request.newBuilder() + .putAllTransaction(TRANSACTION) + .build(); + } + + @NotNull + @Override + public SendTransaction.Args getTargetObject() { + return new SendTransaction.Args(TRANSACTION); + } + + private static Map createTransaction() { + + return ImmutableMap.builder() + .put("k1", "v1") + .put("k2", "v2") + .put("k3", "v3") + .put("k4", "v4") + .put("k5", "v5") + .build(); + } +} From cfb1ce6ff67bba6e0815d07b201c74b09e603831 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 19 Jan 2019 01:15:15 +0300 Subject: [PATCH 489/549] Added test for SendTransaction.Result protobuf deserialization. --- .../SendTransactionResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbSerdeTest.java new file mode 100644 index 0000000..3fefa73 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SendTransaction; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class SendTransactionResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String RESULT = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SendTransactionResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SendTransaction.Result getTargetObject() { + return new SendTransaction.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.SendTransaction.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SendTransaction.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 6d44969dc3355669367d38e0e87d289a9a091c6e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:44:27 +0300 Subject: [PATCH 490/549] Added test for SetCell.Args protobuf serialization. --- .../protobuf/SetCellArgsPbSerdeTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java new file mode 100644 index 0000000..b84e0cb --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetCellArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int KEY = 2; + private static final int CODE = 3; + private static final String TEXT = "4"; + private static final double VALUE = 5.123; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetCellArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetCell.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetCell.Request.newBuilder() + .setTId(T_ID) + .setKey(KEY) + .setCode(CODE) + .setText(TEXT) + .setValue(VALUE) + .build(); + } + + @NotNull + @Override + public SetCell.Args getTargetObject() { + return SetCell.Args.builder() + .tId(T_ID) + .key(KEY) + .code(CODE) + .text(TEXT) + .value(VALUE) + .build(); + } +} From 3d9d8d521628c06613d6ebe31050f8b54bf490db Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:44:41 +0300 Subject: [PATCH 491/549] Added test for SetCell.Result protobuf deserialization. --- .../protobuf/SetCellResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbSerdeTest.java new file mode 100644 index 0000000..3fceb0e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetCell; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetCellResultPbSerdeTest { + + public static class TrueSetCellResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetCellResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetCell.Result getTargetObject() { + return SetCell.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SetCell.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetCell.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetCellResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetCellResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetCell.Result getTargetObject() { + return SetCell.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SetCell.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetCell.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From e7036067924a48461fceacdf4432b24d7a8057a5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:49:50 +0300 Subject: [PATCH 492/549] Added test for SetColor.Args protobuf serialization. --- .../protobuf/SetColorArgsPbSerdeTest.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerdeTest.java new file mode 100644 index 0000000..cb33ccc --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerdeTest.java @@ -0,0 +1,50 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetColorArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int ROW = 2; + private static final int COL = 3; + private static final int B_COLOR = 4; + private static final int F_COLOR = 5; + private static final int SEL_B_COLOR = 6; + private static final int SEL_F_COLOR = 7; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetColorArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetColor.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetColor.Request.newBuilder() + .setTId(T_ID) + .setRow(ROW) + .setCol(COL) + .setBColor(B_COLOR) + .setFColor(F_COLOR) + .setSelBColor(SEL_B_COLOR) + .setSelFColor(SEL_F_COLOR) + .build(); + } + + @NotNull + @Override + public SetColor.Args getTargetObject() { + return SetColor.Args.builder() + .tId(T_ID) + .row(ROW) + .col(COL) + .bColor(B_COLOR) + .fColor(F_COLOR) + .selBColor(SEL_B_COLOR) + .selFColor(SEL_F_COLOR) + .build(); + } +} From 22714ca5c9c84105fe4ee889cbd3ce92a48a0e79 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:50:03 +0300 Subject: [PATCH 493/549] Added test for SetColor.Result protobuf deserialization. --- .../protobuf/SetColorResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbSerdeTest.java new file mode 100644 index 0000000..ea1b6f9 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetColor; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetColorResultPbSerdeTest { + + public static class TrueSetColorResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetColorResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetColor.Result getTargetObject() { + return SetColor.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SetColor.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetColor.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetColorResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetColorResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetColor.Result getTargetObject() { + return SetColor.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SetColor.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetColor.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 5839b86040e62dbe80d0aac152b323edd8baa1b0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:54:32 +0300 Subject: [PATCH 494/549] Added test for SetLabelParams.Args protobuf serialization. --- .../SetLabelParamsArgsPbSerdeTest.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerdeTest.java new file mode 100644 index 0000000..145830d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerdeTest.java @@ -0,0 +1,41 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import com.google.common.collect.ImmutableMap; +import org.jetbrains.annotations.NotNull; + +import java.util.Map; + +public class SetLabelParamsArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CHART_TAG = "1"; + private static final int LABEL_ID = 2; + private static final Map LABEL_PARAMS = ImmutableMap.of( + "key_1", "value_1", + "key_2", "value_2", + "key_3", "value_3" + ); + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetLabelParamsArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetLabelParams.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetLabelParams.Request.newBuilder() + .setChartTag(CHART_TAG) + .setLabelId(LABEL_ID) + .putAllLabelParams(LABEL_PARAMS) + .build(); + } + + @NotNull + @Override + public SetLabelParams.Args getTargetObject() { + return new SetLabelParams.Args(CHART_TAG, LABEL_ID, LABEL_PARAMS); + } +} From 159f7762db8cdb8cbc4c4033f9b4660373d45a22 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 25 Jan 2019 23:54:45 +0300 Subject: [PATCH 495/549] Added test for SetLabelParams.Result protobuf deserialization. --- .../SetLabelParamsResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbSerdeTest.java new file mode 100644 index 0000000..8c3d81f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetLabelParams; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetLabelParamsResultPbSerdeTest { + + public static class TrueSetLabelParamsResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetLabelParamsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetLabelParams.Result getTargetObject() { + return SetLabelParams.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SetLabelParams.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetLabelParams.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetLabelParamsResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetLabelParamsResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetLabelParams.Result getTargetObject() { + return SetLabelParams.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SetLabelParams.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetLabelParams.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 69c5fb2aafd2c6427d869371d5ba72166c2235a5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 00:01:44 +0300 Subject: [PATCH 496/549] Added test for SetSelectedRow.Args protobuf serialization. --- .../SetSelectedRowArgsPbSerdeTest.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerdeTest.java new file mode 100644 index 0000000..7752e7f --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerdeTest.java @@ -0,0 +1,35 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetSelectedRowArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int TABLE_ID = 1; + private static final int ROW = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetSelectedRowArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetSelectedRow.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetSelectedRow.Request.newBuilder() + .setTableId(TABLE_ID) + .setRow(ROW) + .build(); + } + + @NotNull + @Override + public SetSelectedRow.Args getTargetObject() { + return SetSelectedRow.Args.builder() + .tableId(TABLE_ID) + .row(ROW) + .build(); + } +} From 4e21d636ef4d1a0ce9c6ff1d5f41c787a9db4ae1 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 00:02:00 +0300 Subject: [PATCH 497/549] Added test for SetSelectedRow.Result protobuf deserialization. --- .../SetSelectedRowResultPbSerdeTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbSerdeTest.java new file mode 100644 index 0000000..e8a716d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetSelectedRow; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetSelectedRowResultPbSerdeTest { + + private static final int SOMETHING_THAT_OK = 42; + private static final int NOT_OK = -1; + + // sanity check + static { + assert NOT_OK != SOMETHING_THAT_OK; + } + + public static class OkSetSelectedRowResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetSelectedRowResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetSelectedRow.Result getTargetObject() { + return SetSelectedRow.Result.getInstance(SOMETHING_THAT_OK); + } + + @NotNull + @Override + public qlua.rpc.SetSelectedRow.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetSelectedRow.Result.newBuilder() + .setResult(SOMETHING_THAT_OK) + .build(); + } + } + + public static class NotOkSetSelectedRowResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetSelectedRowResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetSelectedRow.Result getTargetObject() { + return SetSelectedRow.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.SetSelectedRow.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetSelectedRow.Result.newBuilder() + .setResult(NOT_OK) + .build(); + } + } +} From 0f17cfa42935af3c7dff54d787fd840e5d5333fe Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 00:07:17 +0300 Subject: [PATCH 498/549] Added test for SetTableNotificationCallback.Args protobuf serialization. --- ...leNotificationCallbackArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerdeTest.java new file mode 100644 index 0000000..dfca0c1 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetTableNotificationCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final String F_CB_DEF = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetTableNotificationCallbackArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetTableNotificationCallback.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetTableNotificationCallback.Request.newBuilder() + .setTId(T_ID) + .setFCbDef(F_CB_DEF) + .build(); + } + + @NotNull + @Override + public SetTableNotificationCallback.Args getTargetObject() { + return new SetTableNotificationCallback.Args(T_ID, F_CB_DEF); + } +} From 66acd9264a8f24ddb861a5905ce20b5dd7a7504d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 00:07:28 +0300 Subject: [PATCH 499/549] Added test for SetTableNotificationCallback.Result protobuf deserialization. --- ...NotificationCallbackResultPbSerdeTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbSerdeTest.java new file mode 100644 index 0000000..33ca2ad --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetTableNotificationCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetTableNotificationCallbackResultPbSerdeTest { + + private static final int OK = 1; + private static final int NOT_OK = 0; + + // sanity check + static { + assert NOT_OK != OK; + } + + public static class OkSetTableNotificationCallbackResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetTableNotificationCallbackResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetTableNotificationCallback.Result getTargetObject() { + return SetTableNotificationCallback.Result.getOkInstance(); + } + + @NotNull + @Override + public qlua.rpc.SetTableNotificationCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetTableNotificationCallback.Result.newBuilder() + .setResult(OK) + .build(); + } + } + + public static class NotOkSetTableNotificationCallbackResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetTableNotificationCallbackResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetTableNotificationCallback.Result getTargetObject() { + return SetTableNotificationCallback.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.SetTableNotificationCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetTableNotificationCallback.Result.newBuilder() + .setResult(NOT_OK) + .build(); + } + } +} From 06780842934463e464631704eccbfa0d2ddc138e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:36:51 +0300 Subject: [PATCH 500/549] Added test for SetWindowCaption.Args protobuf serialization. --- .../SetWindowCaptionArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java new file mode 100644 index 0000000..d7fdfe7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final String STR = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetWindowCaptionArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetWindowCaption.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowCaption.Request.newBuilder() + .setTId(T_ID) + .setStr(STR) + .build(); + } + + @NotNull + @Override + public SetWindowCaption.Args getTargetObject() { + return new SetWindowCaption.Args(T_ID, STR); + } +} From 27914a82c9e9940c8354fd442d1c67427ec14e52 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:37:04 +0300 Subject: [PATCH 501/549] Added test for SetWindowCaption.Result protobuf deserialization. --- .../SetWindowCaptionResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbSerdeTest.java new file mode 100644 index 0000000..fa5a834 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowCaption; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetWindowCaptionResultPbSerdeTest { + + public static class TrueSetWindowCaptionResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetWindowCaptionResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetWindowCaption.Result getTargetObject() { + return SetWindowCaption.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SetWindowCaption.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowCaption.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetWindowCaptionResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetWindowCaptionResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetWindowCaption.Result getTargetObject() { + return SetWindowCaption.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SetWindowCaption.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowCaption.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From c5e8084af644b70a0af118af54f70d36e301d4ea Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:41:33 +0300 Subject: [PATCH 502/549] Added test for SetWindowPos.Args protobuf serialization. --- .../protobuf/SetWindowPosArgsPbSerdeTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java new file mode 100644 index 0000000..235e464 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java @@ -0,0 +1,44 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SetWindowPosArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int T_ID = 1; + private static final int X = 2; + private static final int Y = 3; + private static final int DX = 4; + private static final int DY = 5; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SetWindowPosArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SetWindowPos.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowPos.Request.newBuilder() + .setTId(T_ID) + .setX(X) + .setY(Y) + .setDx(DX) + .setDy(DY) + .build(); + } + + @NotNull + @Override + public SetWindowPos.Args getTargetObject() { + return SetWindowPos.Args.builder() + .tId(T_ID) + .x(X) + .y(Y) + .dx(DX) + .dy(DY) + .build(); + } +} From ad8cb69957c7e314b53f2417628ca90321a95fb3 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:41:46 +0300 Subject: [PATCH 503/549] Added test for SetWindowPos.Result protobuf deserialization. --- .../SetWindowPosResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbSerdeTest.java new file mode 100644 index 0000000..46ba5fe --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SetWindowPos; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SetWindowPosResultPbSerdeTest { + + public static class TrueSetWindowPosResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetWindowPosResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetWindowPos.Result getTargetObject() { + return SetWindowPos.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SetWindowPos.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowPos.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetWindowPosResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SetWindowPosResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetWindowPos.Result getTargetObject() { + return SetWindowPos.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SetWindowPos.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SetWindowPos.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 4453dea33d76084980b3ef5688f668c41072762e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:48:54 +0300 Subject: [PATCH 504/549] Added test for Sleep.Args protobuf serialization. --- .../serde/protobuf/SleepArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerdeTest.java new file mode 100644 index 0000000..e8d408d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SleepArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int TIME = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SleepArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.Sleep.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.Sleep.Request.newBuilder() + .setTime(TIME) + .build(); + } + + @NotNull + @Override + public Sleep.Args getTargetObject() { + return new Sleep.Args(TIME); + } +} From 2fe4203aac11249172412a371b8f0a0c50104e59 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:49:07 +0300 Subject: [PATCH 505/549] Added test for Sleep.Result protobuf deserialization. --- .../protobuf/SleepResultPbSerdeTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbSerdeTest.java new file mode 100644 index 0000000..5ed09d8 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.Sleep; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SleepResultPbSerdeTest { + + private static final Integer OK = 12345; + private static final Integer NOT_OK = null; + + // sanity check + static { + assert OK != NOT_OK; + } + + public static class OkSleepResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SleepResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Sleep.Result getTargetObject() { + return Sleep.Result.getInstance(OK); + } + + @NotNull + @Override + public qlua.rpc.Sleep.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.Sleep.Result.newBuilder() + .setValueResult(OK) + .build(); + } + } + + public static class ErrorSleepResultPbSerdeTest extends AbstractPbDeserializationTest { + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SleepResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Sleep.Result getTargetObject() { + return Sleep.Result.getErrorInstance(); + } + + @NotNull + @Override + public qlua.rpc.Sleep.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.Sleep.Result.newBuilder() + .setNullResult(true) + .build(); + } + } +} From 19bedfacbe53150f5b8973bf59c9424b8027787b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:54:28 +0300 Subject: [PATCH 506/549] Added test for SubscribeLevel2Quotes.Args protobuf serialization. --- .../SubscribeLevel2QuotesArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerdeTest.java new file mode 100644 index 0000000..7307d99 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class SubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return SubscribeLevel2QuotesArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.SubscribeLevelIIQuotes.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.SubscribeLevelIIQuotes.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @NotNull + @Override + public SubscribeLevel2Quotes.Args getTargetObject() { + + return SubscribeLevel2Quotes.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} From b6d2e4ebcc3954d1fb737ae6d9fd54e850fabed5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:54:39 +0300 Subject: [PATCH 507/549] Added test for SubscribeLevel2Quotes.Result protobuf deserialization. --- ...ubscribeLevel2QuotesResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java new file mode 100644 index 0000000..8263bd7 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.SubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class SubscribeLevel2QuotesResultPbSerdeTest { + + public static class TrueSubscribeLevel2QuotesResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SubscribeLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SubscribeLevel2Quotes.Result getTargetObject() { + return SubscribeLevel2Quotes.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.SubscribeLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SubscribeLevelIIQuotes.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseSetWindowPosResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SubscribeLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SubscribeLevel2Quotes.Result getTargetObject() { + return SubscribeLevel2Quotes.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.SubscribeLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.SubscribeLevelIIQuotes.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From b76bf4cd03393d458a5ec8a6c6ee5d73fe5271fd Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:58:07 +0300 Subject: [PATCH 508/549] Fixed the test name. --- .../serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java index 8263bd7..4ae8cf4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesResultPbSerdeTest.java @@ -37,7 +37,7 @@ public qlua.rpc.SubscribeLevelIIQuotes.Result getTargetObjectAsPbMessage() { } } - public static class FalseSetWindowPosResultPbDeserializationTest + public static class FalseSubscribeLevel2QuotesResultPbDeserializationTest extends AbstractPbDeserializationTest { private static final boolean FALSE = false; From df8cba08590fbc2abe7a282038b2862af52808c5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:58:21 +0300 Subject: [PATCH 509/549] Added test for UnsubscribeLevel2Quotes.Args protobuf serialization. --- ...nsubscribeLevel2QuotesArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java new file mode 100644 index 0000000..4571ba2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class UnsubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return UnsubscribeLevel2QuotesArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.UnsubscribeLevelIIQuotes.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.UnsubscribeLevelIIQuotes.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .build(); + } + + @NotNull + @Override + public UnsubscribeLevel2Quotes.Args getTargetObject() { + + return UnsubscribeLevel2Quotes.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .build(); + } +} From 6d913b8d38a2aa1b318616a2175dcb54dea4cb84 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 22:58:39 +0300 Subject: [PATCH 510/549] Added test for UnsubscribeLevel2Quotes.Result protobuf deserialization. --- ...ubscribeLevel2QuotesResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbSerdeTest.java new file mode 100644 index 0000000..6c4baf6 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.UnsubscribeLevel2Quotes; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class UnsubscribeLevel2QuotesResultPbSerdeTest { + + public static class TrueUnsubscribeLevel2QuotesResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return UnsubscribeLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public UnsubscribeLevel2Quotes.Result getTargetObject() { + return UnsubscribeLevel2Quotes.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.UnsubscribeLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.UnsubscribeLevelIIQuotes.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseUnsubscribeLevel2QuotesResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return UnsubscribeLevel2QuotesResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public UnsubscribeLevel2Quotes.Result getTargetObject() { + return UnsubscribeLevel2Quotes.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.UnsubscribeLevelIIQuotes.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.UnsubscribeLevelIIQuotes.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From cdb2128a56683c491fe7711ca02257ee7a4e7f4b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 23:09:43 +0300 Subject: [PATCH 511/549] Added test for C.Args protobuf serialization. --- .../protobuf/DatasourceCArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCArgsPbSerdeTest.java new file mode 100644 index 0000000..2c32098 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceCArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsCArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.C.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.C.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public C.Args getTargetObject() { + return new C.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From 9e08809e4c61566884bb5704ccb4eda43180b3f4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sat, 26 Jan 2019 23:09:56 +0300 Subject: [PATCH 512/549] Added test for C.Result protobuf deserialization. --- .../DatasourceCResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCResultPbSerdeTest.java new file mode 100644 index 0000000..7a7e2e5 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.C; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceCResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String VALUE = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsCResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public C.Result getTargetObject() { + return new C.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.C.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.C.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From f6a3bd76b9ed92345a766305b61edcc28884d7b5 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:25:36 +0300 Subject: [PATCH 513/549] Added test for H.Args protobuf serialization. --- .../protobuf/DatasourceHArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java new file mode 100644 index 0000000..544e685 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceHArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsHArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.H.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.H.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public H.Args getTargetObject() { + return new H.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From d57f2adfe8c0d9f8cb2dcea2af7fb9f791b6bac8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:25:50 +0300 Subject: [PATCH 514/549] Added test for H.Result protobuf deserialization. --- .../DatasourceHResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHResultPbSerdeTest.java new file mode 100644 index 0000000..52e5bfd --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.H; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceHResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String VALUE = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsHResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public H.Result getTargetObject() { + return new H.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.H.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.H.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From bcf66439aa5d9ccca21cca70dcf1ddbc21daebab Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:28:19 +0300 Subject: [PATCH 515/549] Added test for O.Args protobuf serialization. --- .../protobuf/DatasourceOArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOArgsPbSerdeTest.java new file mode 100644 index 0000000..03d4244 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceOArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsOArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.O.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.O.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public O.Args getTargetObject() { + return new O.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From aeea836cdb2770fefda1286ccd0c5bdf1c53ec7b Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:28:32 +0300 Subject: [PATCH 516/549] Added test for O.Result protobuf deserialization. --- .../DatasourceOResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOResultPbSerdeTest.java new file mode 100644 index 0000000..a6c93a0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceOResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.O; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceOResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String VALUE = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsOResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public O.Result getTargetObject() { + return new O.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.O.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.O.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From 644963529c8259c8550a5f9e1e303b2481ac7aaa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:30:26 +0300 Subject: [PATCH 517/549] Added test for L.Args protobuf serialization. --- .../protobuf/DatasourceLArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLArgsPbSerdeTest.java new file mode 100644 index 0000000..adb6e1b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceLArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsLArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.L.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.L.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public L.Args getTargetObject() { + return new L.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From 6f5e55d88072593e4658ebffc9417bf93a35eb81 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:30:39 +0300 Subject: [PATCH 518/549] Added test for L.Result protobuf deserialization. --- .../DatasourceLResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLResultPbSerdeTest.java new file mode 100644 index 0000000..006451e --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceLResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.L; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceLResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String VALUE = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsLResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public L.Result getTargetObject() { + return new L.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.L.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.L.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From 66c043bbe31f5ea7e8bf8a9bd22329d194f9dc32 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:32:25 +0300 Subject: [PATCH 519/549] Added test for V.Args protobuf serialization. --- .../protobuf/DatasourceVArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVArgsPbSerdeTest.java new file mode 100644 index 0000000..0a4e6be --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceVArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsVArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.V.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.V.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public V.Args getTargetObject() { + return new V.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From 120d85b06842772487edbbd59acf403e334da303 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:32:38 +0300 Subject: [PATCH 520/549] Added test for V.Result protobuf deserialization. --- .../DatasourceVResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVResultPbSerdeTest.java new file mode 100644 index 0000000..0725814 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceVResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.V; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceVResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String VALUE = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsVResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public V.Result getTargetObject() { + return new V.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.V.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.V.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From a60f7431f0cbab6603c3fbaec16d580314ab47eb Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:44:30 +0300 Subject: [PATCH 521/549] Made datasource.T.Result creation via a constructor instead of a builder. --- .../enfernuz/quik/lua/rpc/api/messages/datasource/T.java | 3 +-- .../lua/rpc/serde/protobuf/DsTResultPbDeserializer.java | 6 +----- .../quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java | 4 +--- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java index 1d26ad2..35acaa7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/api/messages/datasource/T.java @@ -103,8 +103,7 @@ public static class Result implements RpcResult { DataSourceTime time; @JsonCreator - @Builder - private Result(@JsonProperty(value = TIME, required = true) @NonNull @NotNull final DataSourceTime time) { + public Result(@JsonProperty(value = TIME, required = true) @NonNull @NotNull final DataSourceTime time) { this.time = time; } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java index f3f4866..a192cb1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTResultPbDeserializer.java @@ -22,10 +22,6 @@ public T.Result deserialize(@NotNull final byte[] data) { @NotNull @Override public T.Result convert(@NotNull final qlua.rpc.datasource.T.Result result) { - - return T.Result.builder() - .time( convertFromDataSourceTime(result.getTime()) ) - .build(); - + return new T.Result( convertFromDataSourceTime(result.getTime()) ); } } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java index 77e8ea0..419f446 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/json/DatasourceTJsonSerdeTests.java @@ -43,9 +43,7 @@ public T.Result getExpectedObject() { .count(9) .build(); - return T.Result.builder() - .time(time) - .build(); + return new T.Result(time); } } } From a66be72ff02d31ae5370e9e1b98ebc4dbdf137a8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:44:49 +0300 Subject: [PATCH 522/549] Added test for datasource.T.Args protobuf serialization. --- .../protobuf/DatasourceTArgsPbSerdeTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTArgsPbSerdeTest.java new file mode 100644 index 0000000..be2a93d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTArgsPbSerdeTest.java @@ -0,0 +1,32 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceTArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final int CANDLE_INDEX = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsTArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.T.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.T.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setCandleIndex(CANDLE_INDEX) + .build(); + } + + @NotNull + @Override + public T.Args getTargetObject() { + return new T.Args(DATASOURCE_UUID, CANDLE_INDEX); + } +} From b7122f82c82a941f07aa8f636d58841a7b99fe0d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:45:09 +0300 Subject: [PATCH 523/549] Added test for datasource.T.Result protobuf deserialization. --- .../DatasourceTResultPbSerdeTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTResultPbSerdeTest.java new file mode 100644 index 0000000..30f8167 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceTResultPbSerdeTest.java @@ -0,0 +1,65 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.T; +import com.enfernuz.quik.lua.rpc.api.structures.DataSourceTime; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceTResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int YEAR = 1; + private static final int MONTH = 2; + private static final int DAY = 3; + private static final int WEEK_DAY = 4; + private static final int HOUR = 5; + private static final int MIN = 6; + private static final int SEC = 7; + private static final int MS = 8; + private static final int COUNT = 9; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsTResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public T.Result getTargetObject() { + + final DataSourceTime time = DataSourceTime.builder() + .year(YEAR) + .month(MONTH) + .day(DAY) + .weekDay(WEEK_DAY) + .hour(HOUR) + .min(MIN) + .sec(SEC) + .ms(MS) + .count(COUNT) + .build(); + + return new T.Result(time); + } + + @NotNull + @Override + public qlua.rpc.datasource.T.Result getTargetObjectAsPbMessage() { + + qlua.structs.QluaStructures.DataSourceTime pbTime = + qlua.structs.QluaStructures.DataSourceTime.newBuilder() + .setYear(YEAR) + .setMonth(MONTH) + .setDay(DAY) + .setWeekDay(WEEK_DAY) + .setHour(HOUR) + .setMin(MIN) + .setSec(SEC) + .setMs(MS) + .setCount(COUNT) + .build(); + + return qlua.rpc.datasource.T.Result.newBuilder() + .setTime(pbTime) + .build(); + } +} From a73d7409f725c3825f820fef2247ab8a412cc31c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:48:54 +0300 Subject: [PATCH 524/549] Added test for datasource.Size.Args protobuf serialization. --- .../DatasourceSizeArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java new file mode 100644 index 0000000..18d2419 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceSizeArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsSizePbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.Size.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.Size.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .build(); + } + + @NotNull + @Override + public Size.Args getTargetObject() { + return new Size.Args(DATASOURCE_UUID); + } +} From 083edb7efb4dbaf30414d3faeba83d78708b1f71 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:49:09 +0300 Subject: [PATCH 525/549] Added test for datasource.Size.Result protobuf deserialization. --- .../DatasourceSizeResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeResultPbSerdeTest.java new file mode 100644 index 0000000..7086dd0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Size; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceSizeResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int VALUE = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsSizeResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Size.Result getTargetObject() { + return new Size.Result(VALUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.Size.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.Size.Result.newBuilder() + .setValue(VALUE) + .build(); + } +} From a0aa9aefc014da9f02108944a0ba62feeb913f97 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:53:45 +0300 Subject: [PATCH 526/549] Added test for datasource.Close.Args protobuf serialization. --- .../DatasourceCloseArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseArgsPbSerdeTest.java new file mode 100644 index 0000000..dc35fb0 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceCloseArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsClosePbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.Close.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.Close.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .build(); + } + + @NotNull + @Override + public Close.Args getTargetObject() { + return new Close.Args(DATASOURCE_UUID); + } +} From c3178b240d9535ea94b3d57c9a032e39b5e8acad Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:53:57 +0300 Subject: [PATCH 527/549] Added test for datasource.Close.Result protobuf deserialization. --- .../DatasourceCloseResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseResultPbSerdeTest.java new file mode 100644 index 0000000..131e943 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCloseResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.Close; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCloseResultPbSerdeTest { + + public static class TrueDatasourceCloseResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsClosePbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public Close.Result getTargetObject() { + return Close.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.Close.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.Close.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseDatasourceCloseResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsClosePbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public Close.Result getTargetObject() { + return Close.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.datasource.Close.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.Close.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 80f45eee94b1c051a529ceb63959cbc1009fd3c0 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:57:00 +0300 Subject: [PATCH 528/549] Added test for datasource.SetEmptyCallback.Args protobuf serialization. --- ...sourceSetEmptyCallbackArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackArgsPbSerdeTest.java new file mode 100644 index 0000000..6e85326 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceSetEmptyCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsSetEmptyCallbackPbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.SetEmptyCallback.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetEmptyCallback.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .build(); + } + + @NotNull + @Override + public SetEmptyCallback.Args getTargetObject() { + return new SetEmptyCallback.Args(DATASOURCE_UUID); + } +} From 4ac72088b5487e9cc74290c7a8fc7787608b0a76 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 19:57:13 +0300 Subject: [PATCH 529/549] Added test for datasource.SetEmptyCallback.Result protobuf deserialization. --- ...urceSetEmptyCallbackResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackResultPbSerdeTest.java new file mode 100644 index 0000000..9bcf70c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetEmptyCallbackResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetEmptyCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceSetEmptyCallbackResultPbSerdeTest { + + public static class TrueDatasourceSetEmptyCallbackResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsSetEmptyCallbackPbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetEmptyCallback.Result getTargetObject() { + return SetEmptyCallback.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetEmptyCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetEmptyCallback.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseDatasourceSetEmptyCallbackResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsSetEmptyCallbackPbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetEmptyCallback.Result getTargetObject() { + return SetEmptyCallback.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetEmptyCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetEmptyCallback.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 72ed3bcee6a2852f148eeaf029e4ac66237a99a7 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 20:06:35 +0300 Subject: [PATCH 530/549] Added test for datasource.SetUpdateCallback.Args protobuf serialization. --- ...ourceSetUpdateCallbackArgsPbSerdeTest.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java new file mode 100644 index 0000000..946c36a --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java @@ -0,0 +1,57 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class DatasourceSetUpdateCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final String DATASOURCE_UUID = "1"; + private static final String F_CB_DEF = "2"; + private static final boolean WATCHING_O = true; + private static final boolean WATCHING_H = true; + private static final boolean WATCHING_L = true; + private static final boolean WATCHING_C = true; + private static final boolean WATCHING_V = true; + private static final boolean WATCHING_T = true; + private static final boolean WATCHING_SIZE = true; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsSetUpdateCallbackPbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.SetUpdateCallback.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetUpdateCallback.Request.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setFCbDef(F_CB_DEF) + .setWatchingO(WATCHING_O) + .setWatchingH(WATCHING_H) + .setWatchingL(WATCHING_L) + .setWatchingC(WATCHING_C) + .setWatchingV(WATCHING_V) + .setWatchingT(WATCHING_T) + .setWatchingSize(WATCHING_SIZE) + .build(); + } + + @NotNull + @Override + public SetUpdateCallback.Args getTargetObject() { + + return SetUpdateCallback.Args.builder() + .datasourceUUID(DATASOURCE_UUID) + .fCbDef(F_CB_DEF) + .watchingO(WATCHING_O) + .watchingH(WATCHING_H) + .watchingL(WATCHING_L) + .watchingC(WATCHING_C) + .watchingV(WATCHING_V) + .watchingT(WATCHING_T) + .watchingSize(WATCHING_SIZE) + .build(); + } +} From 4481a876b0d43cf1a62e9927c2d6f3f26ae54f53 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 20:06:44 +0300 Subject: [PATCH 531/549] Added test for datasource.SetUpdateCallback.Result protobuf deserialization. --- ...rceSetUpdateCallbackResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackResultPbSerdeTest.java new file mode 100644 index 0000000..162184c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.SetUpdateCallback; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceSetUpdateCallbackResultPbSerdeTest { + + public static class TrueDatasourceSetUpdateCallbackResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsSetUpdateCallbackPbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetUpdateCallback.Result getTargetObject() { + return SetUpdateCallback.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetUpdateCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetUpdateCallback.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseDatasourceSetUpdateCallbackResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsSetUpdateCallbackPbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public SetUpdateCallback.Result getTargetObject() { + return SetUpdateCallback.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.datasource.SetUpdateCallback.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.SetUpdateCallback.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 57a8d0cb5c9243dccaffa733914d6256c1407570 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 20:22:35 +0300 Subject: [PATCH 532/549] Added test for datasource.CreateDataSource.Args protobuf serialization. --- ...sourceCreateDataSourceArgsPbSerdeTest.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java new file mode 100644 index 0000000..0534151 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java @@ -0,0 +1,80 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCreateDataSourceArgsPbSerdeTest { + + private static final String CLASS_CODE = "1"; + private static final String SEC_CODE = "2"; + private static final CreateDataSource.Interval INTERVAL = CreateDataSource.Interval.INTERVAL_H1; + private static final String PARAM = "4"; + + public static class FullArgsDatasourceCreateDataSourceArgsPbSerdeTest + extends AbstractPbSerializationTest { + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsCreateDataSourcePbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.CreateDataSource.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setInterval(qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H1) + .setParam(PARAM) + .build(); + } + + @NotNull + @Override + public CreateDataSource.Args getTargetObject() { + + return CreateDataSource.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .interval(INTERVAL) + .param(PARAM) + .build(); + } + } + + public static class WithoutParamArgDatasourceCreateDataSourceArgsPbSerdeTest + extends AbstractPbSerializationTest { + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return DsCreateDataSourcePbArgsSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.datasource.CreateDataSource.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + .setClassCode(CLASS_CODE) + .setSecCode(SEC_CODE) + .setInterval(qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H1) + .build(); + } + + @NotNull + @Override + public CreateDataSource.Args getTargetObject() { + + return CreateDataSource.Args.builder() + .classCode(CLASS_CODE) + .secCode(SEC_CODE) + .interval(INTERVAL) + .build(); + } + } +} From fed3ea0c54c85aff55faf5df27fb8b05d6f53525 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 20:22:47 +0300 Subject: [PATCH 533/549] Added test for datasource.CreateDataSource.Result protobuf deserialization. --- ...urceCreateDataSourceResultPbSerdeTest.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceResultPbSerdeTest.java new file mode 100644 index 0000000..849dfc2 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceResultPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.datasource.CreateDataSource; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class DatasourceCreateDataSourceResultPbSerdeTest { + + private static final boolean IS_ERROR = true; + private static final boolean IS_NOT_ERROR = false; + + // sanity check + static { + assert IS_ERROR == !IS_NOT_ERROR; + } + + public static class OkCreateDataSourceResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String DATASOURCE_UUID = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsCreateDataSourcePbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public CreateDataSource.Result getTargetObject() { + return CreateDataSource.Result.builder() + .datasourceUUID(DATASOURCE_UUID) + .error(IS_NOT_ERROR) + .build(); + } + + @NotNull + @Override + public qlua.rpc.datasource.CreateDataSource.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.CreateDataSource.Result.newBuilder() + .setDatasourceUuid(DATASOURCE_UUID) + .setIsError(IS_NOT_ERROR) + .build(); + } + } + + public static class ErrorCreateDataSourceResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String ERROR_DESC = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return DsCreateDataSourcePbResultDeserializer.INSTANCE; + } + + @NotNull + @Override + public CreateDataSource.Result getTargetObject() { + + return CreateDataSource.Result.builder() + .error(IS_ERROR) + .errorDesc(ERROR_DESC) + .build(); + } + + @NotNull + @Override + public qlua.rpc.datasource.CreateDataSource.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.datasource.CreateDataSource.Result.newBuilder() + .setIsError(IS_ERROR) + .setErrorDesc(ERROR_DESC) + .build(); + } + } +} From ca2746afac1e720ea481842e5a4beb7c0ca4131c Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 22:57:51 +0300 Subject: [PATCH 534/549] Added test for bit.BAnd.Args protobuf serialization. --- .../protobuf/BitBAndArgsPbSerdeTest.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndArgsPbSerdeTest.java new file mode 100644 index 0000000..b32e9b3 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndArgsPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Arrays; + +@RunWith(Enclosed.class) +public class BitBAndArgsPbSerdeTest { + + public static class FullArgsBitBAndArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + private static final int[] XI = new int[] {3, 4, 5}; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BAndArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Band.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Band.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .addAllXi( Arrays.asList(3, 4, 5) ) + .build(); + } + + @NotNull + @Override + public BAnd.Args getTargetObject() { + return BAnd.Args.builder() + .x1(X1) + .x2(X2) + .xi(XI) + .build(); + } + } + + public static class WithoutXiBitBAndArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BAndArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Band.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Band.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .build(); + } + + @NotNull + @Override + public BAnd.Args getTargetObject() { + return BAnd.Args.builder() + .x1(X1) + .x2(X2) + .build(); + } + } +} From 51b9fc6a86c887e3f6df1c25a91588407e012b54 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 22:58:05 +0300 Subject: [PATCH 535/549] Added test for bit.BAnd.Result protobuf deserialization. --- .../protobuf/BitBAndResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndResultPbSerdeTest.java new file mode 100644 index 0000000..8c4433b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBAndResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BAnd; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BitBAndResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BAndResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public BAnd.Result getTargetObject() { + return new BAnd.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.bit.Band.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Band.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 15a27615739dd7bf79075aa42beb12d9896f933e Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:01:03 +0300 Subject: [PATCH 536/549] Added test for bit.BOr.Args protobuf serialization. --- .../serde/protobuf/BitBOrArgsPbSerdeTest.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrArgsPbSerdeTest.java new file mode 100644 index 0000000..abd4400 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrArgsPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Arrays; + +@RunWith(Enclosed.class) +public class BitBOrArgsPbSerdeTest { + + public static class FullArgsBitBOrArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + private static final int[] XI = new int[] {3, 4, 5}; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BOrArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Bor.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bor.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .addAllXi( Arrays.asList(3, 4, 5) ) + .build(); + } + + @NotNull + @Override + public BOr.Args getTargetObject() { + return BOr.Args.builder() + .x1(X1) + .x2(X2) + .xi(XI) + .build(); + } + } + + public static class WithoutXiBitBOrArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BOrArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Bor.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bor.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .build(); + } + + @NotNull + @Override + public BOr.Args getTargetObject() { + return BOr.Args.builder() + .x1(X1) + .x2(X2) + .build(); + } + } +} From 5f5bab2087af4350ccf915460ab45151c47828f8 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:01:12 +0300 Subject: [PATCH 537/549] Added test for bit.BOr.Result protobuf deserialization. --- .../protobuf/BitBOrResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrResultPbSerdeTest.java new file mode 100644 index 0000000..2f76c04 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBOrResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BOr; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BitBOrResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BOrResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public BOr.Result getTargetObject() { + return new BOr.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.bit.Bor.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bor.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From ff6614a79868850a9b188565ce569c5ce0969239 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:03:50 +0300 Subject: [PATCH 538/549] Added test for bit.BXor.Args protobuf serialization. --- .../protobuf/BitBXorArgsPbSerdeTest.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java new file mode 100644 index 0000000..a048659 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java @@ -0,0 +1,78 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +import java.util.Arrays; + +@RunWith(Enclosed.class) +public class BitBXorArgsPbSerdeTest { + + public static class FullArgsBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + private static final int[] XI = new int[] {3, 4, 5}; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BXorArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Bxor.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bxor.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .addAllXi( Arrays.asList(3, 4, 5) ) + .build(); + } + + @NotNull + @Override + public BXor.Args getTargetObject() { + return BXor.Args.builder() + .x1(X1) + .x2(X2) + .xi(XI) + .build(); + } + } + + public static class WithoutXiBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { + + + private static final int X1 = 1; + private static final int X2 = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BXorArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Bxor.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bxor.Request.newBuilder() + .setX1(X1) + .setX2(X2) + .build(); + } + + @NotNull + @Override + public BXor.Args getTargetObject() { + return BXor.Args.builder() + .x1(X1) + .x2(X2) + .build(); + } + } +} From 758325a642232809b3e15ba8a4a2ed11df88df83 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:04:01 +0300 Subject: [PATCH 539/549] Added test for bit.BXor.Result protobuf deserialization. --- .../protobuf/BitBXorResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorResultPbSerdeTest.java new file mode 100644 index 0000000..ba3f18d --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BXor; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BitBXorResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BXorResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public BXor.Result getTargetObject() { + return new BXor.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.bit.Bxor.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bxor.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From 5ce0b779e9d5dba85113421465363e794604e9bf Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:07:17 +0300 Subject: [PATCH 540/549] Added test for bit.BNot.Args protobuf serialization. --- .../protobuf/BitBNotArgsPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java new file mode 100644 index 0000000..a451b5c --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class BitBNotArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int X = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BNotArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Bnot.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bnot.Request.newBuilder() + .setX(X) + .build(); + } + + @NotNull + @Override + public BNot.Args getTargetObject() { + return new BNot.Args(X); + } +} From 2b4d18149e09d67f533c7d82a4c5ef9cf71b619f Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:07:28 +0300 Subject: [PATCH 541/549] Added test for bit.BNot.Result protobuf deserialization. --- .../protobuf/BitBNotResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotResultPbSerdeTest.java new file mode 100644 index 0000000..ba77868 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.BNot; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BitBNotResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int RESULT = 1; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BNotResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public BNot.Result getTargetObject() { + return new BNot.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.bit.Bnot.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Bnot.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From a1a01ca5c001774d6dc4dc34af813bfc209ef7fa Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:12:45 +0300 Subject: [PATCH 542/549] Added test for bit.Test.Args protobuf serialization. --- .../protobuf/BitTestArgsPbSerdeTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java new file mode 100644 index 0000000..04c8ade --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java @@ -0,0 +1,36 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; + +public class BitTestArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int X = 1; + private static final int N = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BitTestArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Btest.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Btest.Request.newBuilder() + .setX(X) + .setN(N) + .build(); + } + + @NotNull + @Override + public Test.Args getTargetObject() { + + return Test.Args.builder() + .x(X) + .n(N) + .build(); + } +} From 69147b12f5a909b27d7eb05ff599628f1a64001a Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:12:58 +0300 Subject: [PATCH 543/549] Added test for bit.Test.Result protobuf deserialization. --- .../protobuf/BitTestResultPbSerdeTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbSerdeTest.java new file mode 100644 index 0000000..457de22 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestResultPbSerdeTest.java @@ -0,0 +1,67 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.Test; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitTestResultPbSerdeTest { + + public static class TrueBitTestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean TRUE = true; + // sanity check + static { assert TRUE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BitTestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Test.Result getTargetObject() { + return Test.Result.getInstance(TRUE); + } + + @NotNull + @Override + public qlua.rpc.bit.Btest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Btest.Result.newBuilder() + .setResult(TRUE) + .build(); + } + } + + public static class FalseBitTestResultPbDeserializationTest + extends AbstractPbDeserializationTest { + + private static final boolean FALSE = false; + // sanity check + static { assert !FALSE; } + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BitTestResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public Test.Result getTargetObject() { + return Test.Result.getInstance(FALSE); + } + + @NotNull + @Override + public qlua.rpc.bit.Btest.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Btest.Result.newBuilder() + .setResult(FALSE) + .build(); + } + } +} From 1213824f8137ad82b3768ffc2eb49251f4bd70d4 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:22:01 +0300 Subject: [PATCH 544/549] Changed bit.tohex protobuf message format. --- .../lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java | 6 ++++-- src/main/proto/qlua/rpc/bit/tohex.proto | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java index 8138c31..cd9dc16 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java @@ -24,8 +24,10 @@ public Tohex.Request convert(@NotNull final ToHex.Args args) { .setX( args.getX() ); final Integer n = args.getN(); - if (n != null) { - result.setN(n); + if (n == null) { + result.setNullN(true); + } else { + result.setValueN(n); } return result.build(); diff --git a/src/main/proto/qlua/rpc/bit/tohex.proto b/src/main/proto/qlua/rpc/bit/tohex.proto index a77893e..befc5fa 100644 --- a/src/main/proto/qlua/rpc/bit/tohex.proto +++ b/src/main/proto/qlua/rpc/bit/tohex.proto @@ -10,7 +10,11 @@ option java_package = "qlua.rpc.bit"; message Request { int32 x = 1; - int32 n = 2; // 0 counts as "parameter not set" + oneof n { + bool null_n = 2; + int32 value_n = 3; + } + } message Result { From 5b63e081e2ebaed1e483e3a2fcbcdb470e5bdd6d Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:22:15 +0300 Subject: [PATCH 545/549] Added test for bit.ToHex.Args protobuf serialization. --- .../protobuf/BitToHexArgsPbSerdeTest.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerdeTest.java new file mode 100644 index 0000000..0285d4b --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.enfernuz.quik.lua.rpc.serde.Serializer; +import org.jetbrains.annotations.NotNull; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class BitToHexArgsPbSerdeTest { + + public static class FullArgsBitToHexArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int X = 1; + private static final int N = 2; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BitToHexArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Tohex.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Tohex.Request.newBuilder() + .setX(X) + .setValueN(N) + .build(); + } + + @NotNull + @Override + public ToHex.Args getTargetObject() { + return ToHex.Args.builder() + .x(X) + .n(N) + .build(); + } + } + + public static class WithoutNBitToHexArgsPbSerdeTest extends AbstractPbSerializationTest { + + private static final int X = 1; + + @Override + public @NotNull Serializer getSerializerUnderTest() { + return BitToHexArgsPbSerializer.INSTANCE; + } + + @NotNull + @Override + public qlua.rpc.bit.Tohex.Request getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Tohex.Request.newBuilder() + .setX(X) + .setNullN(true) + .build(); + } + + @NotNull + @Override + public ToHex.Args getTargetObject() { + + return ToHex.Args.builder() + .x(X) + .build(); + } + } +} From b94c4d378d6517862ec9492611e4474c13bd6756 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:22:27 +0300 Subject: [PATCH 546/549] Added test for bit.ToHex.Result protobuf deserialization. --- .../protobuf/BitToHexResultPbSerdeTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbSerdeTest.java new file mode 100644 index 0000000..7ae87ca --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexResultPbSerdeTest.java @@ -0,0 +1,30 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.bit.ToHex; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; + +public class BitToHexResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final String RESULT = "1"; + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return BitToHexResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public ToHex.Result getTargetObject() { + return new ToHex.Result(RESULT); + } + + @NotNull + @Override + public qlua.rpc.bit.Tohex.Result getTargetObjectAsPbMessage() { + + return qlua.rpc.bit.Tohex.Result.newBuilder() + .setResult(RESULT) + .build(); + } +} From f24211f9bec3261c73701d0a3e7f4507d9365ebe Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Sun, 27 Jan 2019 23:31:02 +0300 Subject: [PATCH 547/549] Added test for os.SysDate.Result protobuf deserialization. --- .../protobuf/SysdateResultPbSerdeTest.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysdateResultPbSerdeTest.java diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysdateResultPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysdateResultPbSerdeTest.java new file mode 100644 index 0000000..13e7551 --- /dev/null +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SysdateResultPbSerdeTest.java @@ -0,0 +1,70 @@ +package com.enfernuz.quik.lua.rpc.serde.protobuf; + +import com.enfernuz.quik.lua.rpc.api.messages.os.SysDate; +import com.enfernuz.quik.lua.rpc.api.structures.DateTimeEntry; +import com.enfernuz.quik.lua.rpc.serde.Deserializer; +import org.jetbrains.annotations.NotNull; +import org.junit.Rule; +import org.junit.rules.ExpectedException; + +public class SysdateResultPbSerdeTest extends AbstractPbDeserializationTest { + + private static final int YEAR = 1; + private static final int MONTH = 2; + private static final int DAY = 3; + private static final int WEEK_DAY = 4; + private static final int HOUR = 5; + private static final int MINUTE = 6; + private static final int SEC = 7; + private static final int MS = 8; + private static final int MCS = 9; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Override + public @NotNull Deserializer getDeserializerUnderTest() { + return SysDateResultPbDeserializer.INSTANCE; + } + + @NotNull + @Override + public SysDate.Result getTargetObject() { + + final DateTimeEntry dateTimeEntry = DateTimeEntry.builder() + .year(YEAR) + .month(MONTH) + .day(DAY) + .weekDay(WEEK_DAY) + .hour(HOUR) + .min(MINUTE) + .sec(SEC) + .ms(MS) + .mcs(MCS) + .build(); + + return new SysDate.Result(dateTimeEntry); + } + + @NotNull + @Override + public qlua.rpc.os.Sysdate.Result getTargetObjectAsPbMessage() { + + final qlua.structs.QluaStructures.DateTimeEntry pbDateTimeEntry = + qlua.structs.QluaStructures.DateTimeEntry.newBuilder() + .setYear(YEAR) + .setMonth(MONTH) + .setDay(DAY) + .setWeekDay(WEEK_DAY) + .setHour(HOUR) + .setMin(MINUTE) + .setSec(SEC) + .setMs(MS) + .setMcs(MCS) + .build(); + + return qlua.rpc.os.Sysdate.Result.newBuilder() + .setResult(pbDateTimeEntry) + .build(); + } +} From 8e45862c228945c80cda4b1a49b1fb444d1ec778 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 1 Feb 2019 02:48:08 +0300 Subject: [PATCH 548/549] Synchronized the protobuf messages with the RPC service. --- .../protobuf/AddColumnArgsPbSerializer.java | 6 +++--- .../protobuf/AddLabelArgsPbSerializer.java | 6 +++--- .../serde/protobuf/BAndArgsPbSerializer.java | 8 ++++---- .../serde/protobuf/BNotArgsPbSerializer.java | 6 +++--- .../serde/protobuf/BOrArgsPbSerializer.java | 8 ++++---- .../serde/protobuf/BXorArgsPbSerializer.java | 8 ++++---- .../protobuf/BitTestArgsPbSerializer.java | 6 +++--- .../protobuf/BitToHexArgsPbSerializer.java | 8 ++++---- .../protobuf/CalcBuySellArgsPbSerializer.java | 6 +++--- .../CancelParamRequestArgsPbSerializer.java | 6 +++--- .../serde/protobuf/ClearArgsPbSerializer.java | 6 +++--- .../CreateWindowArgsPbSerializer.java | 6 +++--- .../DelAllLabelsArgsPbSerializer.java | 6 +++--- .../protobuf/DelLabelArgsPbSerializer.java | 6 +++--- .../protobuf/DeleteRowArgsPbSerializer.java | 6 +++--- .../DestroyTableArgsPbSerializer.java | 6 +++--- .../serde/protobuf/DsCArgsPbSerializer.java | 6 +++--- .../protobuf/DsClosePbArgsSerializer.java | 6 +++--- .../DsCreateDataSourcePbArgsSerializer.java | 8 ++++---- .../serde/protobuf/DsHArgsPbSerializer.java | 6 +++--- .../serde/protobuf/DsLArgsPbSerializer.java | 6 +++--- .../serde/protobuf/DsOArgsPbSerializer.java | 6 +++--- .../DsSetEmptyCallbackPbArgsSerializer.java | 6 +++--- .../DsSetUpdateCallbackPbArgsSerializer.java | 8 ++++---- .../protobuf/DsSizePbArgsSerializer.java | 6 +++--- .../serde/protobuf/DsTArgsPbSerializer.java | 6 +++--- .../serde/protobuf/DsVArgsPbSerializer.java | 6 +++--- .../GetBuySellInfoArgsPbSerializer.java | 6 +++--- .../GetBuySellInfoExArgsPbSerializer.java | 6 +++--- .../GetCandlesByIndexArgsPbSerializer.java | 6 +++--- .../protobuf/GetCellArgsPbSerializer.java | 6 +++--- .../GetClassInfoArgsPbSerializer.java | 6 +++--- .../GetClassSecuritiesArgsPbSerializer.java | 6 +++--- .../protobuf/GetDepoArgsPbSerializer.java | 6 +++--- .../protobuf/GetDepoExArgsPbSerializer.java | 6 +++--- .../GetFuturesHoldingArgsPbSerializer.java | 6 +++--- .../GetFuturesLimitArgsPbSerializer.java | 6 +++--- .../GetInfoParamArgsPbSerializer.java | 6 +++--- .../protobuf/GetItemArgsPbSerializer.java | 6 +++--- .../GetLinesCountArgsPbSerializer.java | 6 +++--- .../protobuf/GetMoneyArgsPbSerializer.java | 6 +++--- .../protobuf/GetMoneyExArgsPbSerializer.java | 6 +++--- .../GetNumCandlesArgsPbSerializer.java | 6 +++--- .../protobuf/GetNumberOfArgsPbSerializer.java | 6 +++--- .../GetOrderByNumberArgsPbSerializer.java | 6 +++--- .../protobuf/GetParamEx2ArgsPbSerializer.java | 6 +++--- .../protobuf/GetParamExArgsPbSerializer.java | 6 +++--- .../GetPortfolioInfoArgsPbSerializer.java | 6 +++--- .../GetPortfolioInfoExArgsPbSerializer.java | 6 +++--- .../GetQuoteLevel2ArgsPbSerializer.java | 6 +++--- .../GetSecurityInfoArgsPbSerializer.java | 6 +++--- .../GetTableSizeArgsPbSerializer.java | 6 +++--- .../GetWindowCaptionArgsPbSerializer.java | 6 +++--- .../GetWindowRectArgsPbSerializer.java | 6 +++--- .../protobuf/HighlightArgsPbSerializer.java | 6 +++--- .../protobuf/InsertRowArgsPbSerializer.java | 6 +++--- ...ubscribedLevel2QuotesArgsPbSerializer.java | 6 +++--- .../IsWindowClosedArgsPbSerializer.java | 6 +++--- .../protobuf/MessageArgsPbSerializer.java | 6 +++--- .../ParamRequestArgsPbSerializer.java | 6 +++--- .../protobuf/PrintDbgStrArgsPbSerializer.java | 6 +++--- .../serde/protobuf/RGBArgsPbSerializer.java | 6 +++--- .../protobuf/SearchItemsArgsPbSerializer.java | 8 ++++---- .../SendTransactionArgsPbSerializer.java | 6 +++--- .../protobuf/SetCellArgsPbSerializer.java | 12 ++++++----- .../protobuf/SetColorArgsPbSerializer.java | 6 +++--- .../SetLabelParamsArgsPbSerializer.java | 6 +++--- .../SetSelectedRowArgsPbSerializer.java | 6 +++--- ...eNotificationCallbackArgsPbSerializer.java | 6 +++--- .../SetWindowCaptionArgsPbSerializer.java | 6 +++--- .../SetWindowPosArgsPbSerializer.java | 6 +++--- .../serde/protobuf/SleepArgsPbSerializer.java | 6 +++--- ...SubscribeLevel2QuotesArgsPbSerializer.java | 6 +++--- ...subscribeLevel2QuotesArgsPbSerializer.java | 6 +++--- src/main/proto/qlua/rpc/AddColumn.proto | 2 +- src/main/proto/qlua/rpc/AddLabel.proto | 2 +- src/main/proto/qlua/rpc/CalcBuySell.proto | 2 +- .../proto/qlua/rpc/CancelParamRequest.proto | 2 +- src/main/proto/qlua/rpc/Clear.proto | 2 +- src/main/proto/qlua/rpc/CreateWindow.proto | 2 +- src/main/proto/qlua/rpc/DelAllLabels.proto | 2 +- src/main/proto/qlua/rpc/DelLabel.proto | 2 +- src/main/proto/qlua/rpc/DeleteRow.proto | 2 +- src/main/proto/qlua/rpc/DestroyTable.proto | 2 +- src/main/proto/qlua/rpc/GetCell.proto | 2 +- src/main/proto/qlua/rpc/GetTableSize.proto | 2 +- .../proto/qlua/rpc/GetWindowCaption.proto | 2 +- src/main/proto/qlua/rpc/GetWindowRect.proto | 2 +- src/main/proto/qlua/rpc/Highlight.proto | 2 +- src/main/proto/qlua/rpc/InsertRow.proto | 2 +- .../rpc/IsSubscribed_Level_II_Quotes.proto | 2 +- src/main/proto/qlua/rpc/IsWindowClosed.proto | 6 +++--- src/main/proto/qlua/rpc/ParamRequest.proto | 2 +- src/main/proto/qlua/rpc/PrintDbgStr.proto | 2 +- src/main/proto/qlua/rpc/RGB.proto | 2 +- src/main/proto/qlua/rpc/SearchItems.proto | 20 +++++++++---------- src/main/proto/qlua/rpc/SetCell.proto | 4 ++-- src/main/proto/qlua/rpc/SetColor.proto | 2 +- src/main/proto/qlua/rpc/SetLabelParams.proto | 2 +- src/main/proto/qlua/rpc/SetSelectedRow.proto | 2 +- .../rpc/SetTableNotificationCallback.proto | 2 +- .../proto/qlua/rpc/SetWindowCaption.proto | 2 +- src/main/proto/qlua/rpc/SetWindowPos.proto | 2 +- .../qlua/rpc/Subscribe_Level_II_Quotes.proto | 2 +- .../rpc/Unsubscribe_Level_II_Quotes.proto | 2 +- src/main/proto/qlua/rpc/bit/band.proto | 2 +- src/main/proto/qlua/rpc/bit/bnot.proto | 2 +- src/main/proto/qlua/rpc/bit/bor.proto | 2 +- src/main/proto/qlua/rpc/bit/btest.proto | 2 +- src/main/proto/qlua/rpc/bit/bxor.proto | 2 +- src/main/proto/qlua/rpc/bit/tohex.proto | 4 ++-- src/main/proto/qlua/rpc/datasource/C.proto | 2 +- .../proto/qlua/rpc/datasource/Close.proto | 2 +- .../rpc/datasource/CreateDataSource.proto | 4 ++-- src/main/proto/qlua/rpc/datasource/H.proto | 2 +- src/main/proto/qlua/rpc/datasource/L.proto | 2 +- src/main/proto/qlua/rpc/datasource/O.proto | 2 +- .../rpc/datasource/SetEmptyCallback.proto | 2 +- .../rpc/datasource/SetUpdateCallback.proto | 2 +- src/main/proto/qlua/rpc/datasource/Size.proto | 2 +- src/main/proto/qlua/rpc/datasource/T.proto | 2 +- src/main/proto/qlua/rpc/datasource/V.proto | 2 +- src/main/proto/qlua/rpc/getBuySellInfo.proto | 2 +- .../proto/qlua/rpc/getBuySellInfoEx.proto | 2 +- .../proto/qlua/rpc/getCandlesByIndex.proto | 2 +- src/main/proto/qlua/rpc/getClassInfo.proto | 2 +- .../proto/qlua/rpc/getClassSecurities.proto | 2 +- src/main/proto/qlua/rpc/getDepo.proto | 2 +- src/main/proto/qlua/rpc/getDepoEx.proto | 2 +- .../proto/qlua/rpc/getFuturesHolding.proto | 2 +- src/main/proto/qlua/rpc/getFuturesLimit.proto | 2 +- src/main/proto/qlua/rpc/getInfoParam.proto | 9 ++++++++- src/main/proto/qlua/rpc/getItem.proto | 2 +- src/main/proto/qlua/rpc/getLinesCount.proto | 2 +- src/main/proto/qlua/rpc/getMoney.proto | 2 +- src/main/proto/qlua/rpc/getMoneyEx.proto | 2 +- src/main/proto/qlua/rpc/getNumCandles.proto | 2 +- src/main/proto/qlua/rpc/getNumberOf.proto | 2 +- .../proto/qlua/rpc/getOrderByNumber.proto | 6 +++--- src/main/proto/qlua/rpc/getParamEx.proto | 2 +- src/main/proto/qlua/rpc/getParamEx2.proto | 2 +- .../proto/qlua/rpc/getPortfolioInfo.proto | 2 +- .../proto/qlua/rpc/getPortfolioInfoEx.proto | 2 +- src/main/proto/qlua/rpc/getQuoteLevel2.proto | 2 +- src/main/proto/qlua/rpc/getSecurityInfo.proto | 2 +- src/main/proto/qlua/rpc/message.proto | 2 +- src/main/proto/qlua/rpc/qlua_structures.proto | 5 +++-- src/main/proto/qlua/rpc/sendTransaction.proto | 2 +- src/main/proto/qlua/rpc/sleep.proto | 2 +- 149 files changed, 333 insertions(+), 323 deletions(-) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java index 621c1ee..a8ed83b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerializer.java @@ -6,7 +6,7 @@ import static com.enfernuz.quik.lua.rpc.serde.protobuf.ProtobufSerdeUtils.convertToPbString; -enum AddColumnArgsPbSerializer implements Serializer, ToPbConverter { +enum AddColumnArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,7 +16,7 @@ enum AddColumnArgsPbSerializer implements Serializer, ToPbConver } @Override - public @NotNull qlua.rpc.AddColumn.Request convert(@NotNull final AddColumn.Args args) { + public @NotNull qlua.rpc.AddColumn.Args convert(@NotNull final AddColumn.Args args) { final AddColumn.ColumnParameterType parType = args.getParType(); final qlua.rpc.AddColumn.ColumnParameterType pbParType; @@ -46,7 +46,7 @@ enum AddColumnArgsPbSerializer implements Serializer, ToPbConver throw new IllegalArgumentException(String.format("Неподдерживаемый ColumnParameterType (тип столбца): '%s'.", parType)); } - return qlua.rpc.AddColumn.Request.newBuilder() + return qlua.rpc.AddColumn.Args.newBuilder() .setTId( args.getTId() ) .setIcode( args.getICode() ) .setName( convertToPbString(args.getName()) ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java index fb96b1c..dc9f3b1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddLabelArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum AddLabelArgsPbSerializer implements Serializer, ToPbConverter { +enum AddLabelArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum AddLabelArgsPbSerializer implements Serializer, ToPbConverte } @Override - public @NotNull qlua.rpc.AddLabel.Request convert(@NotNull final AddLabel.Args args) { + public @NotNull qlua.rpc.AddLabel.Args convert(@NotNull final AddLabel.Args args) { - return qlua.rpc.AddLabel.Request.newBuilder() + return qlua.rpc.AddLabel.Args.newBuilder() .setChartTag( args.getChartTag() ) .putAllLabelParams( args.getLabelParams() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java index 16479f6..1e8b905 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BAndArgsPbSerializer.java @@ -9,7 +9,7 @@ import static java.util.stream.Collectors.toList; -enum BAndArgsPbSerializer implements Serializer, ToPbConverter { +enum BAndArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -21,10 +21,10 @@ public byte[] serialize(@NotNull final BAnd.Args args) { @NotNull @Override - public Band.Request convert(@NotNull final BAnd.Args args) { + public Band.Args convert(@NotNull final BAnd.Args args) { - final Band.Request.Builder result = - Band.Request.newBuilder() + final Band.Args.Builder result = + Band.Args.newBuilder() .setX1( args.getX1() ) .setX2( args.getX2() ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java index 5576a48..5453ef9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BNotArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.bit.Bnot; -enum BNotArgsPbSerializer implements Serializer, ToPbConverter { +enum BNotArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,9 +17,9 @@ public byte[] serialize(@NotNull final BNot.Args args) { @NotNull @Override - public Bnot.Request convert(@NotNull final BNot.Args args) { + public Bnot.Args convert(@NotNull final BNot.Args args) { - return Bnot.Request.newBuilder() + return Bnot.Args.newBuilder() .setX( args.getX() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java index c077c22..d4229a5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BOrArgsPbSerializer.java @@ -9,7 +9,7 @@ import static java.util.stream.Collectors.toList; -enum BOrArgsPbSerializer implements Serializer, ToPbConverter { +enum BOrArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -21,10 +21,10 @@ public byte[] serialize(@NotNull final BOr.Args args) { @NotNull @Override - public Bor.Request convert(@NotNull final BOr.Args args) { + public Bor.Args convert(@NotNull final BOr.Args args) { - final Bor.Request.Builder result = - Bor.Request.newBuilder() + final Bor.Args.Builder result = + Bor.Args.newBuilder() .setX1( args.getX1() ) .setX2( args.getX2() ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java index a627cae..22f4634 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BXorArgsPbSerializer.java @@ -9,7 +9,7 @@ import static java.util.stream.Collectors.toList; -enum BXorArgsPbSerializer implements Serializer, ToPbConverter { +enum BXorArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -21,10 +21,10 @@ public byte[] serialize(@NotNull final BXor.Args args) { @NotNull @Override - public Bxor.Request convert(@NotNull final BXor.Args args) { + public Bxor.Args convert(@NotNull final BXor.Args args) { - final Bxor.Request.Builder result = - Bxor.Request.newBuilder() + final Bxor.Args.Builder result = + Bxor.Args.newBuilder() .setX1( args.getX1() ) .setX2( args.getX2() ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java index 2ae8234..20c9f76 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.bit.Btest; -enum BitTestArgsPbSerializer implements Serializer, ToPbConverter { +enum BitTestArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,9 +17,9 @@ public byte[] serialize(@NotNull final Test.Args args) { @NotNull @Override - public Btest.Request convert(@NotNull final Test.Args args) { + public Btest.Args convert(@NotNull final Test.Args args) { - return Btest.Request.newBuilder() + return Btest.Args.newBuilder() .setX( args.getX() ) .setN( args.getN() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java index cd9dc16..954eb52 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitToHexArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.bit.Tohex; -enum BitToHexArgsPbSerializer implements Serializer, ToPbConverter { +enum BitToHexArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,10 +17,10 @@ public byte[] serialize(@NotNull final ToHex.Args args) { @NotNull @Override - public Tohex.Request convert(@NotNull final ToHex.Args args) { + public Tohex.Args convert(@NotNull final ToHex.Args args) { - final Tohex.Request.Builder result = - Tohex.Request.newBuilder() + final Tohex.Args.Builder result = + Tohex.Args.newBuilder() .setX( args.getX() ); final Integer n = args.getN(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java index 5cbae6b..236959b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum CalcBuySellArgsPbSerializer implements Serializer, ToPbConverter { +enum CalcBuySellArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum CalcBuySellArgsPbSerializer implements Serializer, ToPbCo } @Override - public @NotNull qlua.rpc.CalcBuySell.Request convert(@NotNull final CalcBuySell.Args args) { + public @NotNull qlua.rpc.CalcBuySell.Args convert(@NotNull final CalcBuySell.Args args) { - return qlua.rpc.CalcBuySell.Request.newBuilder() + return qlua.rpc.CalcBuySell.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .setClientCode( args.getClientCode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java index 42d3104..047e5ef 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CancelParamRequestArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum CancelParamRequestArgsPbSerializer implements Serializer, ToPbConverter { +enum CancelParamRequestArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum CancelParamRequestArgsPbSerializer implements Serializer, ToPbConverter { +enum ClearArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum ClearArgsPbSerializer implements Serializer, ToPbConverter, ToPbConverter { +enum CreateWindowArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum CreateWindowArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.CreateWindow.Request convert(@NotNull final CreateWindow.Args args) { + public @NotNull qlua.rpc.CreateWindow.Args convert(@NotNull final CreateWindow.Args args) { - return qlua.rpc.CreateWindow.Request.newBuilder() + return qlua.rpc.CreateWindow.Args.newBuilder() .setTId( args.getTId() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java index 6a3e0bd..f50419e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelAllLabelsArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DelAllLabelsArgsPbSerializer implements Serializer, ToPbConverter { +enum DelAllLabelsArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum DelAllLabelsArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.DelAllLabels.Request convert(@NotNull final DelAllLabels.Args args) { + public @NotNull qlua.rpc.DelAllLabels.Args convert(@NotNull final DelAllLabels.Args args) { - return qlua.rpc.DelAllLabels.Request.newBuilder() + return qlua.rpc.DelAllLabels.Args.newBuilder() .setChartTag( args.getChartTag() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java index 8f5b4c8..0f0af5e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DelLabelArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DelLabelArgsPbSerializer implements Serializer, ToPbConverter { +enum DelLabelArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum DelLabelArgsPbSerializer implements Serializer, ToPbConverte } @Override - public @NotNull qlua.rpc.DelLabel.Request convert(@NotNull final DelLabel.Args args) { + public @NotNull qlua.rpc.DelLabel.Args convert(@NotNull final DelLabel.Args args) { - return qlua.rpc.DelLabel.Request.newBuilder() + return qlua.rpc.DelLabel.Args.newBuilder() .setChartTag( args.getChartTag() ) .setLabelId( args.getLabelId() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java index 6f2489e..a517577 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DeleteRowArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DeleteRowArgsPbSerializer implements Serializer, ToPbConverter { +enum DeleteRowArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum DeleteRowArgsPbSerializer implements Serializer, ToPbConver } @Override - public @NotNull qlua.rpc.DeleteRow.Request convert(@NotNull final DeleteRow.Args args) { + public @NotNull qlua.rpc.DeleteRow.Args convert(@NotNull final DeleteRow.Args args) { - return qlua.rpc.DeleteRow.Request.newBuilder() + return qlua.rpc.DeleteRow.Args.newBuilder() .setTId( args.getTId() ) .setKey( args.getKey() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java index e1f044f..42d4144 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DestroyTableArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DestroyTableArgsPbSerializer implements Serializer, ToPbConverter { +enum DestroyTableArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum DestroyTableArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.DestroyTable.Request convert(@NotNull final DestroyTable.Args args) { + public @NotNull qlua.rpc.DestroyTable.Args convert(@NotNull final DestroyTable.Args args) { - return qlua.rpc.DestroyTable.Request.newBuilder() + return qlua.rpc.DestroyTable.Args.newBuilder() .setTId( args.getTId() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java index 50fc098..959dfd7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsCArgsPbSerializer implements Serializer, ToPbConverter { +enum DsCArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final C.Args args) { @NotNull @Override - public qlua.rpc.datasource.C.Request convert(@NotNull final C.Args args) { + public qlua.rpc.datasource.C.Args convert(@NotNull final C.Args args) { - return qlua.rpc.datasource.C.Request.newBuilder() + return qlua.rpc.datasource.C.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java index 3ef2b6e..773d50a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsClosePbArgsSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsClosePbArgsSerializer implements Serializer, ToPbConverter { +enum DsClosePbArgsSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final Close.Args args) { @NotNull @Override - public qlua.rpc.datasource.Close.Request convert(@NotNull final Close.Args args) { + public qlua.rpc.datasource.Close.Args convert(@NotNull final Close.Args args) { - return qlua.rpc.datasource.Close.Request.newBuilder() + return qlua.rpc.datasource.Close.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java index a0e8d8c..47d2c47 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsCreateDataSourcePbArgsSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsCreateDataSourcePbArgsSerializer implements Serializer, ToPbConverter { +enum DsCreateDataSourcePbArgsSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,7 +16,7 @@ public byte[] serialize(@NotNull final CreateDataSource.Args args) { @NotNull @Override - public qlua.rpc.datasource.CreateDataSource.Request convert(@NotNull final CreateDataSource.Args args) { + public qlua.rpc.datasource.CreateDataSource.Args convert(@NotNull final CreateDataSource.Args args) { final CreateDataSource.Interval interval = args.getInterval(); final qlua.rpc.datasource.CreateDataSource.Interval pbInterval; @@ -76,8 +76,8 @@ public qlua.rpc.datasource.CreateDataSource.Request convert(@NotNull final Creat throw new IllegalArgumentException( String.format("Неизвестный тип интервала: %s.", interval) ); } - final qlua.rpc.datasource.CreateDataSource.Request.Builder result = - qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + final qlua.rpc.datasource.CreateDataSource.Args.Builder result = + qlua.rpc.datasource.CreateDataSource.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .setInterval(pbInterval); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java index 9277644..6235114 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsHArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsHArgsPbSerializer implements Serializer, ToPbConverter { +enum DsHArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final H.Args args) { @NotNull @Override - public qlua.rpc.datasource.H.Request convert(@NotNull final H.Args args) { + public qlua.rpc.datasource.H.Args convert(@NotNull final H.Args args) { - return qlua.rpc.datasource.H.Request.newBuilder() + return qlua.rpc.datasource.H.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java index 9c5cb61..89ea9a1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsLArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsLArgsPbSerializer implements Serializer, ToPbConverter { +enum DsLArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final L.Args args) { @NotNull @Override - public qlua.rpc.datasource.L.Request convert(@NotNull final L.Args args) { + public qlua.rpc.datasource.L.Args convert(@NotNull final L.Args args) { - return qlua.rpc.datasource.L.Request.newBuilder() + return qlua.rpc.datasource.L.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java index 9c73353..69c40a9 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsOArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsOArgsPbSerializer implements Serializer, ToPbConverter { +enum DsOArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final O.Args args) { @NotNull @Override - public qlua.rpc.datasource.O.Request convert(@NotNull final O.Args args) { + public qlua.rpc.datasource.O.Args convert(@NotNull final O.Args args) { - return qlua.rpc.datasource.O.Request.newBuilder() + return qlua.rpc.datasource.O.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java index 7440d71..8febe76 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetEmptyCallbackPbArgsSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsSetEmptyCallbackPbArgsSerializer implements Serializer, ToPbConverter { +enum DsSetEmptyCallbackPbArgsSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetEmptyCallback.Args args) { @NotNull @Override - public qlua.rpc.datasource.SetEmptyCallback.Request convert(@NotNull final SetEmptyCallback.Args args) { + public qlua.rpc.datasource.SetEmptyCallback.Args convert(@NotNull final SetEmptyCallback.Args args) { - return qlua.rpc.datasource.SetEmptyCallback.Request.newBuilder() + return qlua.rpc.datasource.SetEmptyCallback.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java index d94782f..cbf6df6 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSetUpdateCallbackPbArgsSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsSetUpdateCallbackPbArgsSerializer implements Serializer, ToPbConverter { +enum DsSetUpdateCallbackPbArgsSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,10 +16,10 @@ public byte[] serialize(@NotNull final SetUpdateCallback.Args args) { @NotNull @Override - public qlua.rpc.datasource.SetUpdateCallback.Request convert(@NotNull final SetUpdateCallback.Args args) { + public qlua.rpc.datasource.SetUpdateCallback.Args convert(@NotNull final SetUpdateCallback.Args args) { - final qlua.rpc.datasource.SetUpdateCallback.Request.Builder result = - qlua.rpc.datasource.SetUpdateCallback.Request.newBuilder() + final qlua.rpc.datasource.SetUpdateCallback.Args.Builder result = + qlua.rpc.datasource.SetUpdateCallback.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setWatchingO( args.isWatchingO() ) .setWatchingH( args.isWatchingH() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java index e3dddf8..2534b1b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsSizePbArgsSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsSizePbArgsSerializer implements Serializer, ToPbConverter { +enum DsSizePbArgsSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final Size.Args args) { @NotNull @Override - public qlua.rpc.datasource.Size.Request convert(@NotNull final Size.Args args) { + public qlua.rpc.datasource.Size.Args convert(@NotNull final Size.Args args) { - return qlua.rpc.datasource.Size.Request.newBuilder() + return qlua.rpc.datasource.Size.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java index 569a18b..34291da 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsTArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsTArgsPbSerializer implements Serializer, ToPbConverter { +enum DsTArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final T.Args args) { @NotNull @Override - public qlua.rpc.datasource.T.Request convert(@NotNull final T.Args args) { + public qlua.rpc.datasource.T.Args convert(@NotNull final T.Args args) { - return qlua.rpc.datasource.T.Request.newBuilder() + return qlua.rpc.datasource.T.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java index 3e6833d..f12e229 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DsVArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum DsVArgsPbSerializer implements Serializer, ToPbConverter { +enum DsVArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final V.Args args) { @NotNull @Override - public qlua.rpc.datasource.V.Request convert(@NotNull final V.Args args) { + public qlua.rpc.datasource.V.Args convert(@NotNull final V.Args args) { - return qlua.rpc.datasource.V.Request.newBuilder() + return qlua.rpc.datasource.V.Args.newBuilder() .setDatasourceUuid( args.getDatasourceUUID() ) .setCandleIndex( args.getCandleIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java index d9515b4..121dd33 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetBuySellInfoArgsPbSerializer implements Serializer, ToPbConverter { +enum GetBuySellInfoArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetBuySellInfoArgsPbSerializer implements Serializer, } @Override - public @NotNull qlua.rpc.GetBuySellInfo.Request convert(@NotNull final GetBuySellInfo.Args args) { + public @NotNull qlua.rpc.GetBuySellInfo.Args convert(@NotNull final GetBuySellInfo.Args args) { - return qlua.rpc.GetBuySellInfo.Request.newBuilder() + return qlua.rpc.GetBuySellInfo.Args.newBuilder() .setFirmId( args.getFirmId() ) .setClientCode( args.getClientCode() ) .setClassCode( args.getClassCode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java index 697fe78..5e2aa91 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetBuySellInfoExArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetBuySellInfoExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetBuySellInfoExArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetBuySellInfoExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetCandlesByIndexArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetCandlesByIndexArgsPbSerializer implements Serializer, ToPbConverter { +enum GetCellArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetCellArgsPbSerializer implements Serializer, ToPbConverter< } @Override - public @NotNull qlua.rpc.GetCell.Request convert(@NotNull final GetCell.Args args) { + public @NotNull qlua.rpc.GetCell.Args convert(@NotNull final GetCell.Args args) { - return qlua.rpc.GetCell.Request.newBuilder() + return qlua.rpc.GetCell.Args.newBuilder() .setTId( args.getTId() ) .setKey( args.getKey() ) .setCode( args.getCode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java index 70f9fae..f261876 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassInfoArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetClassInfoArgsPbSerializer implements Serializer, ToPbConverter { +enum GetClassInfoArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetClassInfoArgsPbSerializer implements Serializer, ToPb } @Override - public qlua.rpc.GetClassInfo.Request convert(@NotNull final GetClassInfo.Args args) { + public qlua.rpc.GetClassInfo.Args convert(@NotNull final GetClassInfo.Args args) { - return qlua.rpc.GetClassInfo.Request.newBuilder() + return qlua.rpc.GetClassInfo.Args.newBuilder() .setClassCode( args.getClassCode() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java index e10ca2c..efbf716 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetClassSecuritiesArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetClassSecuritiesArgsPbSerializer implements Serializer, ToPbConverter { +enum GetClassSecuritiesArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetClassSecuritiesArgsPbSerializer implements Serializer, ToPbConverter { +enum GetDepoArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetDepoArgsPbSerializer implements Serializer, ToPbConverter< } @Override - public @NotNull qlua.rpc.GetDepo.Request convert(@NotNull final GetDepo.Args args) { + public @NotNull qlua.rpc.GetDepo.Args convert(@NotNull final GetDepo.Args args) { - return qlua.rpc.GetDepo.Request.newBuilder() + return qlua.rpc.GetDepo.Args.newBuilder() .setClientCode( args.getClientCode() ) .setFirmid( args.getFirmId() ) .setSecCode( args.getSecCode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java index 499f76d..cfe01e1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoExArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.RPC; -enum GetDepoExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetDepoExArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,9 +17,9 @@ enum GetDepoExArgsPbSerializer implements Serializer, ToPbConver } @Override - public @NotNull qlua.rpc.GetDepoEx.Request convert(@NotNull final GetDepoEx.Args args) { + public @NotNull qlua.rpc.GetDepoEx.Args convert(@NotNull final GetDepoEx.Args args) { - return qlua.rpc.GetDepoEx.Request.newBuilder() + return qlua.rpc.GetDepoEx.Args.newBuilder() .setFirmid( args.getFirmId() ) .setClientCode( args.getClientCode() ) .setSecCode( args.getSecCode() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java index a1b5024..1b14991 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesHoldingArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetFuturesHoldingArgsPbSerializer implements Serializer, ToPbConverter { +enum GetFuturesHoldingArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetFuturesHoldingArgsPbSerializer implements Serializer, ToPbConverter< GetFuturesLimit.Args, qlua.rpc.GetFuturesLimit.Request> { +enum GetFuturesLimitArgsPbSerializer implements Serializer, ToPbConverter< GetFuturesLimit.Args, qlua.rpc.GetFuturesLimit.Args> { INSTANCE; @@ -14,9 +14,9 @@ enum GetFuturesLimitArgsPbSerializer implements Serializer } @Override - public @NotNull qlua.rpc.GetFuturesLimit.Request convert(@NotNull final GetFuturesLimit.Args args) { + public @NotNull qlua.rpc.GetFuturesLimit.Args convert(@NotNull final GetFuturesLimit.Args args) { - return qlua.rpc.GetFuturesLimit.Request.newBuilder() + return qlua.rpc.GetFuturesLimit.Args.newBuilder() .setFirmid( args.getFirmId() ) .setTrdaccid( args.getTrdAccId() ) .setLimitType( args.getLimitType() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java index 2bcad98..bc1bb42 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetInfoParamArgsPbSerializer implements Serializer, ToPbConverter { +enum GetInfoParamArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetInfoParamArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.GetInfoParam.Request convert(@NotNull final GetInfoParam.Args args) { + public @NotNull qlua.rpc.GetInfoParam.Args convert(@NotNull final GetInfoParam.Args args) { - return qlua.rpc.GetInfoParam.Request.newBuilder() + return qlua.rpc.GetInfoParam.Args.newBuilder() .setParamName( args.getParamName() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java index 37e29db..beff5e8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetItemArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetItemArgsPbSerializer implements Serializer, ToPbConverter { +enum GetItemArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetItemArgsPbSerializer implements Serializer, ToPbConverter< } @Override - public @NotNull qlua.rpc.GetItem.Request convert(@NotNull final GetItem.Args args) { + public @NotNull qlua.rpc.GetItem.Args convert(@NotNull final GetItem.Args args) { - return qlua.rpc.GetItem.Request.newBuilder() + return qlua.rpc.GetItem.Args.newBuilder() .setTableName( args.getTableName() ) .setIndex( args.getIndex() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java index 7da3134..68fda82 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetLinesCountArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetLinesCountArgsPbSerializer implements Serializer, ToPbConverter { +enum GetLinesCountArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetLinesCountArgsPbSerializer implements Serializer, To } @Override - public @NotNull qlua.rpc.GetLinesCount.Request convert(@NotNull final GetLinesCount.Args args) { + public @NotNull qlua.rpc.GetLinesCount.Args convert(@NotNull final GetLinesCount.Args args) { - return qlua.rpc.GetLinesCount.Request.newBuilder() + return qlua.rpc.GetLinesCount.Args.newBuilder() .setTag( args.getTag() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java index 144f268..e4c9f0a 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetMoneyArgsPbSerializer implements Serializer, ToPbConverter { +enum GetMoneyArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetMoneyArgsPbSerializer implements Serializer, ToPbConverte } @Override - public @NotNull qlua.rpc.GetMoney.Request convert(@NotNull final GetMoney.Args args) { + public @NotNull qlua.rpc.GetMoney.Args convert(@NotNull final GetMoney.Args args) { - return qlua.rpc.GetMoney.Request.newBuilder() + return qlua.rpc.GetMoney.Args.newBuilder() .setClientCode( args.getClientCode() ) .setFirmid( args.getFirmId() ) .setTag( args.getTag() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java index 1e073fe..43c8d3d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetMoneyExArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetMoneyExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetMoneyExArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetMoneyExArgsPbSerializer implements Serializer, ToPbConv } @Override - public @NotNull qlua.rpc.GetMoneyEx.Request convert(@NotNull final GetMoneyEx.Args args) { + public @NotNull qlua.rpc.GetMoneyEx.Args convert(@NotNull final GetMoneyEx.Args args) { - return qlua.rpc.GetMoneyEx.Request.newBuilder() + return qlua.rpc.GetMoneyEx.Args.newBuilder() .setFirmid( args.getFirmId() ) .setClientCode( args.getClientCode() ) .setTag( args.getTag() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java index e773e5a..ba1aa8e 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumCandlesArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetNumCandlesArgsPbSerializer implements Serializer, ToPbConverter { +enum GetNumCandlesArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetNumCandlesArgsPbSerializer implements Serializer, To } @Override - public @NotNull qlua.rpc.GetNumCandles.Request convert(@NotNull final GetNumCandles.Args args) { + public @NotNull qlua.rpc.GetNumCandles.Args convert(@NotNull final GetNumCandles.Args args) { - return qlua.rpc.GetNumCandles.Request.newBuilder() + return qlua.rpc.GetNumCandles.Args.newBuilder() .setTag( args.getTag() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java index 1690d69..d532850 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetNumberOfArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetNumberOfArgsPbSerializer implements Serializer, ToPbConverter { +enum GetNumberOfArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetNumberOfArgsPbSerializer implements Serializer, ToPbCo } @Override - public @NotNull qlua.rpc.GetNumberOf.Request convert(@NotNull final GetNumberOf.Args args) { + public @NotNull qlua.rpc.GetNumberOf.Args convert(@NotNull final GetNumberOf.Args args) { - return qlua.rpc.GetNumberOf.Request.newBuilder() + return qlua.rpc.GetNumberOf.Args.newBuilder() .setTableName( args.getTableName() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java index cbaad68..0b3c47b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetOrderByNumberArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetOrderByNumberArgsPbSerializer implements Serializer, ToPbConverter { +enum GetOrderByNumberArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetOrderByNumberArgsPbSerializer implements Serializer, ToPbConverter { +enum GetParamEx2ArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetParamEx2ArgsPbSerializer implements Serializer, ToPbCo } @Override - public @NotNull qlua.rpc.GetParamEx2.Request convert(@NotNull final GetParamEx2.Args args) { + public @NotNull qlua.rpc.GetParamEx2.Args convert(@NotNull final GetParamEx2.Args args) { - return qlua.rpc.GetParamEx2.Request.newBuilder() + return qlua.rpc.GetParamEx2.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .setParamName( args.getParamName() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java index d5f0c72..e6bbb90 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamExArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetParamExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetParamExArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetParamExArgsPbSerializer implements Serializer, ToPbConv } @Override - public @NotNull qlua.rpc.GetParamEx.Request convert(@NotNull final GetParamEx.Args args) { + public @NotNull qlua.rpc.GetParamEx.Args convert(@NotNull final GetParamEx.Args args) { - return qlua.rpc.GetParamEx.Request.newBuilder() + return qlua.rpc.GetParamEx.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .setParamName( args.getParamName() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java index 0d73aa3..7b9be39 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetPortfolioInfoArgsPbSerializer implements Serializer, ToPbConverter { +enum GetPortfolioInfoArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetPortfolioInfoArgsPbSerializer implements Serializer, ToPbConverter { +enum GetPortfolioInfoExArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetPortfolioInfoExArgsPbSerializer implements Serializer, ToPbConverter { +enum GetQuoteLevel2ArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetQuoteLevel2ArgsPbSerializer implements Serializer, } @Override - public @NotNull qlua.rpc.GetQuoteLevel2.Request convert(@NotNull final GetQuoteLevel2.Args args) { + public @NotNull qlua.rpc.GetQuoteLevel2.Args convert(@NotNull final GetQuoteLevel2.Args args) { - return qlua.rpc.GetQuoteLevel2.Request.newBuilder() + return qlua.rpc.GetQuoteLevel2.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java index 89d50e5..1669689 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetSecurityInfoArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetSecurityInfoArgsPbSerializer implements Serializer, ToPbConverter { +enum GetSecurityInfoArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetSecurityInfoArgsPbSerializer implements Serializer } @Override - public @NotNull qlua.rpc.GetSecurityInfo.Request convert(@NotNull final GetSecurityInfo.Args args) { + public @NotNull qlua.rpc.GetSecurityInfo.Args convert(@NotNull final GetSecurityInfo.Args args) { - return qlua.rpc.GetSecurityInfo.Request.newBuilder() + return qlua.rpc.GetSecurityInfo.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java index e2c7a41..2f01878 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetTableSizeArgsPbSerializer implements Serializer, ToPbConverter { +enum GetTableSizeArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetTableSizeArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.GetTableSize.Request convert(@NotNull final GetTableSize.Args request) { + public @NotNull qlua.rpc.GetTableSize.Args convert(@NotNull final GetTableSize.Args request) { - return qlua.rpc.GetTableSize.Request.newBuilder() + return qlua.rpc.GetTableSize.Args.newBuilder() .setTId( request.getTId() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java index 34c3a63..5657d1d 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowCaptionArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum GetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { +enum GetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { +enum GetWindowRectArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum GetWindowRectArgsPbSerializer implements Serializer, To } @Override - public @NotNull qlua.rpc.GetWindowRect.Request convert(@NotNull final GetWindowRect.Args args) { + public @NotNull qlua.rpc.GetWindowRect.Args convert(@NotNull final GetWindowRect.Args args) { - return qlua.rpc.GetWindowRect.Request.newBuilder() + return qlua.rpc.GetWindowRect.Args.newBuilder() .setTId( args.getTId() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java index 73baa24..82eba6b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/HighlightArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum HighlightArgsPbSerializer implements Serializer, ToPbConverter { +enum HighlightArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum HighlightArgsPbSerializer implements Serializer, ToPbConver } @Override - public @NotNull qlua.rpc.Highlight.Request convert(@NotNull final Highlight.Args args) { + public @NotNull qlua.rpc.Highlight.Args convert(@NotNull final Highlight.Args args) { - return qlua.rpc.Highlight.Request.newBuilder() + return qlua.rpc.Highlight.Args.newBuilder() .setTId( args.getTId() ) .setRow( args.getRow() ) .setCol( args.getCol() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java index a3853d3..d3f9d04 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/InsertRowArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum InsertRowArgsPbSerializer implements Serializer, ToPbConverter { +enum InsertRowArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum InsertRowArgsPbSerializer implements Serializer, ToPbConver } @Override - public @NotNull qlua.rpc.InsertRow.Request convert(@NotNull final InsertRow.Args args) { + public @NotNull qlua.rpc.InsertRow.Args convert(@NotNull final InsertRow.Args args) { - return qlua.rpc.InsertRow.Request.newBuilder() + return qlua.rpc.InsertRow.Args.newBuilder() .setTId( args.getTId() ) .setKey( args.getKey() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java index 374d8d2..0eedcaa 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsSubscribedLevel2QuotesArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.IsSubscribedLevelIIQuotes; -enum IsSubscribedLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { +enum IsSubscribedLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -15,9 +15,9 @@ enum IsSubscribedLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { +enum IsWindowClosedArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum IsWindowClosedArgsPbSerializer implements Serializer, } @Override - public @NotNull qlua.rpc.IsWindowClosed.Request convert(@NotNull final IsWindowClosed.Args args) { + public @NotNull qlua.rpc.IsWindowClosed.Args convert(@NotNull final IsWindowClosed.Args args) { - return qlua.rpc.IsWindowClosed.Request.newBuilder() + return qlua.rpc.IsWindowClosed.Args.newBuilder() .setTId( args.getTId() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java index cc41353..c4013c8 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/MessageArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum MessageArgsPbSerializer implements Serializer, ToPbConverter { +enum MessageArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,7 +14,7 @@ enum MessageArgsPbSerializer implements Serializer, ToPbConverter< } @Override - public @NotNull qlua.rpc.Message.Request convert(@NotNull final Message.Args args) { + public @NotNull qlua.rpc.Message.Args convert(@NotNull final Message.Args args) { final Message.IconType iconType = args.getIconType(); final qlua.rpc.Message.IconType pbIconType; @@ -36,7 +36,7 @@ enum MessageArgsPbSerializer implements Serializer, ToPbConverter< } } - return qlua.rpc.Message.Request.newBuilder() + return qlua.rpc.Message.Args.newBuilder() .setMessage( args.getMessage() ) .setIconType(pbIconType) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java index a3e4c80..660e7b1 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum ParamRequestArgsPbSerializer implements Serializer, ToPbConverter { +enum ParamRequestArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum ParamRequestArgsPbSerializer implements Serializer, ToPb } @Override - public @NotNull qlua.rpc.ParamRequest.Request convert(@NotNull final ParamRequest.Args args) { + public @NotNull qlua.rpc.ParamRequest.Args convert(@NotNull final ParamRequest.Args args) { - return qlua.rpc.ParamRequest.Request.newBuilder() + return qlua.rpc.ParamRequest.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .setDbName( args.getDbName() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java index 0b5a63f..5fdd292 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/PrintDbgStrArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum PrintDbgStrArgsPbSerializer implements Serializer, ToPbConverter { +enum PrintDbgStrArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum PrintDbgStrArgsPbSerializer implements Serializer, ToPbCo } @Override - public @NotNull qlua.rpc.PrintDbgStr.Request convert(@NotNull final PrintDbgStr.Args args) { + public @NotNull qlua.rpc.PrintDbgStr.Args convert(@NotNull final PrintDbgStr.Args args) { - return qlua.rpc.PrintDbgStr.Request.newBuilder() + return qlua.rpc.PrintDbgStr.Args.newBuilder() .setS( args.getS() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java index a28a926..4facfb5 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/RGBArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum RGBArgsPbSerializer implements Serializer, ToPbConverter { +enum RGBArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,9 +14,9 @@ enum RGBArgsPbSerializer implements Serializer, ToPbConverter, ToPbConverter { +enum SearchItemsArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -14,10 +14,10 @@ enum SearchItemsArgsPbSerializer implements Serializer, ToPbCo } @Override - public @NotNull qlua.rpc.SearchItems.Request convert(@NotNull final SearchItems.Args args) { + public @NotNull qlua.rpc.SearchItems.Args convert(@NotNull final SearchItems.Args args) { - final qlua.rpc.SearchItems.Request.Builder result = - qlua.rpc.SearchItems.Request.newBuilder() + final qlua.rpc.SearchItems.Args.Builder result = + qlua.rpc.SearchItems.Args.newBuilder() .setTableName( args.getTableName() ) .setStartIndex( args.getStartIndex() ) .setFnDef( args.getFnDef() ); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java index e2ce076..45b4af7 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SendTransactionArgsPbSerializer implements Serializer, ToPbConverter { +enum SendTransactionArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SendTransaction.Args args) { @NotNull @Override - public qlua.rpc.SendTransaction.Request convert(@NotNull final SendTransaction.Args args) { + public qlua.rpc.SendTransaction.Args convert(@NotNull final SendTransaction.Args args) { - return qlua.rpc.SendTransaction.Request.newBuilder() + return qlua.rpc.SendTransaction.Args.newBuilder() .putAllTransaction( args.getTransaction() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java index 6bf7f97..11f8d54 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerializer.java @@ -4,7 +4,9 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetCellArgsPbSerializer implements Serializer, ToPbConverter { +import java.math.BigDecimal; + +enum SetCellArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,10 +18,10 @@ public byte[] serialize(@NotNull final SetCell.Args args) { @NotNull @Override - public qlua.rpc.SetCell.Request convert(@NotNull final SetCell.Args args) { + public qlua.rpc.SetCell.Args convert(@NotNull final SetCell.Args args) { - final qlua.rpc.SetCell.Request.Builder result = - qlua.rpc.SetCell.Request.newBuilder() + final qlua.rpc.SetCell.Args.Builder result = + qlua.rpc.SetCell.Args.newBuilder() .setTId( args.getTId() ) .setKey( args.getKey() ) .setCode( args.getCode() ) @@ -27,7 +29,7 @@ public qlua.rpc.SetCell.Request convert(@NotNull final SetCell.Args args) { final Number value = args.getValue(); if (value != null) { - result.setValue( args.getValue().doubleValue() ); + result.setValue( BigDecimal.valueOf(args.getValue().doubleValue()).toPlainString() ); } return result.build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java index 5da5ccb..50a720b 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetColorArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetColorArgsPbSerializer implements Serializer, ToPbConverter { +enum SetColorArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetColor.Args args) { @NotNull @Override - public qlua.rpc.SetColor.Request convert(@NotNull final SetColor.Args args) { + public qlua.rpc.SetColor.Args convert(@NotNull final SetColor.Args args) { - return qlua.rpc.SetColor.Request.newBuilder() + return qlua.rpc.SetColor.Args.newBuilder() .setTId( args.getTId() ) .setRow( args.getRow() ) .setCol( args.getCol() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java index 197b696..5055df4 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetLabelParamsArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetLabelParamsArgsPbSerializer implements Serializer, ToPbConverter { +enum SetLabelParamsArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetLabelParams.Args args) { @NotNull @Override - public qlua.rpc.SetLabelParams.Request convert(@NotNull final SetLabelParams.Args args) { + public qlua.rpc.SetLabelParams.Args convert(@NotNull final SetLabelParams.Args args) { - return qlua.rpc.SetLabelParams.Request.newBuilder() + return qlua.rpc.SetLabelParams.Args.newBuilder() .setChartTag( args.getChartTag() ) .setLabelId( args.getLabelId() ) .putAllLabelParams( args.getLabelParams() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java index 78de533..a27be41 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetSelectedRowArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetSelectedRowArgsPbSerializer implements Serializer, ToPbConverter { +enum SetSelectedRowArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetSelectedRow.Args args) { @NotNull @Override - public qlua.rpc.SetSelectedRow.Request convert(@NotNull final SetSelectedRow.Args args) { + public qlua.rpc.SetSelectedRow.Args convert(@NotNull final SetSelectedRow.Args args) { - return qlua.rpc.SetSelectedRow.Request.newBuilder() + return qlua.rpc.SetSelectedRow.Args.newBuilder() .setTableId( args.getTableId() ) .setRow( args.getRow() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java index 3e22d87..004e8ba 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetTableNotificationCallbackArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetTableNotificationCallbackArgsPbSerializer implements Serializer, ToPbConverter { +enum SetTableNotificationCallbackArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetTableNotificationCallback.Args args) { @NotNull @Override - public qlua.rpc.SetTableNotificationCallback.Request convert(@NotNull final SetTableNotificationCallback.Args args) { + public qlua.rpc.SetTableNotificationCallback.Args convert(@NotNull final SetTableNotificationCallback.Args args) { - return qlua.rpc.SetTableNotificationCallback.Request.newBuilder() + return qlua.rpc.SetTableNotificationCallback.Args.newBuilder() .setTId( args.getTId() ) .setFCbDef( args.getFunctionCallbackDefinition() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java index b6ed249..525b27f 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { +enum SetWindowCaptionArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetWindowCaption.Args args) { @NotNull @Override - public qlua.rpc.SetWindowCaption.Request convert(@NotNull final SetWindowCaption.Args args) { + public qlua.rpc.SetWindowCaption.Args convert(@NotNull final SetWindowCaption.Args args) { - return qlua.rpc.SetWindowCaption.Request.newBuilder() + return qlua.rpc.SetWindowCaption.Args.newBuilder() .setTId( args.getTId() ) .setStr( args.getStr() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java index f7b3df9..5e85b08 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SetWindowPosArgsPbSerializer implements Serializer, ToPbConverter { +enum SetWindowPosArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final SetWindowPos.Args args) { @NotNull @Override - public qlua.rpc.SetWindowPos.Request convert(@NotNull final SetWindowPos.Args args) { + public qlua.rpc.SetWindowPos.Args convert(@NotNull final SetWindowPos.Args args) { - return qlua.rpc.SetWindowPos.Request.newBuilder() + return qlua.rpc.SetWindowPos.Args.newBuilder() .setTId( args.getTId() ) .setX( args.getX() ) .setY( args.getY() ) diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java index 8ceb697..299ae37 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SleepArgsPbSerializer.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -enum SleepArgsPbSerializer implements Serializer, ToPbConverter { +enum SleepArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -16,9 +16,9 @@ public byte[] serialize(@NotNull final Sleep.Args args) { @NotNull @Override - public qlua.rpc.Sleep.Request convert(@NotNull final Sleep.Args args) { + public qlua.rpc.Sleep.Args convert(@NotNull final Sleep.Args args) { - return qlua.rpc.Sleep.Request.newBuilder() + return qlua.rpc.Sleep.Args.newBuilder() .setTime( args.getTime() ) .build(); } diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java index 3dc4075..65ca884 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SubscribeLevel2QuotesArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.SubscribeLevelIIQuotes; -enum SubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { +enum SubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,9 +17,9 @@ public byte[] serialize(@NotNull final SubscribeLevel2Quotes.Args args) { @NotNull @Override - public SubscribeLevelIIQuotes.Request convert(@NotNull final SubscribeLevel2Quotes.Args args) { + public SubscribeLevelIIQuotes.Args convert(@NotNull final SubscribeLevel2Quotes.Args args) { - return SubscribeLevelIIQuotes.Request.newBuilder() + return SubscribeLevelIIQuotes.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .build(); diff --git a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java index b5f8b22..6fa6bad 100644 --- a/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java +++ b/src/main/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerializer.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.NotNull; import qlua.rpc.UnsubscribeLevelIIQuotes; -enum UnsubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { +enum UnsubscribeLevel2QuotesArgsPbSerializer implements Serializer, ToPbConverter { INSTANCE; @@ -17,9 +17,9 @@ public byte[] serialize(@NotNull final UnsubscribeLevel2Quotes.Args args) { @NotNull @Override - public UnsubscribeLevelIIQuotes.Request convert(@NotNull final UnsubscribeLevel2Quotes.Args args) { + public UnsubscribeLevelIIQuotes.Args convert(@NotNull final UnsubscribeLevel2Quotes.Args args) { - return UnsubscribeLevelIIQuotes.Request.newBuilder() + return UnsubscribeLevelIIQuotes.Args.newBuilder() .setClassCode( args.getClassCode() ) .setSecCode( args.getSecCode() ) .build(); diff --git a/src/main/proto/qlua/rpc/AddColumn.proto b/src/main/proto/qlua/rpc/AddColumn.proto index 1758a2e..68885fd 100644 --- a/src/main/proto/qlua/rpc/AddColumn.proto +++ b/src/main/proto/qlua/rpc/AddColumn.proto @@ -24,7 +24,7 @@ enum ColumnParameterType { // вызовы AddColumn будут возвращать ответ, что столбец добавлен, но визуально ничего не изменится. // Я даже пробовал скрывать таблицу и создавать новое окно для неё, но всё равно добавленные // между делом столбцы не отобразились. -message Request { +message Args { int32 t_id = 1; int32 icode = 2; diff --git a/src/main/proto/qlua/rpc/AddLabel.proto b/src/main/proto/qlua/rpc/AddLabel.proto index 9f9b99c..c8e1ead 100644 --- a/src/main/proto/qlua/rpc/AddLabel.proto +++ b/src/main/proto/qlua/rpc/AddLabel.proto @@ -7,7 +7,7 @@ package qlua.rpc.AddLabel; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string chart_tag = 1; map label_params = 2; diff --git a/src/main/proto/qlua/rpc/CalcBuySell.proto b/src/main/proto/qlua/rpc/CalcBuySell.proto index a4bbf4c..8584043 100644 --- a/src/main/proto/qlua/rpc/CalcBuySell.proto +++ b/src/main/proto/qlua/rpc/CalcBuySell.proto @@ -7,7 +7,7 @@ package qlua.rpc.CalcBuySell; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/CancelParamRequest.proto b/src/main/proto/qlua/rpc/CancelParamRequest.proto index 97021df..baab280 100644 --- a/src/main/proto/qlua/rpc/CancelParamRequest.proto +++ b/src/main/proto/qlua/rpc/CancelParamRequest.proto @@ -7,7 +7,7 @@ package qlua.rpc.CancelParamRequest; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/Clear.proto b/src/main/proto/qlua/rpc/Clear.proto index 740fc40..0f8001d 100644 --- a/src/main/proto/qlua/rpc/Clear.proto +++ b/src/main/proto/qlua/rpc/Clear.proto @@ -7,7 +7,7 @@ package qlua.rpc.Clear; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/CreateWindow.proto b/src/main/proto/qlua/rpc/CreateWindow.proto index 1d3a314..b266087 100644 --- a/src/main/proto/qlua/rpc/CreateWindow.proto +++ b/src/main/proto/qlua/rpc/CreateWindow.proto @@ -7,7 +7,7 @@ package qlua.rpc.CreateWindow; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/DelAllLabels.proto b/src/main/proto/qlua/rpc/DelAllLabels.proto index 9bad981..da1d1a9 100644 --- a/src/main/proto/qlua/rpc/DelAllLabels.proto +++ b/src/main/proto/qlua/rpc/DelAllLabels.proto @@ -7,7 +7,7 @@ package qlua.rpc.DelAllLabels; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string chart_tag = 1; } diff --git a/src/main/proto/qlua/rpc/DelLabel.proto b/src/main/proto/qlua/rpc/DelLabel.proto index fab22d2..296f3f4 100644 --- a/src/main/proto/qlua/rpc/DelLabel.proto +++ b/src/main/proto/qlua/rpc/DelLabel.proto @@ -7,7 +7,7 @@ package qlua.rpc.DelLabel; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string chart_tag = 1; int32 label_id = 2; diff --git a/src/main/proto/qlua/rpc/DeleteRow.proto b/src/main/proto/qlua/rpc/DeleteRow.proto index dadd076..b72a822 100644 --- a/src/main/proto/qlua/rpc/DeleteRow.proto +++ b/src/main/proto/qlua/rpc/DeleteRow.proto @@ -7,7 +7,7 @@ package qlua.rpc.DeleteRow; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 key = 2; diff --git a/src/main/proto/qlua/rpc/DestroyTable.proto b/src/main/proto/qlua/rpc/DestroyTable.proto index 725ef92..3f84761 100644 --- a/src/main/proto/qlua/rpc/DestroyTable.proto +++ b/src/main/proto/qlua/rpc/DestroyTable.proto @@ -7,7 +7,7 @@ package qlua.rpc.DestroyTable; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/GetCell.proto b/src/main/proto/qlua/rpc/GetCell.proto index baa2dfd..8f5baf0 100644 --- a/src/main/proto/qlua/rpc/GetCell.proto +++ b/src/main/proto/qlua/rpc/GetCell.proto @@ -7,7 +7,7 @@ package qlua.rpc.GetCell; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 key = 2; diff --git a/src/main/proto/qlua/rpc/GetTableSize.proto b/src/main/proto/qlua/rpc/GetTableSize.proto index b3f6efe..f98d9b1 100644 --- a/src/main/proto/qlua/rpc/GetTableSize.proto +++ b/src/main/proto/qlua/rpc/GetTableSize.proto @@ -13,7 +13,7 @@ message TableSize { int32 col = 2; } -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/GetWindowCaption.proto b/src/main/proto/qlua/rpc/GetWindowCaption.proto index 6ace87f..4386896 100644 --- a/src/main/proto/qlua/rpc/GetWindowCaption.proto +++ b/src/main/proto/qlua/rpc/GetWindowCaption.proto @@ -7,7 +7,7 @@ package qlua.rpc.GetWindowCaption; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/GetWindowRect.proto b/src/main/proto/qlua/rpc/GetWindowRect.proto index 6ef87ea..e81f419 100644 --- a/src/main/proto/qlua/rpc/GetWindowRect.proto +++ b/src/main/proto/qlua/rpc/GetWindowRect.proto @@ -15,7 +15,7 @@ message WindowRect { int32 right = 4; } -message Request { +message Args { int32 t_id = 1; } diff --git a/src/main/proto/qlua/rpc/Highlight.proto b/src/main/proto/qlua/rpc/Highlight.proto index 68a18d9..a8eba6c 100644 --- a/src/main/proto/qlua/rpc/Highlight.proto +++ b/src/main/proto/qlua/rpc/Highlight.proto @@ -7,7 +7,7 @@ package qlua.rpc.Highlight; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; uint32 row = 2; diff --git a/src/main/proto/qlua/rpc/InsertRow.proto b/src/main/proto/qlua/rpc/InsertRow.proto index a5390da..e2e7508 100644 --- a/src/main/proto/qlua/rpc/InsertRow.proto +++ b/src/main/proto/qlua/rpc/InsertRow.proto @@ -7,7 +7,7 @@ package qlua.rpc.InsertRow; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 key = 2; diff --git a/src/main/proto/qlua/rpc/IsSubscribed_Level_II_Quotes.proto b/src/main/proto/qlua/rpc/IsSubscribed_Level_II_Quotes.proto index d5dc686..512b84b 100644 --- a/src/main/proto/qlua/rpc/IsSubscribed_Level_II_Quotes.proto +++ b/src/main/proto/qlua/rpc/IsSubscribed_Level_II_Quotes.proto @@ -7,7 +7,7 @@ package qlua.rpc.IsSubscribed_Level_II_Quotes; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/IsWindowClosed.proto b/src/main/proto/qlua/rpc/IsWindowClosed.proto index 3ef6ebd..d5b69ba 100644 --- a/src/main/proto/qlua/rpc/IsWindowClosed.proto +++ b/src/main/proto/qlua/rpc/IsWindowClosed.proto @@ -7,14 +7,14 @@ package qlua.rpc.IsWindowClosed; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; } message Result { oneof window_closed { - bool null_window_closed = 1; - bool value_window_closed = 2; + bool null_window_closed = 1; + bool value_window_closed = 2; } } diff --git a/src/main/proto/qlua/rpc/ParamRequest.proto b/src/main/proto/qlua/rpc/ParamRequest.proto index b6828dd..f9cfd53 100644 --- a/src/main/proto/qlua/rpc/ParamRequest.proto +++ b/src/main/proto/qlua/rpc/ParamRequest.proto @@ -7,7 +7,7 @@ package qlua.rpc.ParamRequest; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/PrintDbgStr.proto b/src/main/proto/qlua/rpc/PrintDbgStr.proto index 631fea3..0bdb19a 100644 --- a/src/main/proto/qlua/rpc/PrintDbgStr.proto +++ b/src/main/proto/qlua/rpc/PrintDbgStr.proto @@ -7,6 +7,6 @@ package qlua.rpc.PrintDbgStr; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string s = 1; } diff --git a/src/main/proto/qlua/rpc/RGB.proto b/src/main/proto/qlua/rpc/RGB.proto index b425910..1024a78 100644 --- a/src/main/proto/qlua/rpc/RGB.proto +++ b/src/main/proto/qlua/rpc/RGB.proto @@ -8,7 +8,7 @@ option optimize_for = SPEED; option java_package = "qlua.rpc"; // NB: на самом деле, библиотечная функция RGB должна называться BGR, ибо она выдаёт числа именно в этом формате. В SetColor, однако, тоже ожидается цвет в формате BGR, так что это не баг, а фича. -message Request { +message Args { int32 red = 1; int32 green = 2; diff --git a/src/main/proto/qlua/rpc/SearchItems.proto b/src/main/proto/qlua/rpc/SearchItems.proto index 573cfef..f6cc8dc 100644 --- a/src/main/proto/qlua/rpc/SearchItems.proto +++ b/src/main/proto/qlua/rpc/SearchItems.proto @@ -7,25 +7,25 @@ package qlua.rpc.SearchItems; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string table_name = 1; int32 start_index = 2; - + // Для удобства наличие null_end_index интерпретируется как getNumberOf(table_name) - 1 oneof end_index { - bool null_end_index = 3; - int32 value_end_index = 4; + bool null_end_index = 3; + int32 value_end_index = 4; } - - // Формат функции без использования params: "function (TABLE t) ... end", возвращаемые значения: BOOLEAN, nil; + + // Формат функции без использования params: "function (TABLE t) ... end", возвращаемые значения: BOOLEAN, nil; // где t -- строка таблицы table_name со всеми параметрами. - // Формат функции при использовании params: "function (p1, p2, ...) ... end", возвращаемые значения: BOOLEAN, nil; + // Формат функции при использовании params: "function (p1, p2, ...) ... end", возвращаемые значения: BOOLEAN, nil; // где p1, p2, ... -- значения параметров, заказанных в params - + // Внимание! По результам тестирования возврат nil из fn не приводит к ожидаемому результату (возврат списка уже пройденных индексов, удовлетворяющих условию + индекс, на котором возвратили nil + остановка процесса проверки условия) -- вместо этого процесс проверки условия прерывается и функция SearchItems возвращает nil. Подозреваю, что это баг в QLUA или ошибка в документации. - string fn_def = 5; - + string fn_def = 5; + string params = 6; } diff --git a/src/main/proto/qlua/rpc/SetCell.proto b/src/main/proto/qlua/rpc/SetCell.proto index 370e499..e8b15eb 100644 --- a/src/main/proto/qlua/rpc/SetCell.proto +++ b/src/main/proto/qlua/rpc/SetCell.proto @@ -7,13 +7,13 @@ package qlua.rpc.SetCell; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 key = 2; int32 code = 3; string text = 4; - double value = 5; + string value = 5; } message Result { diff --git a/src/main/proto/qlua/rpc/SetColor.proto b/src/main/proto/qlua/rpc/SetColor.proto index 4f32601..3d708a4 100644 --- a/src/main/proto/qlua/rpc/SetColor.proto +++ b/src/main/proto/qlua/rpc/SetColor.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetColor; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 row = 2; diff --git a/src/main/proto/qlua/rpc/SetLabelParams.proto b/src/main/proto/qlua/rpc/SetLabelParams.proto index 6aea479..c153063 100644 --- a/src/main/proto/qlua/rpc/SetLabelParams.proto +++ b/src/main/proto/qlua/rpc/SetLabelParams.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetLabelParams; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string chart_tag = 1; int32 label_id = 2; diff --git a/src/main/proto/qlua/rpc/SetSelectedRow.proto b/src/main/proto/qlua/rpc/SetSelectedRow.proto index b44409f..cce1865 100644 --- a/src/main/proto/qlua/rpc/SetSelectedRow.proto +++ b/src/main/proto/qlua/rpc/SetSelectedRow.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetSelectedRow; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 table_id = 1; uint32 row = 2; diff --git a/src/main/proto/qlua/rpc/SetTableNotificationCallback.proto b/src/main/proto/qlua/rpc/SetTableNotificationCallback.proto index 1581615..058df5f 100644 --- a/src/main/proto/qlua/rpc/SetTableNotificationCallback.proto +++ b/src/main/proto/qlua/rpc/SetTableNotificationCallback.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetTableNotificationCallback; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; string f_cb_def = 2; // формат функции (см. документацию по QLua): FUNCTION (NUMBER t_id, NUMBER msg, NUMBER par1, NUMBER par2) diff --git a/src/main/proto/qlua/rpc/SetWindowCaption.proto b/src/main/proto/qlua/rpc/SetWindowCaption.proto index b41afc7..d9f9d32 100644 --- a/src/main/proto/qlua/rpc/SetWindowCaption.proto +++ b/src/main/proto/qlua/rpc/SetWindowCaption.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetWindowCaption; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; string str = 2; diff --git a/src/main/proto/qlua/rpc/SetWindowPos.proto b/src/main/proto/qlua/rpc/SetWindowPos.proto index 8577a7b..bd63140 100644 --- a/src/main/proto/qlua/rpc/SetWindowPos.proto +++ b/src/main/proto/qlua/rpc/SetWindowPos.proto @@ -7,7 +7,7 @@ package qlua.rpc.SetWindowPos; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 t_id = 1; int32 x = 2; diff --git a/src/main/proto/qlua/rpc/Subscribe_Level_II_Quotes.proto b/src/main/proto/qlua/rpc/Subscribe_Level_II_Quotes.proto index 98a76bf..6601e2b 100644 --- a/src/main/proto/qlua/rpc/Subscribe_Level_II_Quotes.proto +++ b/src/main/proto/qlua/rpc/Subscribe_Level_II_Quotes.proto @@ -7,7 +7,7 @@ package qlua.rpc.Subscribe_Level_II_Quotes; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/Unsubscribe_Level_II_Quotes.proto b/src/main/proto/qlua/rpc/Unsubscribe_Level_II_Quotes.proto index 93a32a5..2a1c4d0 100644 --- a/src/main/proto/qlua/rpc/Unsubscribe_Level_II_Quotes.proto +++ b/src/main/proto/qlua/rpc/Unsubscribe_Level_II_Quotes.proto @@ -7,7 +7,7 @@ package qlua.rpc.Unsubscribe_Level_II_Quotes; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/bit/band.proto b/src/main/proto/qlua/rpc/bit/band.proto index f68884e..d7cc488 100644 --- a/src/main/proto/qlua/rpc/bit/band.proto +++ b/src/main/proto/qlua/rpc/bit/band.proto @@ -7,7 +7,7 @@ package qlua.rpc.bit.band; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x1 = 1; int32 x2 = 2; diff --git a/src/main/proto/qlua/rpc/bit/bnot.proto b/src/main/proto/qlua/rpc/bit/bnot.proto index bb1876d..2620f48 100644 --- a/src/main/proto/qlua/rpc/bit/bnot.proto +++ b/src/main/proto/qlua/rpc/bit/bnot.proto @@ -7,7 +7,7 @@ package qlua.rpc.bit.bnot; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x = 1; } diff --git a/src/main/proto/qlua/rpc/bit/bor.proto b/src/main/proto/qlua/rpc/bit/bor.proto index 8b6dc5b..c775087 100644 --- a/src/main/proto/qlua/rpc/bit/bor.proto +++ b/src/main/proto/qlua/rpc/bit/bor.proto @@ -7,7 +7,7 @@ package qlua.rpc.bit.bor; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x1 = 1; int32 x2 = 2; diff --git a/src/main/proto/qlua/rpc/bit/btest.proto b/src/main/proto/qlua/rpc/bit/btest.proto index 5d58a53..1b7704e 100644 --- a/src/main/proto/qlua/rpc/bit/btest.proto +++ b/src/main/proto/qlua/rpc/bit/btest.proto @@ -7,7 +7,7 @@ package qlua.rpc.bit.test; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x = 1; int32 n = 2; diff --git a/src/main/proto/qlua/rpc/bit/bxor.proto b/src/main/proto/qlua/rpc/bit/bxor.proto index d1fccce..03692d7 100644 --- a/src/main/proto/qlua/rpc/bit/bxor.proto +++ b/src/main/proto/qlua/rpc/bit/bxor.proto @@ -7,7 +7,7 @@ package qlua.rpc.bit.bxor; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x1 = 1; int32 x2 = 2; diff --git a/src/main/proto/qlua/rpc/bit/tohex.proto b/src/main/proto/qlua/rpc/bit/tohex.proto index befc5fa..b08332b 100644 --- a/src/main/proto/qlua/rpc/bit/tohex.proto +++ b/src/main/proto/qlua/rpc/bit/tohex.proto @@ -7,14 +7,14 @@ package qlua.rpc.bit.tohex; option optimize_for = SPEED; option java_package = "qlua.rpc.bit"; -message Request { +message Args { int32 x = 1; oneof n { bool null_n = 2; int32 value_n = 3; } - + } message Result { diff --git a/src/main/proto/qlua/rpc/datasource/C.proto b/src/main/proto/qlua/rpc/datasource/C.proto index e606fc5..ef74b68 100644 --- a/src/main/proto/qlua/rpc/datasource/C.proto +++ b/src/main/proto/qlua/rpc/datasource/C.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.C; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/datasource/Close.proto b/src/main/proto/qlua/rpc/datasource/Close.proto index 385e2a6..5c135de 100644 --- a/src/main/proto/qlua/rpc/datasource/Close.proto +++ b/src/main/proto/qlua/rpc/datasource/Close.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.Close; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; } diff --git a/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto b/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto index b8a2039..38f8a98 100644 --- a/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto +++ b/src/main/proto/qlua/rpc/datasource/CreateDataSource.proto @@ -29,7 +29,7 @@ enum Interval { INTERVAL_MN1 = 17; } -message Request { +message Args { string class_code = 1; string sec_code = 2; @@ -44,5 +44,5 @@ message Result { string error_desc = 2; } bool is_error = 3; - + } diff --git a/src/main/proto/qlua/rpc/datasource/H.proto b/src/main/proto/qlua/rpc/datasource/H.proto index 8f14a50..819b991 100644 --- a/src/main/proto/qlua/rpc/datasource/H.proto +++ b/src/main/proto/qlua/rpc/datasource/H.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.H; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/datasource/L.proto b/src/main/proto/qlua/rpc/datasource/L.proto index fca0c23..26102f7 100644 --- a/src/main/proto/qlua/rpc/datasource/L.proto +++ b/src/main/proto/qlua/rpc/datasource/L.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.L; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/datasource/O.proto b/src/main/proto/qlua/rpc/datasource/O.proto index 84ded28..19c084f 100644 --- a/src/main/proto/qlua/rpc/datasource/O.proto +++ b/src/main/proto/qlua/rpc/datasource/O.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.O; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/datasource/SetEmptyCallback.proto b/src/main/proto/qlua/rpc/datasource/SetEmptyCallback.proto index 184bfef..e484fb2 100644 --- a/src/main/proto/qlua/rpc/datasource/SetEmptyCallback.proto +++ b/src/main/proto/qlua/rpc/datasource/SetEmptyCallback.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.SetEmptyCallback; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; } diff --git a/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto b/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto index 7c67982..82eb642 100644 --- a/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto +++ b/src/main/proto/qlua/rpc/datasource/SetUpdateCallback.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.SetUpdateCallback; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; string f_cb_def = 2; // NB: формат функции: "function (NUMBER index, TABLE datasource) function_body end" diff --git a/src/main/proto/qlua/rpc/datasource/Size.proto b/src/main/proto/qlua/rpc/datasource/Size.proto index 1aaaf76..c9739df 100644 --- a/src/main/proto/qlua/rpc/datasource/Size.proto +++ b/src/main/proto/qlua/rpc/datasource/Size.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.Size; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; } diff --git a/src/main/proto/qlua/rpc/datasource/T.proto b/src/main/proto/qlua/rpc/datasource/T.proto index 7f9124e..e1c303f 100644 --- a/src/main/proto/qlua/rpc/datasource/T.proto +++ b/src/main/proto/qlua/rpc/datasource/T.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/datasource/V.proto b/src/main/proto/qlua/rpc/datasource/V.proto index c022de3..fed0726 100644 --- a/src/main/proto/qlua/rpc/datasource/V.proto +++ b/src/main/proto/qlua/rpc/datasource/V.proto @@ -7,7 +7,7 @@ package qlua.rpc.datasource.V; option optimize_for = SPEED; option java_package = "qlua.rpc.datasource"; -message Request { +message Args { string datasource_uuid = 1; int32 candle_index = 2; diff --git a/src/main/proto/qlua/rpc/getBuySellInfo.proto b/src/main/proto/qlua/rpc/getBuySellInfo.proto index c4b162b..05e19c8 100644 --- a/src/main/proto/qlua/rpc/getBuySellInfo.proto +++ b/src/main/proto/qlua/rpc/getBuySellInfo.proto @@ -32,7 +32,7 @@ message BuySellInfo { string can_sell_own = 21; } -message Request { +message Args { string firm_id = 1; string client_code = 2; diff --git a/src/main/proto/qlua/rpc/getBuySellInfoEx.proto b/src/main/proto/qlua/rpc/getBuySellInfoEx.proto index 88e8cb3..1ccb9ce 100644 --- a/src/main/proto/qlua/rpc/getBuySellInfoEx.proto +++ b/src/main/proto/qlua/rpc/getBuySellInfoEx.proto @@ -22,7 +22,7 @@ message BuySellInfoEx { string is_short_allowed = 9; } -message Request { +message Args { string firm_id = 1; string client_code = 2; diff --git a/src/main/proto/qlua/rpc/getCandlesByIndex.proto b/src/main/proto/qlua/rpc/getCandlesByIndex.proto index 4bdc959..a410f6c 100644 --- a/src/main/proto/qlua/rpc/getCandlesByIndex.proto +++ b/src/main/proto/qlua/rpc/getCandlesByIndex.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string tag = 1; int32 line = 2; diff --git a/src/main/proto/qlua/rpc/getClassInfo.proto b/src/main/proto/qlua/rpc/getClassInfo.proto index ee14de3..5f4797d 100644 --- a/src/main/proto/qlua/rpc/getClassInfo.proto +++ b/src/main/proto/qlua/rpc/getClassInfo.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; } diff --git a/src/main/proto/qlua/rpc/getClassSecurities.proto b/src/main/proto/qlua/rpc/getClassSecurities.proto index 5cda981..d32a7dd 100644 --- a/src/main/proto/qlua/rpc/getClassSecurities.proto +++ b/src/main/proto/qlua/rpc/getClassSecurities.proto @@ -7,7 +7,7 @@ package qlua.rpc.getClassSecurities; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; } diff --git a/src/main/proto/qlua/rpc/getDepo.proto b/src/main/proto/qlua/rpc/getDepo.proto index 3fb34ca..563076c 100644 --- a/src/main/proto/qlua/rpc/getDepo.proto +++ b/src/main/proto/qlua/rpc/getDepo.proto @@ -19,7 +19,7 @@ message Depo { string depo_open_limit = 8; } -message Request { +message Args { string client_code = 1; // Код клиента string firmid = 2; // Фирма diff --git a/src/main/proto/qlua/rpc/getDepoEx.proto b/src/main/proto/qlua/rpc/getDepoEx.proto index 2345926..ddc6281 100644 --- a/src/main/proto/qlua/rpc/getDepoEx.proto +++ b/src/main/proto/qlua/rpc/getDepoEx.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string firmid = 1; // Фирма string client_code = 2; // Код клиента diff --git a/src/main/proto/qlua/rpc/getFuturesHolding.proto b/src/main/proto/qlua/rpc/getFuturesHolding.proto index e37f420..1b9030e 100644 --- a/src/main/proto/qlua/rpc/getFuturesHolding.proto +++ b/src/main/proto/qlua/rpc/getFuturesHolding.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string firmid = 1; string trdaccid = 2; diff --git a/src/main/proto/qlua/rpc/getFuturesLimit.proto b/src/main/proto/qlua/rpc/getFuturesLimit.proto index 89e3bb8..d8a6b51 100644 --- a/src/main/proto/qlua/rpc/getFuturesLimit.proto +++ b/src/main/proto/qlua/rpc/getFuturesLimit.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string firmid = 1; string trdaccid = 2; diff --git a/src/main/proto/qlua/rpc/getInfoParam.proto b/src/main/proto/qlua/rpc/getInfoParam.proto index 881e029..f81a29a 100644 --- a/src/main/proto/qlua/rpc/getInfoParam.proto +++ b/src/main/proto/qlua/rpc/getInfoParam.proto @@ -7,7 +7,14 @@ package qlua.rpc.getInfoParam; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { + + // FIXME: make as enum + // Хотел сделать enum-ом, чтобы меньше слать по wire, но в используемой Lua-реализации + // protobuf'a нет адекватного способа вернуть строковое имя enum'а, поэтому говнокод, который + // надо будет для этого написать, скорее всего нивелирует какой-либо перфомансный + // профит от enum'ов в данном случае. К тому же, при добавлении новых видов paramName + // при использовании строк ничего не надо будет перекомпилировать. string param_name = 1; } diff --git a/src/main/proto/qlua/rpc/getItem.proto b/src/main/proto/qlua/rpc/getItem.proto index ca35a81..6264f55 100644 --- a/src/main/proto/qlua/rpc/getItem.proto +++ b/src/main/proto/qlua/rpc/getItem.proto @@ -7,7 +7,7 @@ package qlua.rpc.getItem; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string table_name = 1; int32 index = 2; diff --git a/src/main/proto/qlua/rpc/getLinesCount.proto b/src/main/proto/qlua/rpc/getLinesCount.proto index 282feee..bf10af7 100644 --- a/src/main/proto/qlua/rpc/getLinesCount.proto +++ b/src/main/proto/qlua/rpc/getLinesCount.proto @@ -7,7 +7,7 @@ package qlua.rpc.getLinesCount; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string tag = 1; } diff --git a/src/main/proto/qlua/rpc/getMoney.proto b/src/main/proto/qlua/rpc/getMoney.proto index 44ac676..96fa012 100644 --- a/src/main/proto/qlua/rpc/getMoney.proto +++ b/src/main/proto/qlua/rpc/getMoney.proto @@ -18,7 +18,7 @@ message Money { string money_limit_available = 7; // NUMBER in QLUA } -message Request { +message Args { string client_code = 1; // Код клиента string firmid = 2; // Фирма diff --git a/src/main/proto/qlua/rpc/getMoneyEx.proto b/src/main/proto/qlua/rpc/getMoneyEx.proto index c80023c..c65ed8a 100644 --- a/src/main/proto/qlua/rpc/getMoneyEx.proto +++ b/src/main/proto/qlua/rpc/getMoneyEx.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string firmid = 1; // Фирма string client_code = 2; // Код клиента diff --git a/src/main/proto/qlua/rpc/getNumCandles.proto b/src/main/proto/qlua/rpc/getNumCandles.proto index c2deed7..5a6aba5 100644 --- a/src/main/proto/qlua/rpc/getNumCandles.proto +++ b/src/main/proto/qlua/rpc/getNumCandles.proto @@ -7,7 +7,7 @@ package qlua.rpc.getNumCandles; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string tag = 1; } diff --git a/src/main/proto/qlua/rpc/getNumberOf.proto b/src/main/proto/qlua/rpc/getNumberOf.proto index 5ed3a5f..ee63cbc 100644 --- a/src/main/proto/qlua/rpc/getNumberOf.proto +++ b/src/main/proto/qlua/rpc/getNumberOf.proto @@ -7,7 +7,7 @@ package qlua.rpc.getNumberOf; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string table_name = 1; } diff --git a/src/main/proto/qlua/rpc/getOrderByNumber.proto b/src/main/proto/qlua/rpc/getOrderByNumber.proto index c30355f..68122de 100644 --- a/src/main/proto/qlua/rpc/getOrderByNumber.proto +++ b/src/main/proto/qlua/rpc/getOrderByNumber.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; int64 order_id = 2; @@ -19,7 +19,7 @@ message Result { qlua.structs.Order order = 1; oneof indx { - bool null_indx = 2; - int32 value_indx = 3; + bool null_indx = 2; + int32 value_indx = 3; } } diff --git a/src/main/proto/qlua/rpc/getParamEx.proto b/src/main/proto/qlua/rpc/getParamEx.proto index 5bd2e3e..7ba7f7d 100644 --- a/src/main/proto/qlua/rpc/getParamEx.proto +++ b/src/main/proto/qlua/rpc/getParamEx.proto @@ -15,7 +15,7 @@ message ParamEx { string result = 4; } -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/getParamEx2.proto b/src/main/proto/qlua/rpc/getParamEx2.proto index c078302..e02766c 100644 --- a/src/main/proto/qlua/rpc/getParamEx2.proto +++ b/src/main/proto/qlua/rpc/getParamEx2.proto @@ -15,7 +15,7 @@ message ParamEx2 { string result = 4; } -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/getPortfolioInfo.proto b/src/main/proto/qlua/rpc/getPortfolioInfo.proto index fe69b9d..6ef142b 100644 --- a/src/main/proto/qlua/rpc/getPortfolioInfo.proto +++ b/src/main/proto/qlua/rpc/getPortfolioInfo.proto @@ -51,7 +51,7 @@ message PortfolioInfo { string curr_tag = 40; } -message Request { +message Args { string firm_id = 1; string client_code = 2; diff --git a/src/main/proto/qlua/rpc/getPortfolioInfoEx.proto b/src/main/proto/qlua/rpc/getPortfolioInfoEx.proto index 21c4526..2cb1a9f 100644 --- a/src/main/proto/qlua/rpc/getPortfolioInfoEx.proto +++ b/src/main/proto/qlua/rpc/getPortfolioInfoEx.proto @@ -36,7 +36,7 @@ message PortfolioInfoEx { string fut_accured_int = 23; } -message Request { +message Args { string firm_id = 1; string client_code = 2; diff --git a/src/main/proto/qlua/rpc/getQuoteLevel2.proto b/src/main/proto/qlua/rpc/getQuoteLevel2.proto index 4e0e494..d24e8b3 100644 --- a/src/main/proto/qlua/rpc/getQuoteLevel2.proto +++ b/src/main/proto/qlua/rpc/getQuoteLevel2.proto @@ -13,7 +13,7 @@ message QuoteEntry { string quantity = 2; } -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/getSecurityInfo.proto b/src/main/proto/qlua/rpc/getSecurityInfo.proto index 364f52b..e52dc5f 100644 --- a/src/main/proto/qlua/rpc/getSecurityInfo.proto +++ b/src/main/proto/qlua/rpc/getSecurityInfo.proto @@ -9,7 +9,7 @@ import "qlua/rpc/qlua_structures.proto"; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { string class_code = 1; string sec_code = 2; diff --git a/src/main/proto/qlua/rpc/message.proto b/src/main/proto/qlua/rpc/message.proto index 16a509b..1d19e55 100644 --- a/src/main/proto/qlua/rpc/message.proto +++ b/src/main/proto/qlua/rpc/message.proto @@ -15,7 +15,7 @@ enum IconType { ERROR = 3; } -message Request { +message Args { string message = 1; IconType icon_type = 2; diff --git a/src/main/proto/qlua/rpc/qlua_structures.proto b/src/main/proto/qlua/rpc/qlua_structures.proto index 85a2f75..ac4855c 100644 --- a/src/main/proto/qlua/rpc/qlua_structures.proto +++ b/src/main/proto/qlua/rpc/qlua_structures.proto @@ -26,8 +26,8 @@ message Firm { string firmid = 1; string firm_name = 2; oneof status { - bool null_status = 3; - int32 value_status = 4; // NUMBER in QLUA + bool null_status = 3; + int32 value_status = 4; // NUMBER in QLUA }; string exchange = 5; } @@ -648,3 +648,4 @@ message DataSourceUpdateInfo { int32 value_size = 10; } } + diff --git a/src/main/proto/qlua/rpc/sendTransaction.proto b/src/main/proto/qlua/rpc/sendTransaction.proto index d601e58..eaa4bfe 100644 --- a/src/main/proto/qlua/rpc/sendTransaction.proto +++ b/src/main/proto/qlua/rpc/sendTransaction.proto @@ -7,7 +7,7 @@ package qlua.rpc.sendTransaction; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { map transaction = 1; } diff --git a/src/main/proto/qlua/rpc/sleep.proto b/src/main/proto/qlua/rpc/sleep.proto index d2ea2b0..0c8f7ec 100644 --- a/src/main/proto/qlua/rpc/sleep.proto +++ b/src/main/proto/qlua/rpc/sleep.proto @@ -7,7 +7,7 @@ package qlua.rpc.sleep; option optimize_for = SPEED; option java_package = "qlua.rpc"; -message Request { +message Args { int32 time = 1; } From fead87da0960781bdf24a64a50c2a389a5fbe523 Mon Sep 17 00:00:00 2001 From: Arsentii Nerushev Date: Fri, 1 Feb 2019 22:34:15 +0300 Subject: [PATCH 549/549] Unit tests: synchronized the protobuf messages with the RPC service. --- .../protobuf/AddColumnArgsPbSerdeTest.java | 6 +++--- .../protobuf/AddLabelArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/BitBAndArgsPbSerdeTest.java | 12 ++++++------ .../serde/protobuf/BitBNotArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/BitBOrArgsPbSerdeTest.java | 12 ++++++------ .../serde/protobuf/BitBXorArgsPbSerdeTest.java | 12 ++++++------ .../serde/protobuf/BitTestArgsPbSerdeTest.java | 6 +++--- .../protobuf/BitToHexArgsPbSerdeTest.java | 12 ++++++------ .../protobuf/CalcBuySellArgsPbSerdeTest.java | 6 +++--- .../CancelParamRequestArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/ClearArgsPbSerdeTest.java | 6 +++--- .../protobuf/CreateWindowArgsPbSerdeTest.java | 6 +++--- .../protobuf/DatasourceCArgsPbSerdeTest.java | 6 +++--- .../DatasourceCloseArgsPbSerdeTest.java | 6 +++--- ...asourceCreateDataSourceArgsPbSerdeTest.java | 12 ++++++------ .../protobuf/DatasourceHArgsPbSerdeTest.java | 6 +++--- .../protobuf/DatasourceLArgsPbSerdeTest.java | 6 +++--- .../protobuf/DatasourceOArgsPbSerdeTest.java | 6 +++--- ...asourceSetEmptyCallbackArgsPbSerdeTest.java | 6 +++--- ...sourceSetUpdateCallbackArgsPbSerdeTest.java | 6 +++--- .../DatasourceSizeArgsPbSerdeTest.java | 6 +++--- .../protobuf/DatasourceTArgsPbSerdeTest.java | 6 +++--- .../protobuf/DatasourceVArgsPbSerdeTest.java | 6 +++--- .../protobuf/DelAllLabelsArgsPbSerdeTest.java | 6 +++--- .../protobuf/DelLabelArgsPbSerdeTest.java | 6 +++--- .../protobuf/DeleteRowArgsPbSerdeTest.java | 6 +++--- .../protobuf/DestroyTableArgsPbSerdeTest.java | 6 +++--- .../GetBuySellInfoArgsPbSerdeTest.java | 6 +++--- .../GetBuySellInfoExArgsPbSerdeTest.java | 6 +++--- .../GetCandlesByIndexArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/GetCellArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetClassInfoArgsPbSerdeTest.java | 6 +++--- .../GetClassSecuritiesArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/GetDepoArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetDepoExArgsPbSerdeTest.java | 6 +++--- .../GetFuturesHoldingArgsPbSerdeTest.java | 6 +++--- .../GetFuturesLimitArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetInfoParamArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/GetItemArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetLinesCountArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetMoneyArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetMoneyExArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetNumCandlesArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetNumberOfArgsPbSerdeTest.java | 6 +++--- .../GetOrderByNumberArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetParamEx2ArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetParamExArgsPbSerdeTest.java | 6 +++--- .../GetPortfolioInfoArgsPbSerdeTest.java | 6 +++--- .../GetPortfolioInfoExArgsPbSerdeTest.java | 6 +++--- .../GetQuoteLevel2ArgsPbSerdeTest.java | 6 +++--- .../GetSecurityInfoArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetTableSizeArgsPbSerdeTest.java | 6 +++--- .../GetWindowCaptionArgsPbSerdeTest.java | 6 +++--- .../protobuf/GetWindowRectArgsPbSerdeTest.java | 6 +++--- .../protobuf/HighlightArgsPbSerdeTest.java | 6 +++--- .../protobuf/InsertRowArgsPbSerdeTest.java | 6 +++--- ...sSubscribedLevel2QuotesArgsPbSerdeTest.java | 6 +++--- .../IsWindowClosedArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/MessageArgsPbSerdeTest.java | 12 ++++++------ .../protobuf/ParamRequestArgsPbSerdeTest.java | 6 +++--- .../protobuf/PrintDbgStrArgsPbSerdeTest.java | 6 +++--- .../rpc/serde/protobuf/RGBArgsPbSerdeTest.java | 6 +++--- .../protobuf/SearchItemsArgsPbSerdeTest.java | 18 +++++++++--------- .../SendTransactionArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/SetCellArgsPbSerdeTest.java | 10 ++++++---- .../protobuf/SetColorArgsPbSerdeTest.java | 6 +++--- .../SetLabelParamsArgsPbSerdeTest.java | 6 +++--- .../SetSelectedRowArgsPbSerdeTest.java | 6 +++--- ...bleNotificationCallbackArgsPbSerdeTest.java | 6 +++--- .../SetWindowCaptionArgsPbSerdeTest.java | 6 +++--- .../protobuf/SetWindowPosArgsPbSerdeTest.java | 6 +++--- .../serde/protobuf/SleepArgsPbSerdeTest.java | 6 +++--- .../SubscribeLevel2QuotesArgsPbSerdeTest.java | 6 +++--- ...UnsubscribeLevel2QuotesArgsPbSerdeTest.java | 6 +++--- 74 files changed, 249 insertions(+), 247 deletions(-) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java index 206b13a..38b3c72 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/AddColumnArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class AddColumnArgsPbSerdeTest extends AbstractPbSerializationTest { +public class AddColumnArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int I_CODE = 2; @@ -21,9 +21,9 @@ public class AddColumnArgsPbSerdeTest extends AbstractPbSerializationTest { +public class AddLabelArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CHART_TAG = "1"; private static final Map LABEL_PARAMS = @@ -24,9 +24,9 @@ public class AddLabelArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullArgsBitBAndArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -25,9 +25,9 @@ public static class FullArgsBitBAndArgsPbSerdeTest extends AbstractPbSerializati @NotNull @Override - public qlua.rpc.bit.Band.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Band.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Band.Request.newBuilder() + return qlua.rpc.bit.Band.Args.newBuilder() .setX1(X1) .setX2(X2) .addAllXi( Arrays.asList(3, 4, 5) ) @@ -45,7 +45,7 @@ public BAnd.Args getTargetObject() { } } - public static class WithoutXiBitBAndArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutXiBitBAndArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -58,9 +58,9 @@ public static class WithoutXiBitBAndArgsPbSerdeTest extends AbstractPbSerializat @NotNull @Override - public qlua.rpc.bit.Band.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Band.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Band.Request.newBuilder() + return qlua.rpc.bit.Band.Args.newBuilder() .setX1(X1) .setX2(X2) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java index a451b5c..690afdb 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBNotArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class BitBNotArgsPbSerdeTest extends AbstractPbSerializationTest { +public class BitBNotArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X = 1; @@ -15,9 +15,9 @@ public class BitBNotArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullArgsBitBOrArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -25,9 +25,9 @@ public static class FullArgsBitBOrArgsPbSerdeTest extends AbstractPbSerializatio @NotNull @Override - public qlua.rpc.bit.Bor.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Bor.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Bor.Request.newBuilder() + return qlua.rpc.bit.Bor.Args.newBuilder() .setX1(X1) .setX2(X2) .addAllXi( Arrays.asList(3, 4, 5) ) @@ -45,7 +45,7 @@ public BOr.Args getTargetObject() { } } - public static class WithoutXiBitBOrArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutXiBitBOrArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -58,9 +58,9 @@ public static class WithoutXiBitBOrArgsPbSerdeTest extends AbstractPbSerializati @NotNull @Override - public qlua.rpc.bit.Bor.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Bor.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Bor.Request.newBuilder() + return qlua.rpc.bit.Bor.Args.newBuilder() .setX1(X1) .setX2(X2) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java index a048659..94a3418 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitBXorArgsPbSerdeTest.java @@ -11,7 +11,7 @@ @RunWith(Enclosed.class) public class BitBXorArgsPbSerdeTest { - public static class FullArgsBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullArgsBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -25,9 +25,9 @@ public static class FullArgsBitBXorArgsPbSerdeTest extends AbstractPbSerializati @NotNull @Override - public qlua.rpc.bit.Bxor.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Bxor.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Bxor.Request.newBuilder() + return qlua.rpc.bit.Bxor.Args.newBuilder() .setX1(X1) .setX2(X2) .addAllXi( Arrays.asList(3, 4, 5) ) @@ -45,7 +45,7 @@ public BXor.Args getTargetObject() { } } - public static class WithoutXiBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutXiBitBXorArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X1 = 1; @@ -58,9 +58,9 @@ public static class WithoutXiBitBXorArgsPbSerdeTest extends AbstractPbSerializat @NotNull @Override - public qlua.rpc.bit.Bxor.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Bxor.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Bxor.Request.newBuilder() + return qlua.rpc.bit.Bxor.Args.newBuilder() .setX1(X1) .setX2(X2) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java index 04c8ade..3f8e25c 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/BitTestArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class BitTestArgsPbSerdeTest extends AbstractPbSerializationTest { +public class BitTestArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X = 1; private static final int N = 2; @@ -16,9 +16,9 @@ public class BitTestArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullArgsBitToHexArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X = 1; private static final int N = 2; @@ -21,9 +21,9 @@ public static class FullArgsBitToHexArgsPbSerdeTest extends AbstractPbSerializat @NotNull @Override - public qlua.rpc.bit.Tohex.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Tohex.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Tohex.Request.newBuilder() + return qlua.rpc.bit.Tohex.Args.newBuilder() .setX(X) .setValueN(N) .build(); @@ -39,7 +39,7 @@ public ToHex.Args getTargetObject() { } } - public static class WithoutNBitToHexArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutNBitToHexArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int X = 1; @@ -50,9 +50,9 @@ public static class WithoutNBitToHexArgsPbSerdeTest extends AbstractPbSerializat @NotNull @Override - public qlua.rpc.bit.Tohex.Request getTargetObjectAsPbMessage() { + public qlua.rpc.bit.Tohex.Args getTargetObjectAsPbMessage() { - return qlua.rpc.bit.Tohex.Request.newBuilder() + return qlua.rpc.bit.Tohex.Args.newBuilder() .setX(X) .setNullN(true) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java index 8359e8b..df61b86 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/CalcBuySellArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class CalcBuySellArgsPbSerdeTest extends AbstractPbSerializationTest { +public class CalcBuySellArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -21,9 +21,9 @@ public class CalcBuySellArgsPbSerdeTest extends AbstractPbSerializationTest { +public class CancelParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -17,9 +17,9 @@ public class CancelParamRequestArgsPbSerdeTest extends AbstractPbSerializationTe @NotNull @Override - public qlua.rpc.CancelParamRequest.Request getTargetObjectAsPbMessage() { + public qlua.rpc.CancelParamRequest.Args getTargetObjectAsPbMessage() { - return qlua.rpc.CancelParamRequest.Request.newBuilder() + return qlua.rpc.CancelParamRequest.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .setDbName(DB_NAME) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java index 85c29c5..8f37b6f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ClearArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class ClearArgsPbSerdeTest extends AbstractPbSerializationTest { +public class ClearArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class ClearArgsPbSerdeTest extends AbstractPbSerializationTest { +public class CreateWindowArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class CreateWindowArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceCArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceCArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceCloseArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; @@ -15,9 +15,9 @@ public class DatasourceCloseArgsPbSerdeTest extends AbstractPbSerializationTest< @NotNull @Override - public qlua.rpc.datasource.Close.Request getTargetObjectAsPbMessage() { + public qlua.rpc.datasource.Close.Args getTargetObjectAsPbMessage() { - return qlua.rpc.datasource.Close.Request.newBuilder() + return qlua.rpc.datasource.Close.Args.newBuilder() .setDatasourceUuid(DATASOURCE_UUID) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java index 0534151..6c4f328 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceCreateDataSourceArgsPbSerdeTest.java @@ -15,7 +15,7 @@ public class DatasourceCreateDataSourceArgsPbSerdeTest { private static final String PARAM = "4"; public static class FullArgsDatasourceCreateDataSourceArgsPbSerdeTest - extends AbstractPbSerializationTest { + extends AbstractPbSerializationTest { @Override public @NotNull Serializer getSerializerUnderTest() { @@ -24,9 +24,9 @@ public static class FullArgsDatasourceCreateDataSourceArgsPbSerdeTest @NotNull @Override - public qlua.rpc.datasource.CreateDataSource.Request getTargetObjectAsPbMessage() { + public qlua.rpc.datasource.CreateDataSource.Args getTargetObjectAsPbMessage() { - return qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + return qlua.rpc.datasource.CreateDataSource.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .setInterval(qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H1) @@ -48,7 +48,7 @@ public CreateDataSource.Args getTargetObject() { } public static class WithoutParamArgDatasourceCreateDataSourceArgsPbSerdeTest - extends AbstractPbSerializationTest { + extends AbstractPbSerializationTest { @Override public @NotNull Serializer getSerializerUnderTest() { @@ -57,9 +57,9 @@ public static class WithoutParamArgDatasourceCreateDataSourceArgsPbSerdeTest @NotNull @Override - public qlua.rpc.datasource.CreateDataSource.Request getTargetObjectAsPbMessage() { + public qlua.rpc.datasource.CreateDataSource.Args getTargetObjectAsPbMessage() { - return qlua.rpc.datasource.CreateDataSource.Request.newBuilder() + return qlua.rpc.datasource.CreateDataSource.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .setInterval(qlua.rpc.datasource.CreateDataSource.Interval.INTERVAL_H1) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java index 544e685..446086b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceHArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class DatasourceHArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceHArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceHArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceLArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceLArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceOArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceOArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceSetEmptyCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; @@ -15,9 +15,9 @@ public class DatasourceSetEmptyCallbackArgsPbSerdeTest extends AbstractPbSeriali @NotNull @Override - public qlua.rpc.datasource.SetEmptyCallback.Request getTargetObjectAsPbMessage() { + public qlua.rpc.datasource.SetEmptyCallback.Args getTargetObjectAsPbMessage() { - return qlua.rpc.datasource.SetEmptyCallback.Request.newBuilder() + return qlua.rpc.datasource.SetEmptyCallback.Args.newBuilder() .setDatasourceUuid(DATASOURCE_UUID) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java index 946c36a..17f1f75 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSetUpdateCallbackArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class DatasourceSetUpdateCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceSetUpdateCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final String F_CB_DEF = "2"; @@ -23,9 +23,9 @@ public class DatasourceSetUpdateCallbackArgsPbSerdeTest extends AbstractPbSerial @NotNull @Override - public qlua.rpc.datasource.SetUpdateCallback.Request getTargetObjectAsPbMessage() { + public qlua.rpc.datasource.SetUpdateCallback.Args getTargetObjectAsPbMessage() { - return qlua.rpc.datasource.SetUpdateCallback.Request.newBuilder() + return qlua.rpc.datasource.SetUpdateCallback.Args.newBuilder() .setDatasourceUuid(DATASOURCE_UUID) .setFCbDef(F_CB_DEF) .setWatchingO(WATCHING_O) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java index 18d2419..b36471b 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/DatasourceSizeArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class DatasourceSizeArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceSizeArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; @@ -15,9 +15,9 @@ public class DatasourceSizeArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceTArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceTArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DatasourceVArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String DATASOURCE_UUID = "1"; private static final int CANDLE_INDEX = 2; @@ -16,9 +16,9 @@ public class DatasourceVArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DelAllLabelsArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CHART_TAG = "1"; @@ -15,9 +15,9 @@ public class DelAllLabelsArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DelLabelArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CHART_TAG = "1"; private static final int LABEL_ID = 2; @@ -16,9 +16,9 @@ public class DelLabelArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DeleteRowArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int KEY = 2; @@ -16,9 +16,9 @@ public class DeleteRowArgsPbSerdeTest extends AbstractPbSerializationTest { +public class DestroyTableArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class DestroyTableArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetBuySellInfoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -19,9 +19,9 @@ public class GetBuySellInfoArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetBuySellInfoExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -19,9 +19,9 @@ public class GetBuySellInfoExArgsPbSerdeTest extends AbstractPbSerializationTest @NotNull @Override - public qlua.rpc.GetBuySellInfoEx.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetBuySellInfoEx.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetBuySellInfoEx.Request.newBuilder() + return qlua.rpc.GetBuySellInfoEx.Args.newBuilder() .setFirmId(FIRM_ID) .setClientCode(CLIENT_CODE) .setClassCode(CLASS_CODE) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java index 21962f5..914fbf0 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCandlesByIndexArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetCandlesByIndexArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetCandlesByIndexArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TAG = "1"; private static final int LINE = 2; @@ -18,9 +18,9 @@ public class GetCandlesByIndexArgsPbSerdeTest extends AbstractPbSerializationTes @NotNull @Override - public qlua.rpc.GetCandlesByIndex.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetCandlesByIndex.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetCandlesByIndex.Request.newBuilder() + return qlua.rpc.GetCandlesByIndex.Args.newBuilder() .setTag(TAG) .setLine(LINE) .setFirstCandle(FIRST_CANDLE) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java index 7417447..abffebf 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetCellArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetCellArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetCellArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int KEY = 2; @@ -17,9 +17,9 @@ public class GetCellArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetClassInfoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; @@ -15,9 +15,9 @@ public class GetClassInfoArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetClassSecuritiesArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; @@ -15,9 +15,9 @@ public class GetClassSecuritiesArgsPbSerdeTest extends AbstractPbSerializationTe @NotNull @Override - public qlua.rpc.GetClassSecurities.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetClassSecurities.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetClassSecurities.Request.newBuilder() + return qlua.rpc.GetClassSecurities.Args.newBuilder() .setClassCode(CLASS_CODE) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java index f70214d..4b58a62 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetDepoArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetDepoArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetDepoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLIENT_CODE = "1"; private static final String FIRM_ID = "2"; @@ -18,9 +18,9 @@ public class GetDepoArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetDepoExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -19,9 +19,9 @@ public class GetDepoExArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetFuturesHoldingArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String TRD_ACC_ID = "2"; @@ -18,9 +18,9 @@ public class GetFuturesHoldingArgsPbSerdeTest extends AbstractPbSerializationTes @NotNull @Override - public qlua.rpc.GetFuturesHolding.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetFuturesHolding.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetFuturesHolding.Request.newBuilder() + return qlua.rpc.GetFuturesHolding.Args.newBuilder() .setFirmid(FIRM_ID) .setTrdaccid(TRD_ACC_ID) .setSecCode(SEC_CODE) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java index 5557f68..4abe358 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetFuturesLimitArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetFuturesLimitArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetFuturesLimitArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String TRD_ACC_ID = "2"; @@ -18,9 +18,9 @@ public class GetFuturesLimitArgsPbSerdeTest extends AbstractPbSerializationTest< @NotNull @Override - public qlua.rpc.GetFuturesLimit.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetFuturesLimit.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetFuturesLimit.Request.newBuilder() + return qlua.rpc.GetFuturesLimit.Args.newBuilder() .setFirmid(FIRM_ID) .setTrdaccid(TRD_ACC_ID) .setLimitType(LIMIT_TYPE) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java index aa6955f..bd48a63 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetInfoParamArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetInfoParamArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetInfoParamArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String PARAM_NAME = "1"; @@ -15,9 +15,9 @@ public class GetInfoParamArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetItemArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TABLE_NAME = "1"; private static final int INDEX = 2; @@ -16,9 +16,9 @@ public class GetItemArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetLinesCountArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TAG = "1"; @@ -15,9 +15,9 @@ public class GetLinesCountArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetMoneyArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLIENT_CODE = "1"; private static final String FIRM_ID = "2"; @@ -18,9 +18,9 @@ public class GetMoneyArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetMoneyExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -19,9 +19,9 @@ public class GetMoneyExArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetNumCandlesArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TAG = "1"; @@ -15,9 +15,9 @@ public class GetNumCandlesArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetNumberOfArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TABLE_NAME = "1"; @@ -15,9 +15,9 @@ public class GetNumberOfArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetOrderByNumberArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final long ORDER_ID = 12345678910L; @@ -16,9 +16,9 @@ public class GetOrderByNumberArgsPbSerdeTest extends AbstractPbSerializationTest @NotNull @Override - public qlua.rpc.GetOrderByNumber.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetOrderByNumber.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetOrderByNumber.Request.newBuilder() + return qlua.rpc.GetOrderByNumber.Args.newBuilder() .setClassCode(CLASS_CODE) .setOrderId(ORDER_ID) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java index 11c2577..e60003d 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetParamEx2ArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetParamEx2ArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetParamEx2ArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -17,9 +17,9 @@ public class GetParamEx2ArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetParamExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -17,9 +17,9 @@ public class GetParamExArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetPortfolioInfoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -16,9 +16,9 @@ public class GetPortfolioInfoArgsPbSerdeTest extends AbstractPbSerializationTest @NotNull @Override - public qlua.rpc.GetPortfolioInfo.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetPortfolioInfo.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetPortfolioInfo.Request.newBuilder() + return qlua.rpc.GetPortfolioInfo.Args.newBuilder() .setFirmId(FIRM_ID) .setClientCode(CLIENT_CODE) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java index f8ab2dd..d547def 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetPortfolioInfoExArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetPortfolioInfoExArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetPortfolioInfoExArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String FIRM_ID = "1"; private static final String CLIENT_CODE = "2"; @@ -17,9 +17,9 @@ public class GetPortfolioInfoExArgsPbSerdeTest extends AbstractPbSerializationTe @NotNull @Override - public qlua.rpc.GetPortfolioInfoEx.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetPortfolioInfoEx.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetPortfolioInfoEx.Request.newBuilder() + return qlua.rpc.GetPortfolioInfoEx.Args.newBuilder() .setFirmId(FIRM_ID) .setClientCode(CLIENT_CODE) .setLimitKind(LIMIT_KIND) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java index 6766dfe..280a85e 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetQuoteLevel2ArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetQuoteLevel2ArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetQuoteLevel2ArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -16,9 +16,9 @@ public class GetQuoteLevel2ArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetSecurityInfoArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -16,9 +16,9 @@ public class GetSecurityInfoArgsPbSerdeTest extends AbstractPbSerializationTest< @NotNull @Override - public qlua.rpc.GetSecurityInfo.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetSecurityInfo.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetSecurityInfo.Request.newBuilder() + return qlua.rpc.GetSecurityInfo.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java index 4ea8cdd..7aa75b4 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetTableSizeArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetTableSizeArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetTableSizeArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class GetTableSizeArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class GetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest @NotNull @Override - public qlua.rpc.GetWindowCaption.Request getTargetObjectAsPbMessage() { + public qlua.rpc.GetWindowCaption.Args getTargetObjectAsPbMessage() { - return qlua.rpc.GetWindowCaption.Request.newBuilder() + return qlua.rpc.GetWindowCaption.Args.newBuilder() .setTId(T_ID) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java index fc82ded..1a6739f 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/GetWindowRectArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class GetWindowRectArgsPbSerdeTest extends AbstractPbSerializationTest { +public class GetWindowRectArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class GetWindowRectArgsPbSerdeTest extends AbstractPbSerializationTest { +public class HighlightArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int ROW = 2; @@ -20,9 +20,9 @@ public class HighlightArgsPbSerdeTest extends AbstractPbSerializationTest { +public class InsertRowArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int KEY = 2; @@ -16,9 +16,9 @@ public class InsertRowArgsPbSerdeTest extends AbstractPbSerializationTest { +public class IsSubscribedLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -16,9 +16,9 @@ public class IsSubscribedLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializa @NotNull @Override - public qlua.rpc.IsSubscribedLevelIIQuotes.Request getTargetObjectAsPbMessage() { + public qlua.rpc.IsSubscribedLevelIIQuotes.Args getTargetObjectAsPbMessage() { - return qlua.rpc.IsSubscribedLevelIIQuotes.Request.newBuilder() + return qlua.rpc.IsSubscribedLevelIIQuotes.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java index 4fa030a..79d8079 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/IsWindowClosedArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class IsWindowClosedArgsPbSerdeTest extends AbstractPbSerializationTest { +public class IsWindowClosedArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; @@ -15,9 +15,9 @@ public class IsWindowClosedArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullMessageArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String MESSAGE = "1"; private static final Message.IconType ICON_TYPE = Message.IconType.WARNING; @@ -22,9 +22,9 @@ public static class FullMessageArgsPbSerdeTest extends AbstractPbSerializationTe @NotNull @Override - public qlua.rpc.Message.Request getTargetObjectAsPbMessage() { + public qlua.rpc.Message.Args getTargetObjectAsPbMessage() { - return qlua.rpc.Message.Request.newBuilder() + return qlua.rpc.Message.Args.newBuilder() .setMessage(MESSAGE) .setIconType(PB_ICON_TYPE) .build(); @@ -37,7 +37,7 @@ public Message.Args getTargetObject() { } } - public static class WithoutIconTypeMessageArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutIconTypeMessageArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String MESSAGE = "1"; @@ -48,9 +48,9 @@ public static class WithoutIconTypeMessageArgsPbSerdeTest extends AbstractPbSeri @NotNull @Override - public qlua.rpc.Message.Request getTargetObjectAsPbMessage() { + public qlua.rpc.Message.Args getTargetObjectAsPbMessage() { - return qlua.rpc.Message.Request.newBuilder() + return qlua.rpc.Message.Args.newBuilder() .setMessage(MESSAGE) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java index d6c8b9f..3010c65 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/ParamRequestArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class ParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { +public class ParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -17,9 +17,9 @@ public class ParamRequestArgsPbSerdeTest extends AbstractPbSerializationTest { +public class PrintDbgStrArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String S = "1"; @@ -15,9 +15,9 @@ public class PrintDbgStrArgsPbSerdeTest extends AbstractPbSerializationTest { +public class RGBArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int RED = 1; private static final int GREEN = 2; @@ -17,9 +17,9 @@ public class RGBArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class FullSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TABLE_NAME = "1"; private static final int START_INDEX = 2; @@ -24,9 +24,9 @@ public static class FullSearchItemsArgsPbSerdeTest extends AbstractPbSerializati @NotNull @Override - public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SearchItems.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SearchItems.Request.newBuilder() + return qlua.rpc.SearchItems.Args.newBuilder() .setTableName(TABLE_NAME) .setStartIndex(START_INDEX) .setValueEndIndex(END_INDEX) @@ -49,7 +49,7 @@ public SearchItems.Args getTargetObject() { } } - public static class WithoutEndIndexSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutEndIndexSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TABLE_NAME = "1"; private static final int START_INDEX = 2; @@ -63,9 +63,9 @@ public static class WithoutEndIndexSearchItemsArgsPbSerdeTest extends AbstractPb @NotNull @Override - public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SearchItems.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SearchItems.Request.newBuilder() + return qlua.rpc.SearchItems.Args.newBuilder() .setTableName(TABLE_NAME) .setStartIndex(START_INDEX) .setNullEndIndex(true) @@ -87,7 +87,7 @@ public SearchItems.Args getTargetObject() { } } - public static class WithoutParamsSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { + public static class WithoutParamsSearchItemsArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String TABLE_NAME = "1"; private static final int START_INDEX = 2; @@ -101,9 +101,9 @@ public static class WithoutParamsSearchItemsArgsPbSerdeTest extends AbstractPbSe @NotNull @Override - public qlua.rpc.SearchItems.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SearchItems.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SearchItems.Request.newBuilder() + return qlua.rpc.SearchItems.Args.newBuilder() .setTableName(TABLE_NAME) .setStartIndex(START_INDEX) .setValueEndIndex(END_INDEX) diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java index 754e66b..90c068a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SendTransactionArgsPbSerdeTest.java @@ -7,7 +7,7 @@ import java.util.Map; -public class SendTransactionArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SendTransactionArgsPbSerdeTest extends AbstractPbSerializationTest { private static final Map TRANSACTION = createTransaction(); @@ -18,9 +18,9 @@ public class SendTransactionArgsPbSerdeTest extends AbstractPbSerializationTest< @NotNull @Override - public qlua.rpc.SendTransaction.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SendTransaction.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SendTransaction.Request.newBuilder() + return qlua.rpc.SendTransaction.Args.newBuilder() .putAllTransaction(TRANSACTION) .build(); } diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java index b84e0cb..66edac6 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetCellArgsPbSerdeTest.java @@ -4,7 +4,9 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class SetCellArgsPbSerdeTest extends AbstractPbSerializationTest { +import java.math.BigDecimal; + +public class SetCellArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int KEY = 2; @@ -19,14 +21,14 @@ public class SetCellArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetColorArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int ROW = 2; @@ -21,9 +21,9 @@ public class SetColorArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetLabelParamsArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CHART_TAG = "1"; private static final int LABEL_ID = 2; @@ -24,9 +24,9 @@ public class SetLabelParamsArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetSelectedRowArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int TABLE_ID = 1; private static final int ROW = 2; @@ -16,9 +16,9 @@ public class SetSelectedRowArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetTableNotificationCallbackArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final String F_CB_DEF = "2"; @@ -16,9 +16,9 @@ public class SetTableNotificationCallbackArgsPbSerdeTest extends AbstractPbSeria @NotNull @Override - public qlua.rpc.SetTableNotificationCallback.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SetTableNotificationCallback.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SetTableNotificationCallback.Request.newBuilder() + return qlua.rpc.SetTableNotificationCallback.Args.newBuilder() .setTId(T_ID) .setFCbDef(F_CB_DEF) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java index d7fdfe7..312aa13 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowCaptionArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class SetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final String STR = "2"; @@ -16,9 +16,9 @@ public class SetWindowCaptionArgsPbSerdeTest extends AbstractPbSerializationTest @NotNull @Override - public qlua.rpc.SetWindowCaption.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SetWindowCaption.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SetWindowCaption.Request.newBuilder() + return qlua.rpc.SetWindowCaption.Args.newBuilder() .setTId(T_ID) .setStr(STR) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java index 235e464..2f0bc80 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/SetWindowPosArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class SetWindowPosArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SetWindowPosArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int T_ID = 1; private static final int X = 2; @@ -19,9 +19,9 @@ public class SetWindowPosArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SleepArgsPbSerdeTest extends AbstractPbSerializationTest { private static final int TIME = 1; @@ -15,9 +15,9 @@ public class SleepArgsPbSerdeTest extends AbstractPbSerializationTest { +public class SubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -16,9 +16,9 @@ public class SubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializatio @NotNull @Override - public qlua.rpc.SubscribeLevelIIQuotes.Request getTargetObjectAsPbMessage() { + public qlua.rpc.SubscribeLevelIIQuotes.Args getTargetObjectAsPbMessage() { - return qlua.rpc.SubscribeLevelIIQuotes.Request.newBuilder() + return qlua.rpc.SubscribeLevelIIQuotes.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .build(); diff --git a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java index 4571ba2..11c254a 100644 --- a/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java +++ b/src/test/java/com/enfernuz/quik/lua/rpc/serde/protobuf/UnsubscribeLevel2QuotesArgsPbSerdeTest.java @@ -4,7 +4,7 @@ import com.enfernuz.quik.lua.rpc.serde.Serializer; import org.jetbrains.annotations.NotNull; -public class UnsubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { +public class UnsubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializationTest { private static final String CLASS_CODE = "1"; private static final String SEC_CODE = "2"; @@ -16,9 +16,9 @@ public class UnsubscribeLevel2QuotesArgsPbSerdeTest extends AbstractPbSerializat @NotNull @Override - public qlua.rpc.UnsubscribeLevelIIQuotes.Request getTargetObjectAsPbMessage() { + public qlua.rpc.UnsubscribeLevelIIQuotes.Args getTargetObjectAsPbMessage() { - return qlua.rpc.UnsubscribeLevelIIQuotes.Request.newBuilder() + return qlua.rpc.UnsubscribeLevelIIQuotes.Args.newBuilder() .setClassCode(CLASS_CODE) .setSecCode(SEC_CODE) .build();